# Vimeo Metadata Scraper (`scrapers-hub/vimeo-metadata-scraper`) Actor

🚀 Vimeo Metadata Scraper extracts rich Vimeo video metadata—title, description, tags, duration, views, likes, upload date, channel, thumbnails & categories. 📊 Ideal for SEO, content research, analytics & archiving. Fast, reliable, developer-friendly.

- **URL**: https://apify.com/scrapers-hub/vimeo-metadata-scraper.md
- **Developed by:** [Scrapers Hub](https://apify.com/scrapers-hub) (community)
- **Categories:** Social media, Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.99 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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

### 🚀 Vimeo Video Scraper 🛠️

**🚀 Vimeo Video Scraper 🛠️** is a reliable Vimeo video scraper that extracts rich, structured metadata from public Vimeo video URLs. This Vimeo scraper tool leverages Vimeo’s OEmbed endpoint with browser-like request fingerprinting to scrape Vimeo videos accurately and at scale — ideal for marketers, data analysts, and researchers who need a dependable Vimeo metadata extractor without managing a browser. Run it on batches of URLs to save hours of manual work and feed clean data into your workflows.

---

### Why choose 🚀 Vimeo Video Scraper 🛠️?

| Feature | Benefit |
| --- | --- |
| ✅ **OEmbed-based accuracy** | Fetches metadata directly from Vimeo’s OEmbed API for precise titles, descriptions, dimensions, and more. |
| ✅ **Browser-like requests** | Uses curl_cffi to impersonate Chrome, improving reliability on requests that may otherwise be blocked. |
| ✅ **Proxy support** | Works with Apify Proxy when configured, enabling consistent results for larger batches. |
| ✅ **Structured JSON output** | Delivers clean, nested fields ready for analysis or downstream integrations. |
| ✅ **Stable sequential processing** | Processes URLs one by one with a short politeness delay for predictable, low-error runs. |
| ✅ **Scales with your dataset** | Drop in a long list of Vimeo links and generate a bulk Vimeo video scraper run with minimal setup. |

---

### Key features

- 📊 **Rich metadata extraction**: Pulls key fields including title, description, thumbnail, video_id, width/height, and author details from Vimeo’s OEmbed.
- 🛡️ **Anti-blocking through impersonation**: Sends requests with browser-like fingerprints via curl_cffi for a more resilient Vimeo API data extractor.
- 🌐 **Optional proxy support**: Honors Apify proxy configuration if provided, ideal for higher-volume runs.
- 🔁 **Polite request pacing**: Inserts a brief, built-in delay between URLs to keep your runs smooth and stable.
- 💾 **Real-time saving to dataset**: Each result is pushed immediately to the dataset, reducing the risk of data loss.
- 🔎 **Simple, URL-first input**: Works with plain Vimeo video URLs — perfect when you already have a list from a channel or playlist.
- 🧩 **Clean schema for automation**: Consistent JSON structure simplifies import into BI tools, scripts, or pipelines.

---

### Input

Provide input via an input.json file. Example structure:

```json
{
  "urls": [
    "https://vimeo.com/693117164",
    "https://vimeo.com/929824958"
  ]
}
````

#### Input fields

| Field | Required | Description |
| --- | --- | --- |
| urls | Yes | Array of Vimeo video URLs to process. Provide one or many public video links. |

Tip: The actor also respects Apify’s standard proxy settings when available in your run (proxyConfiguration). While not part of this actor’s input schema form, enabling Apify Proxy in the console will be used by the actor during requests.

***

### Output

After execution, the actor saves each video’s data in JSON format to the Apify dataset.

```json
{
  "important": {
    "original_url": "https://vimeo.com/693117164",
    "title": "Countdown_3_seconds_timer",
    "description": "A simple 3-second countdown timer for video production.",
    "thumbnail": "https://i.vimeocdn.com/video/1402770298_640.jpg",
    "duration": "4s",
    "provided_resolution": "240p",
    "webpage_url": "https://vimeo.com/693117164"
  },
  "channel": {
    "channel": "Hiverse App",
    "channel_url": "https://vimeo.com/user164202908"
  },
  "video": {
    "video_id": 693117164,
    "width": 426,
    "height": 240
  }
}
```

#### Output fields

| Field | Type | Description |
| --- | --- | --- |
| important.original\_url | string | The input Vimeo URL that was processed. |
| important.title | string | Video title extracted from OEmbed. |
| important.description | string | Video description extracted from OEmbed. |
| important.thumbnail | string | Direct URL to the video’s thumbnail image. |
| important.duration | string | Formatted duration (“Xm Ys” or “Xs”) based on OEmbed duration in seconds. |
| important.provided\_resolution | string | Resolution inferred from the reported height (e.g., “240p”). |
| important.webpage\_url | string | Canonical Vimeo page URL (same as original\_url in this actor). |
| channel.channel | string | Name of the video author/uploader. |
| channel.channel\_url | string | URL of the author/uploader’s Vimeo page. |
| video.video\_id | number | Numeric ID of the Vimeo video. |
| video.width | number | Video width reported by OEmbed. |
| video.height | number | Video height reported by OEmbed. |

Note: Failed requests are logged but not pushed to the dataset. You can export results from the dataset in JSON, CSV, or other formats supported by Apify.

***

### How to use 🚀 Vimeo Video Scraper 🛠️ (via Apify Console)

1. **Open Apify Console**
   Go to https://console.apify.com and sign in.

2. **Find the actor**
   Search for “Vimeo Video Scraper” and open the actor detail page.

3. **Add your input URLs**
   In the INPUT tab, paste one or more Vimeo video URLs into the “Video URLs” (urls) list. Each item should be a full video link like https://vimeo.com/123456789.

4. **Enable proxy (optional)**
   For larger batches or if you encounter blocks, enable Apify Proxy in the run settings. The actor will use your proxyConfiguration automatically if present.

5. **Start the run**
   Click Run. The actor processes URLs sequentially, applying a brief delay between them. Follow progress in the LOGS tab.

6. **Review results**
   Switch to the OUTPUT tab to view the dataset. Each item corresponds to one video with its metadata.

7. **Export your data**
   Use the Export tab to download results as JSON, CSV, or other supported formats for analysis and integration.

No coding required — get accurate Vimeo video data in minutes.

***

### Advanced features & SEO optimization

- 🛡️ **Browser impersonation for resilience**: Engineered to keep your Vimeo video scraper requests reliable by using curl\_cffi with Chrome-like fingerprints.
- 🌐 **Proxy-aware runs**: When proxyConfiguration is enabled in your environment, requests route through Apify Proxy for a more robust bulk Vimeo video scraper.
- ⏱️ **Rate-friendly pacing**: Inserts short, polite delays between requests to minimize rate-limit friction while you scrape Vimeo videos at scale.
- 🧩 **Pipeline-ready JSON**: Ideal for teams building a Vimeo API data extractor pipeline — the nested schema maps cleanly into BI tools or ETL jobs.
- 🔍 **Metadata-focused by design**: A purpose-built Vimeo video data scraper that emphasizes accuracy and structure over browser automation.

***

### Best use cases

- 📈 **Market research & trend tracking**: Aggregate titles, descriptions, and dimensions from target video lists to understand content patterns.
- 🗂️ **Content cataloging**: Enrich existing Vimeo video URL inventories with structured metadata for asset management systems.
- 🧪 **SEO & snippet analysis**: Analyze titles and descriptions at scale to inform optimization strategies for embedded Vimeo content.
- 🔗 **Data pipelines & ETL**: Feed the clean JSON output into analytics warehouses or dashboards with minimal transformation.
- 🎓 **Academic or media studies**: Collect comparable metadata across curated video sets for reproducible research.
- 🧰 **QA for integrations**: Validate that embedded Vimeo links in your sites/apps resolve to the expected titles, owners, and dimensions.

***

### Technical specifications

- **Supported Input Formats**
  - ✅ Public Vimeo video URLs (e.g., https://vimeo.com/123456789)
  - ❌ Automatic channel or playlist crawling (provide individual video URLs instead)

- **Proxy Support**
  - ✅ Uses Apify Proxy when proxyConfiguration is enabled in your run settings

- **Retry Mechanism**
  - ⚠️ No custom retry logic is implemented; the actor performs a single OEmbed request per URL and logs failures

- **Dataset Structure**
  - ✅ Nested JSON object with groups: important, channel, video

- **Rate Limits & Performance**
  - ✅ Sequential processing with a short politeness delay between URLs

- **Limitations**
  - ❌ Private or password-protected videos are not supported
  - ❌ No video download capability (this is a metadata extractor, not a Vimeo video downloader tool)
  - ❌ Captions, transcripts, and comments are not collected

***

### FAQ

#### Do I need a Vimeo API key to use this?

✅ No. The actor uses Vimeo’s public OEmbed endpoint and does not require an API key. Just provide public Vimeo video URLs.

#### Can this download Vimeo videos?

❌ No. This tool is a Vimeo metadata extractor, not a Vimeo video downloader tool. It collects structured metadata such as title, description, author, and dimensions.

#### Does it work with proxies?

✅ Yes. If you enable proxyConfiguration (e.g., via Apify Proxy) in your run settings, the actor will route requests through it to improve robustness on larger batches.

#### Can it scrape entire channels or playlists automatically?

❌ Not automatically. The actor accepts individual video URLs. To process content from a channel or playlist, supply the list of video URLs you want to scrape.

#### What fields does it extract?

💡 It outputs a nested JSON with fields for title, description, thumbnail, duration, provided\_resolution, author name and URL, video\_id, width, height, and the original URL.

#### How many videos can I scrape in one run?

🧮 There’s no hard-coded limit in the actor. Practical limits depend on your Apify run resources (time and memory) and the number of URLs you provide.

#### Are private or password-protected videos supported?

❌ No. The actor is designed for publicly accessible videos. Private or restricted videos will not return metadata via OEmbed.

#### Does it include captions, transcripts, or comments?

❌ No. This actor focuses on core video and author metadata from OEmbed. It does not include captions, transcript extractor features, or comments scraper functionality.

***

### Support & feature requests

We’d love your feedback on the 🚀 Vimeo Video Scraper 🛠️ to keep improving it.

- 💡 Feature Requests: Want additional OEmbed fields, basic concurrency controls, CSV upload of URLs, or error reporting in the dataset? Share your ideas!
- 📧 Contact: Reach out via the Apify platform (Actor page → Support/Contact) and we’ll get back to you.

Your input directly shapes the roadmap and helps us build the most useful Vimeo scraper tool for your workflows.

***

### Closing CTA / Final thoughts

*Get started with the 🚀 Vimeo Video Scraper 🛠️ and turn raw Vimeo links into clean, structured insights — fast.*\
*An SEO-optimized, metadata-focused way to scrape Vimeo videos at scale.*

***

### Disclaimer

These scrapers collect information only from **publicly accessible sources**. They do not access private profiles, authenticated data, or password-protected pages. Compliance with applicable laws and policies (including GDPR/CCPA and Vimeo’s Terms of Service) is your responsibility. For data removal inquiries or questions, please contact us via the Apify platform. Always use this tool responsibly, ethically, and for legitimate purposes.

# Actor input Schema

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

Enter the Vimeo video URLs you want to scrape.

## Actor input object example

```json
{
  "urls": [
    "https://vimeo.com/693117164"
  ]
}
```

# 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 = {
    "urls": [
        "https://vimeo.com/693117164"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapers-hub/vimeo-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 = { "urls": ["https://vimeo.com/693117164"] }

# Run the Actor and wait for it to finish
run = client.actor("scrapers-hub/vimeo-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 '{
  "urls": [
    "https://vimeo.com/693117164"
  ]
}' |
apify call scrapers-hub/vimeo-metadata-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Vimeo Metadata Scraper",
        "description": "🚀 Vimeo Metadata Scraper extracts rich Vimeo video metadata—title, description, tags, duration, views, likes, upload date, channel, thumbnails & categories. 📊 Ideal for SEO, content research, analytics & archiving. Fast, reliable, developer-friendly.",
        "version": "1.0",
        "x-build-id": "9Jt5dNOLB1hV3uGnk"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scrapers-hub~vimeo-metadata-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scrapers-hub-vimeo-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/scrapers-hub~vimeo-metadata-scraper/runs": {
            "post": {
                "operationId": "runs-sync-scrapers-hub-vimeo-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/scrapers-hub~vimeo-metadata-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-scrapers-hub-vimeo-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",
                "required": [
                    "urls"
                ],
                "properties": {
                    "urls": {
                        "title": "Video URLs",
                        "type": "array",
                        "description": "Enter the Vimeo video URLs you want to scrape.",
                        "items": {
                            "type": "string"
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
