# ManyVids Video Metadata Scraper (`datavoid/manyvids-video-metadata-scraper`) Actor

Extract structured ManyVids video metadata by URL or title search with creator, tags, pricing, stats, and media info.

- **URL**: https://apify.com/datavoid/manyvids-video-metadata-scraper.md
- **Developed by:** [Danny](https://apify.com/datavoid) (community)
- **Categories:** Automation, Social media, Videos
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $25.00 / 1,000 metadata results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## ManyVids Video Metadata Scraper

Extract clean, structured metadata for one public ManyVids video. The Actor can fetch an exact video by URL or search by title and optional creator name, then saves one normalized item to the default dataset.

It does not log in, bypass access controls, or download video files. It only reads public metadata that is available from ManyVids endpoints.

### What You Get

- Video ID, canonical URL, title, description, tags, and publication date
- Creator name, creator ID, and creator profile URL
- Thumbnail and screenshot URLs
- Duration, resolution, orientation, file size, price, and currency
- Engagement counts such as views, likes, and comments when available
- A clear `scrapeStatus` value and `errorMessage` for failed lookups

### Common Use Cases

- Enrich an internal video catalog with public ManyVids metadata
- Match filenames or titles to ManyVids video pages
- Normalize creator, pricing, duration, and media preview fields
- Audit whether a known ManyVids URL is still available
- Build repeatable metadata checks for research, moderation, or data QA workflows

### Input

Choose one lookup mode.

#### Get metadata from a known video URL

Use this when you already have the exact ManyVids video page.

```json
{
  "operation": "get_video_metadata_by_url",
  "url": "https://www.manyvids.com/Video/6266542/morning-yoga-sfw-4-k",
  "debug": false
}
````

#### Search by video title

Use this when you only know the title or filename. Add `creatorName` when possible for more accurate matching.

```json
{
  "operation": "get_video_metadata_by_title_search",
  "title": "Morning Yoga SFW 4K",
  "creatorName": "Sofie Skye",
  "debug": false
}
```

| Field | Required | Description |
| --- | --- | --- |
| `operation` | No | Lookup mode. Defaults to URL lookup. |
| `url` | For URL lookup | Full public ManyVids video URL. |
| `title` | For title search | Video title or filename. File extensions like `.mp4` are removed automatically. |
| `creatorName` | No | Creator display name or handle. Recommended for title searches. |
| `debug` | No | Adds matching diagnostics and the raw ManyVids API response. |

### Output

The Actor saves one item to the default dataset. Successful results include normalized fields such as:

```json
{
  "videoId": "6266542",
  "url": "https://www.manyvids.com/Video/6266542/morning-yoga-sfw-4-k",
  "title": "Morning Yoga SFW 4K",
  "creatorName": "Sofie Skye",
  "durationSeconds": 1234,
  "price": 9.99,
  "currency": "USD",
  "tags": ["example"],
  "scrapeStatus": "ok",
  "scrapedAt": "2026-05-21T12:00:00.000Z"
}
```

If the video cannot be resolved, the dataset item still contains a machine-readable status:

- `invalid_input`: Required input is missing or malformed.
- `not_found`: The video or matching title could not be found.
- `creator_not_found`: The supplied creator could not be resolved.
- `api_error`: ManyVids returned an unexpected API error.

### Tips for Better Matches

- Prefer URL lookup when you have the video page.
- For title search, include the creator name whenever possible.
- Filenames are accepted. The Actor removes common video file extensions before searching.
- Enable `debug` only when you need to inspect why a title matched or failed.

### Limits and Notes

- The Actor returns one video metadata item per run.
- Search quality depends on the public ManyVids search endpoints and available metadata.
- Site changes or unavailable videos can affect results.
- Users are responsible for making sure their use of the data complies with applicable laws and website terms.

# Actor input Schema

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

Paste the full public ManyVids video page URL for the most accurate lookup.

## `title` (type: `string`):

Enter the video title or filename to search for. File extensions like .mp4 are ignored automatically.

## `creatorName` (type: `string`):

Optional. Enter the creator's display name or handle to improve matching accuracy.

## `debug` (type: `boolean`):

Enable to see search diagnostics, top matches, and raw API responses. Helpful for testing and troubleshooting.

## Actor input object example

```json
{
  "url": "https://www.manyvids.com/Video/6266542/morning-yoga-sfw-4-k",
  "title": "Morning Yoga SFW 4K",
  "creatorName": "Sofie Skye",
  "debug": false
}
```

# Actor output Schema

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

Dataset items produced by this run.

# 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 = {
    "url": "https://www.manyvids.com/Video/6266542/morning-yoga-sfw-4-k",
    "title": "Morning Yoga SFW 4K",
    "creatorName": "Sofie Skye"
};

// Run the Actor and wait for it to finish
const run = await client.actor("datavoid/manyvids-video-metadata-scraper").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 = {
    "url": "https://www.manyvids.com/Video/6266542/morning-yoga-sfw-4-k",
    "title": "Morning Yoga SFW 4K",
    "creatorName": "Sofie Skye",
}

# Run the Actor and wait for it to finish
run = client.actor("datavoid/manyvids-video-metadata-scraper").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 '{
  "url": "https://www.manyvids.com/Video/6266542/morning-yoga-sfw-4-k",
  "title": "Morning Yoga SFW 4K",
  "creatorName": "Sofie Skye"
}' |
apify call datavoid/manyvids-video-metadata-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=datavoid/manyvids-video-metadata-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "ManyVids Video Metadata Scraper",
        "description": "Extract structured ManyVids video metadata by URL or title search with creator, tags, pricing, stats, and media info.",
        "version": "0.1",
        "x-build-id": "3l6mchwkS2cJP7cTg"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/datavoid~manyvids-video-metadata-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-datavoid-manyvids-video-metadata-scraper",
                "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/datavoid~manyvids-video-metadata-scraper/runs": {
            "post": {
                "operationId": "runs-sync-datavoid-manyvids-video-metadata-scraper",
                "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/datavoid~manyvids-video-metadata-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-datavoid-manyvids-video-metadata-scraper",
                "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": "🔗 Video URL",
                        "pattern": "^https?://([a-z0-9-]+\\.)*manyvids\\.com/[Vv]ideo/[0-9]+(/.*)?$",
                        "type": "string",
                        "description": "Paste the full public ManyVids video page URL for the most accurate lookup."
                    },
                    "title": {
                        "title": "🔎 Video Title",
                        "type": "string",
                        "description": "Enter the video title or filename to search for. File extensions like .mp4 are ignored automatically."
                    },
                    "creatorName": {
                        "title": "👤 Creator Name",
                        "type": "string",
                        "description": "Optional. Enter the creator's display name or handle to improve matching accuracy."
                    },
                    "debug": {
                        "title": "🐛 Debug Output",
                        "type": "boolean",
                        "description": "Enable to see search diagnostics, top matches, and raw API responses. Helpful for testing and troubleshooting.",
                        "default": false
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
