# Analdin Video Downloader | How to Download Analdin Videos (`serpxxx/analdin-video-downloader-how-to-download-analdin-videos`) Actor

- **URL**: https://apify.com/serpxxx/analdin-video-downloader-how-to-download-analdin-videos.md
- **Developed by:** [SERP XXX](https://apify.com/serpxxx) (community)
- **Categories:** Videos, Automation, Social media
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-usage

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Analdin Video Downloader | How to Download Analdin Videos

> Download Analdin videos from clean watch pages with a player-button workflow and browser-based media capture.

### Get it Here

Get it here: https://serp.ly/analdin-downloader

![Analdin Downloader](https://apps.serp.co/media/optimized-products/analdin-downloader-homescreen-adult-82d9fa20d9.webp)

Downloader for Analdin is a single-site browser extension built around Analdin video detail pages. Open a supported `/videos/<id>/<slug>/` page, let the player load, and use the player-button flow to save detected media through your browser. The extension stays narrow by design — one site, one watch-page pattern, one compact selector stack.

- Single-site coverage for the Analdin domain family only
- Clean detail-page targeting on `/videos/<id>/<slug>/` patterns
- Player-button attachment on the watch page for one-click downloads
- Browser-native MP4 export with standard media player compatibility
- 3 free downloads to test the workflow before committing
### Table of Contents

- [Why Analdin Downloader](#why-analdin-downloader)
- [Features](#features)
- [How It Works](#how-it-works)
- [Step-by-Step Tutorial: How to Download Videos from Analdin](#step-by-step-tutorial-how-to-download-videos-from-analdin)
- [Supported Formats](#supported-formats)
- [Who It's For](#who-its-for)
- [Common Use Cases](#common-use-cases)
- [Troubleshooting](#troubleshooting)
- [Trial & Access](#trial--access)
- [Installation Instructions](#installation-instructions)
- [FAQ](#faq)
- [Notes](#notes)
- [License](#license)
- [About Analdin](#about-analdin)

### Why Analdin Downloader

Generic video downloaders often overreach across too many sites, making it hard to know which pages are actually supported. Watch pages on Analdin hide useful media fields behind player markup, so hunting through page source or using broad tools can be frustrating and unreliable.

Analdin Downloader solves this by focusing on one site and one watch-page pattern. Instead of pretending to work everywhere, it targets clean Analdin detail pages shaped like `/videos/<id>/<slug>/` and attaches a player button directly to the video wrapper. The workflow is straightforward: open a supported page, let the player load, use the button, and save the detected media through the browser extension flow. This narrow scope means you get a reliable experience on the pages that matter most.

### Features

- Single-site coverage for the Analdin domain family
- Exact URL matches for `analdin.com`, `*.analdin.com`, and `www.analdin.com`
- Focus on clean detail pages shaped like `/videos/<id>/<slug>/`
- Content scripts load at `document_idle` for reliable detection
- Player-button attachment on `#fluid_video_wrapper_bravoplayer`
- Title detection from `og:title`, `h1`, `.title`, and `title` fields
- Video detection from `video[src]`, `video source[src]`, `source[src]`, `og:video`, and related selectors
- Thumbnail capture from `og:image` and `video[poster]` fields
- Browser-native MP4 export for easy playback and archiving
- Offscreen download handling tuned to Analdin headers

### How It Works

1. Install the extension from the latest release.
2. Open Analdin and go to a supported video detail page.
3. Start playback so the extension can detect the media.
4. Look for the player button attached to the video wrapper.
5. Click the button to open the download popup.
6. Choose the quality option you want.
7. Start the download and wait for the MP4 export to finish.
8. Save the final file locally.

### Step-by-Step Tutorial: How to Download Videos from Analdin

1. Open your browser and navigate to an Analdin video detail page. Make sure the URL follows the `/videos/<id>/<slug>/` pattern.
2. Wait for the page to fully load. The player wrapper should appear with the video ready to play.
3. Start playback so the extension can detect the media stream.
4. Look for the Analdin player button attached to the video wrapper. It will appear as a small overlay on the player.
5. Click the player button to open the download popup.
6. Review the detected media information, including the title and available quality options.
7. Select the quality you want to download.
8. Click the download button and wait for the browser to save the MP4 file to your default downloads folder.

### Supported Formats

- Input: Video streams detected from supported Analdin watch pages
- Output: MP4

Saved files use MP4 so they are easier to replay on standard media players, move between devices, or archive locally.

### Who It's For

- Adults who use Analdin and want a direct browser-based download workflow
- Users tired of generic downloaders that overreach across too many sites
- Anyone who wants a player-level download trigger instead of hunting through page source
- Reviewers and testers documenting a target-verified extension candidate

### Common Use Cases

- Save media from supported Analdin detail pages for offline viewing
- Use a player-level download trigger instead of searching through page source
- Capture title, thumbnail, and media candidates from one watch-page flow
- Archive favorite videos for personal backup
- Test a narrow, single-site downloader with clear target confidence

### Troubleshooting

**The player button does not appear on the watch page.**
Make sure you are on a supported Analdin detail page with a URL shaped like `/videos/<id>/<slug>/`. The extension only activates on these clean page patterns.

**The extension cannot detect any media.**
Try refreshing the page and starting playback again. The detection relies on the player being fully loaded and the video stream being active.

**The download fails or produces a broken file.**
Check your internet connection and try again. If the issue persists, the video stream may be temporarily unavailable or protected.

**The popup shows no quality options.**
Some videos may only offer a single stream. Try starting playback again and waiting a few seconds before opening the popup.

**The extension does not work on other adult websites.**
Analdin Downloader is intentionally scoped to the Analdin domain family only. It will not activate on other sites.

### Trial & Access

- Includes **3 free downloads** so you can test the workflow first
- Email sign-in uses secure one-time password verification
- No credit card required for the trial
- Unlimited downloads are available with a paid license

Start here: [https://serp.ly/analdin-downloader](https://serp.ly/analdin-downloader)

### Installation Instructions

1. Open the latest release page: [GitHub Releases](https://github.com/serpcompany/analdin-downloader/releases/latest)
2. Download the correct build for your browser.
3. Install the extension.
4. Open a supported Analdin video detail page.
5. Use the player button to detect and download the media.

### FAQ

**What pages is this extension built for?**
Clean Analdin detail pages following the `/videos/<id>/<slug>/` pattern, such as the sample URL provided on the product page.

**Is this a multi-site downloader?**
No. The extension is intentionally scoped to the Analdin domain family only — `analdin.com`, `*.analdin.com`, and `www.analdin.com`.

**What makes the fit look strong?**
The target configuration is exact and solid, with a focus on one site, one watch-page pattern, one player wrapper, and one compact selector stack.

**Is it release-ready?**
Yes, the extension is available for download from the latest release. The target facts are strong and exact, and the workflow has been validated on supported Analdin detail pages.

**What is the main user-facing hook?**
A straightforward watch-page workflow with an Analdin-branded player button attached to the configured player wrapper, letting you download videos without hunting through page source.

### Notes

- Only download content you own or have explicit permission to save
- An internet connection is required for downloads
- The extension only works on Analdin detail pages with the `/videos/<id>/<slug>/` pattern
- Supported pages must reach `document_idle` for the content-script chain to run

### License

This repository is distributed under the proprietary SERP Apps license in the [LICENSE](https://github.com/serpcompany/analdin-downloader/blob/main/LICENSE) file. Review that file before copying, modifying, or redistributing any part of this project.

### About Analdin

Analdin is an adult entertainment platform featuring a wide variety of video content. Analdin Downloader helps users save videos from supported watch pages directly through their browser, providing a focused and reliable download experience on the pages that matter most.

# Actor input Schema



## Actor input object example

```json
{}
````

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {};

// Run the Actor and wait for it to finish
const run = await client.actor("serpxxx/analdin-video-downloader-how-to-download-analdin-videos").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {}

# Run the Actor and wait for it to finish
run = client.actor("serpxxx/analdin-video-downloader-how-to-download-analdin-videos").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{}' |
apify call serpxxx/analdin-video-downloader-how-to-download-analdin-videos --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=serpxxx/analdin-video-downloader-how-to-download-analdin-videos",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Analdin Video Downloader | How to Download Analdin Videos",
        "description": null,
        "version": "0.0",
        "x-build-id": "Do4tvKBTZGQ9f0Jd4"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/serpxxx~analdin-video-downloader-how-to-download-analdin-videos/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-serpxxx-analdin-video-downloader-how-to-download-analdin-videos",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/serpxxx~analdin-video-downloader-how-to-download-analdin-videos/runs": {
            "post": {
                "operationId": "runs-sync-serpxxx-analdin-video-downloader-how-to-download-analdin-videos",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/serpxxx~analdin-video-downloader-how-to-download-analdin-videos/run-sync": {
            "post": {
                "operationId": "run-sync-serpxxx-analdin-video-downloader-how-to-download-analdin-videos",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {}
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
