# Erome Scraper & Video Downloader (`vnx0/erome-downloader`) Actor

Extract direct video and image URLs from Erome albums. Automatically bypass blocks and download media in bulk.

- **URL**: https://apify.com/vnx0/erome-downloader.md
- **Developed by:** [Vnx0](https://apify.com/vnx0) (community)
- **Categories:** Videos, Automation, Developer tools
- **Stats:** 13 total users, 2 monthly users, 85.7% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## 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

## Erome Downloader & Scraper

A fast, highly efficient **Erome downloader and scraper** designed to extract and bulk-download videos, images, and albums from erome.com. Perfect for media archivers, data extraction, and automation workflows. This powerful software simplifies the entire process of downloading content from Erome, whether it's a single album, a batch of albums, a specific user profile, or search results.

Features include raw media extraction, bulk gallery downloading, bypasses for HTTP 403 blocks (using built-in residential proxies and authentic headers), and fully structured metadata exports.

### Features

*   **⚡️ Bulk Album Downloader:** Download images and high-quality videos directly from Erome albums.
*   **👤 Profile Scraper:** Extract and download all albums and posts natively found on any creator's profile page. 
*   **🔍 Search Automation:** Scrape Erome search results and seamlessly extract their subsequent albums automatically.
*   **🚀 Fast & Reliable:** Built with advanced networking to prevent 403 Forbidden blockers, timeouts, and IP blocks seamlessly.
*   **🛡️ Proxy Support:** Fully integrates with high-quality proxies to maintain high scraping success rates securely.
*   **📊 Structured Data Extraction:** Retrieves album tags, titles, dates, uploaders, and individual media URLs in a structured format for easy database storage or further API usage.


### Why use this Erome Downloader?

This tool acts as a premier **gallery-downloader and data-extraction tool**. Standard Python scrapers or standalone scripts can drop connections, get banned by 410 headers, or struggle with concurrency. Our software utilizes a robust infrastructure for flawless, concurrent data extraction, automatically dealing with headers, retries, and proxies. 

You can dynamically toggle the media download capability if you only want the metadata, or you can seamlessly archive the raw `.mp4` and `.jpg` files directly to your storage seamlessly.

### Input Configuration

The scraper accepts input via a sleek interface or a generic data payload.

| Field | Type | Description |
| ----- | ---- | ----------- |
| `url` | String | A single Erome album URL to scrape and download. |
| `urls` | Array | A list of Erome album URLs for bulk downloading. |
| `username` | String | A specific Erome profile username to extract all posts/albums from. |
| `query` | String | A search keyword to scrape Erome albums. |
| `download_media` | Boolean | True to physically download all `mp4`/`jpg` files to storage, False to only export the metadata. Default: `false`. |
| `proxyConfiguration` | Object | Proxy settings to prevent IP bans and secure the traffic flow. |

#### Input Example

```json
{
  "url": "https://www.erome.com/a/U3CyGACn",
  "download_media": true
}
````

### Output Example

Upon completion, you will find your structured data export containing all necessary metadata. If `download_media` was checked, the actual media files will be saved in structured storage.

```json
{
  "input": {
    "url": "https://www.erome.com/a/U3CyGACn",
    "download_media": true
  },
  "success": true,
  "data": {
    "type": "album",
    "album_id": "U3CyGACn",
    "title": "Asian wild babe sloppy blowjob",
    "user": "PINKPARK",
    "tags": ["amateur", "creampie", "asian"],
    "count": 6,
    "date": "2026-04-06T13:53:18.000Z",
    "media": [
      {
        "num": 1,
        "url": "https://s94.erome.com/.../file.jpg",
        "filename": "nqKmbvAz",
        "extension": "jpg"
      },
      {
        "num": 2,
        "url": "https://v94.erome.com/.../file.mp4",
        "filename": "Z64ancVH_720p",
        "extension": "mp4"
      }
    ],
    "download_stats": {
      "totalMedia": 6,
      "downloadedMedia": 6
    }
  }
}
```

### Usage Limits & Disclaimer

Please respect Erome.com's Terms of Service and bandwidth capabilities. We strongly advise utilizing reliable residential proxies inside your configuration to decrease the likelihood of getting banned and to ensure a healthy and stable automated flow for all your web-scraping endeavors.

# Actor input Schema

## `url` (type: `string`):

URL of a single album (e.g., https://www.erome.com/a/ID)

## `urls` (type: `array`):

Extract media from multiple albums

## `username` (type: `string`):

Scrape all albums from a user profile

## `posts_only` (type: `boolean`):

Only scrape posts from user profiles

## `max_pages` (type: `integer`):

Max pages to scrape from user profiles

## `query` (type: `string`):

Search Erome for albums

## `page` (type: `integer`):

Page number to fetch for search queries

## `download_media` (type: `boolean`):

Download actual media files to key-value store (for album endpoints)

## `proxyConfiguration` (type: `object`):

Select proxies to be used by your Actor.

## Actor input object example

```json
{
  "url": "https://www.erome.com/a/U3CyGACn",
  "posts_only": true,
  "max_pages": 20,
  "page": 1,
  "download_media": false
}
```

# Actor output Schema

## `results` (type: `string`):

Main dataset containing all scraped albums, profiles, and search results with preview images displayed in a table format

## `overview` (type: `string`):

JSON summary of the extraction process including success counts and statistics

## `downloadedMedia` (type: `string`):

All media files downloaded to key-value store (only available when download\_media input is enabled)

# 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("vnx0/erome-downloader").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("vnx0/erome-downloader").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 vnx0/erome-downloader --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=vnx0/erome-downloader",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Erome Scraper & Video Downloader",
        "description": "Extract direct video and image URLs from Erome albums. Automatically bypass blocks and download media in bulk.",
        "version": "0.0",
        "x-build-id": "pZFO3D1WMctJUbeg8"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/vnx0~erome-downloader/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-vnx0-erome-downloader",
                "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/vnx0~erome-downloader/runs": {
            "post": {
                "operationId": "runs-sync-vnx0-erome-downloader",
                "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/vnx0~erome-downloader/run-sync": {
            "post": {
                "operationId": "run-sync-vnx0-erome-downloader",
                "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": {
                    "url": {
                        "title": "Album URL",
                        "type": "string",
                        "description": "URL of a single album (e.g., https://www.erome.com/a/ID)",
                        "default": "https://www.erome.com/a/U3CyGACn"
                    },
                    "urls": {
                        "title": "Album URLs (Batch)",
                        "type": "array",
                        "description": "Extract media from multiple albums",
                        "items": {
                            "type": "string"
                        }
                    },
                    "username": {
                        "title": "Profile Username",
                        "type": "string",
                        "description": "Scrape all albums from a user profile"
                    },
                    "posts_only": {
                        "title": "Posts Only",
                        "type": "boolean",
                        "description": "Only scrape posts from user profiles",
                        "default": true
                    },
                    "max_pages": {
                        "title": "Max Pages",
                        "type": "integer",
                        "description": "Max pages to scrape from user profiles",
                        "default": 20
                    },
                    "query": {
                        "title": "Search Query",
                        "type": "string",
                        "description": "Search Erome for albums"
                    },
                    "page": {
                        "title": "Search Page",
                        "type": "integer",
                        "description": "Page number to fetch for search queries",
                        "default": 1
                    },
                    "download_media": {
                        "title": "Download Media",
                        "type": "boolean",
                        "description": "Download actual media files to key-value store (for album endpoints)",
                        "default": false
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Select proxies to be used by your Actor."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
