# Dailymotion Video Scraper (`scrapers-hub/dailymotion-video-scraper`) Actor

🎥 Dailymotion Video Scraper (dailymotion-video-scraper) extracts metadata, titles, and links from Dailymotion videos fast. 🚀 Perfect for content research, analytics, and archiving—save time with reliable, automated scraping. 📊

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

## Pricing

from $2.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

### 📺 Dailymotion Video Scraper: The Ultimate Metadata Extraction & Intelligence Tool 🚀✨

#### 🌟 Introduction: The Power of Video Data in the Modern Era 💎

In the rapidly evolving landscape of digital content, video has emerged as the most dominant and influential medium of communication. Statistics show that by 2024, video traffic accounts for over 80% of all consumer internet traffic. Platforms like Dailymotion, which hosts millions of hours of unique content, represent a goldmine of information for researchers, marketers, developers, and data scientists. However, extracting high-quality, structured metadata from these platforms is a challenge that requires sophisticated engineering. 🏛️📊

Our **Dailymotion Video Scraper** is not just another simple script. It is a high-performance, professional-grade Apify Actor designed to provide a comprehensive window into Dailymotion's vast ecosystem. By utilizing advanced browser impersonation, residential proxy integration, and a deep understanding of video platform architectures, the **Dailymotion Video Scraper** allows you to unlock deep insights that were previously inaccessible through traditional scraping methods. Whether you are building an AI-powered recommendation engine, conducting market research, or archiving cultural artifacts, this **Dailymotion Video Scraper** is your ultimate companion. 🛡️💎

---

#### 🚀 Why This Scraper is the Industry Leader 🏆

The web scraping industry is filled with "quick fixes" that break as soon as a platform updates its security. Our **Dailymotion Video Scraper** is built differently. We prioritize stability, accuracy, and performance above all else. Here is why professionals choose the **Dailymotion Video Scraper** over any other solution:

| Feature | The Competitive Edge | Benefit to You |
|---------|-----------------------|----------------|
| **Advanced Browser Impersonation** 🎭 | Uses the legendary `curl-cffi` library to mimic Chrome TLS fingerprints. | Guaranteed bypass of sophisticated anti-bot systems like Cloudflare and Akamai. |
| **No-Cookie Architecture** 🔑 | Operates entirely on public data endpoints without requiring user login. | Zero risk of account bans or privacy violations; 100% compliant with public data access. |
| **Residential Proxy Integration** 🌍 | Built-in native support for Apify's premium Residential Proxy network. | Bypasses geo-restrictions and rate limits, allowing you to scrape data from any country in the world. |
| **High-Fidelity Metadata** 💎 | Extracts over 20+ specific data points per video, including tags, uploader IDs, and engagement. | Get the "full picture" of every video, not just the title and description. |
| **Asynchronous Performance** ⚡ | Built on top of Python’s `asyncio` for non-blocking I/O operations. | Process thousands of URLs in a fraction of the time compared to synchronous scrappers. |
| **SEO and Semantic Optimized** 🔍 | Clean metadata output that is ready for indexing or ingestion into RAG (Retrieval-Augmented Generation) systems. | Perfect for training LLMs or building modern search engines. |

---

#### 🛠️ Detailed List of Extracted Metadata 🧩

When we say "comprehensive," we mean it. The **Dailymotion Video Scraper** dives deep into the Dailymotion internal API to provide you with a structured JSON object for every video. Here is a breakdown of what you get with the **Dailymotion Video Scraper**:

##### 🎬 1. Video Identity & Branding
*   **Unique Video ID**: The internal alphanumeric identifier used by Dailymotion for indexing.
*   **Video Title**: The full, uncompressed title of the video, including emojis and special characters.
*   **Description**: The complete text provided by the uploader, often containing links, keywords, and context.
*   **Webpage URL**: The direct canonical link to the video for easy reference or further analysis.

##### 👤 2. Uploader & Channel Information
*   **Uploader Name**: The screenname or nickname of the creator.
*   **Uploader ID**: The unique identifier for the channel, allowing you to track all videos from a specific source.
*   **Uploader Region**: (Via Proxies) Detect the origin and targeting of the content.

##### 📈 3. Engagement & Metrics
*   **Like count**: Real-time count of user appreciation, helping you gauge content popularity.
*   **Duration**: Precise length of the video in seconds, crucial for content categorization and ad-placement research.
*   **Upload Date**: Standardized `YYYYMMDD` format for easy chronological sorting and time-series analysis.

##### 🏷️ 4. Categorization & Discovery
*   **Tags Array**: A full list of keywords assigned to the video by the creator. This is vital for SEO research and finding related content.
*   **Language**: Detection of the primary language, supporting global data analysis.
*   **Age Restriction**: Clear flagging of "explicit" content with mapping to industry-standard age limits (e.g., 18+).

##### 🖼️ 5. Visuals & Technical Specs
*   **High-Resolution Thumbnails**: Links to the best available image quality for visual indexing and preview generation.
*   **Format Metadata**: Information about the video formats and best available resolution (e.g., 720p, 1080p).

---

#### 💡 Transformative Use Cases for Video Intelligence 🌈

The data provided by the **Dailymotion Video Scraper** isn't just numbers and strings; it's the raw material for innovation. Here are some ways our users are leveraging the **Dailymotion Video Scraper**:

##### 📊 Content Strategy & Competitor Analysis
If you are a content creator or a digital marketing agency, understanding what works is the key to success. By scraping your competitors' channels on Dailymotion, you can analyze:
*   Which topics get the most likes?
*   What time of year do they upload the most?
*   What tags are they using to dominate the search results?
This data allows you to pivot your strategy based on hard evidence rather than guesswork.

##### 🤖 Training AI & Machine Learning Models
In the age of AI, data is the new oil. Large Language Models (LLMs) and Multi-modal models require diverse datasets to understand nuance. Dailymotion provides a unique perspective different from YouTube or TikTok. Our **Dailymotion Video Scraper** can feed:
*   Speech-to-text engines (like OpenAI Whisper) by providing direct links to high-quality metadata.
*   Computer Vision models for thumbnail analysis and brand detection.
*   Recommendation systems for cross-platform content discovery.

##### 🛡️ Dailymotion Video Scraper for Brand Protection & Compliance
Companies use our **Dailymotion Video Scraper** to monitor for unauthorized usage of their copyrighted material. By searching for specific keywords or monitoring certain tags, the **Dailymotion Video Scraper** identifies:
*   Pirated content being re-uploaded to the platform.
*   Misuse of trademarks in descriptions or titles.
*   Content that violates their brand safety guidelines.

##### 🏛️ Cultural Archiving & Academic Research
For historians and social scientists, digital platforms are the modern-day Library of Alexandria. High-scale scraping with the **Dailymotion Video Scraper** allows researchers to:
*   Archive news footage or political speeches that might be deleted later.
*   Study the evolution of internet slang through tags and descriptions.
*   Analyze global trends by comparing content from different linguistic regions.

---

#### 🛡️ The Science of Stealth: How We Bypass Anti-Bot Systems ⚙️

Most scrapers fail today because platforms have moved beyond simple IP blocking. They now use "Fingerprinting" to identify bot-like behavior. Our Dailymotion Video Scraper stays ahead by implementing:

##### 🎭 Chrome TLS Fingerprinting
When you visit a website through a browser, your computer performs a "handshake" using TLS (Transport Layer Security). Bots usually have a different handshake signature than humans. We use `curl-cffi` to exactly match the signature of a latest Chrome browser on a Windows machine.

##### 🌍 Residential Proxy Rotation
Datacenter IPs are easy to flag. Our actor is designed to work seamlessly with Apify’s Residential Proxy network. This means the request appears to be coming from a real home or office, making it virtually impossible to block.

##### 🍪 Intelligent Session Handling
Dailymotion uses various tokens (like `dmV1st`) to verify sessions. Our scraper automatically handles the "handshake" phase, grabbing necessary tokens and passing them through the scraping loop to ensure the data is complete and accurate.

---

#### 📥 Input Configuration parameters 📝

Setting up the **Dailymotion Video Scraper** is incredibly easy. Here is a detailed look at the **Dailymotion Video Scraper** input schema:

##### 1. Video URLs (`urls`)
*   **Type**: Array of Strings.
*   **Requirement**: Required.
*   **Description**: This is the list of Dailymotion video URLs you wish to process. You can provide one or thousands.
*   **Format**: `https://www.dailymotion.com/video/[VIDEO_ID]` or `https://dailymotion.com/video/[VIDEO_ID]`.


#### 📤 Professional Output Example 📄

When you run the **Dailymotion Video Scraper**, the results are stored in an Apify Dataset. You can export them in JSON, CSV, Excel, XML, or even as an HTML table. Here is a sample of what the **Dailymotion Video Scraper** raw JSON output looks like:

```json
[
  {
    "url": "https://www.dailymotion.com/video/x9aak2y",
    "id": "x9aak2y",
    "title": "Ultimate Nature Highlights 2024",
    "description": "Discover the most stunning landscapes and wildlife caught on camera this year. From the peaks of the Himalayas to the depths of the Amazon rainforest.",
    "duration": 425,
    "upload_date": "20240412",
    "uploader": "EarthChronicles",
    "uploader_id": "u883921",
    "uploader_url": null,
    "view_count": null,
    "like_count": 5280,
    "comment_count": null,
    "age_limit": 0,
    "thumbnail": "https://s1.dmcdn.net/v/V1stX9aak2y/x1080",
    "tags": ["nature", "wildlife", "travel", "4k", "adventure"],
    "categories": [],
    "language": "en",
    "formats_count": 3,
    "best_format": "mp4/720p",
    "webpage_url": "https://www.dailymotion.com/video/x9aak2y",
    "extractor": "dailymotion"
  }
]
````

***

#### 🪜 Step-by-Step Setup Guide: From Zero to Data in Minutes 🪜

Follow these simple steps to start your first scraping run:

##### Step 1: Access the Dailymotion Video Scraper

Navigate to the **Dailymotion Video Scraper** page on the Apify Console. If you haven't already, sign up for a free Apify account to use the **Dailymotion Video Scraper**.

##### Step 2: Input your target URLs

In the "Input" tab, find the `urls` section. Paste the Dailymotion links you want to scrape. Pro-tip: You can use a spreadsheet to copy-paste a large list of links.

##### Step 3: Configure Proxies

Switch to the "Proxy and Browser" section. We recommend turning on "Apify Proxy" and selecting "Residential" groups. This ensures your scraper won't be slowed down by rate limits.

##### Step 4: Launch the Actor

Click the bright green "Start" button to launch the **Dailymotion Video Scraper**. You can watch the "Live Log" to see the **Dailymotion Video Scraper** working in real-time. It will log every URL it processes and any issues it encounters.

##### Step 5: Export Your Data

Once the run is complete, go to the "Dataset" tab. Here you can filter your results and download them in your preferred format. For most developers, JSON is the way to go; for marketers, Excel or CSV works best.

***

#### ⚙️ Advanced Integration Scenarios 🔗

The Apify platform allows you to go beyond manual runs. Here is how you can automate your workflow:

##### 🔗 Webhooks & Automation

Set up a webhook to be notified as soon as a scraping run finishes. You can send the data directly to your server, or use services like **Zapier** or **Make.com** to push the data into Google Sheets, Slack, or a Discord channel.

##### 🛡️ API Integration

Every run can be started via a simple REST API call. This means you can integrate the Dailymotion Video Scraper directly into your own software, dashboard, or pipeline.

##### ⏰ Scheduled Runs

Need to track a channel daily? Use Apify's "Schedules" feature to run the scraper every morning at 8 AM. This is perfect for building time-series engagement charts.

***

#### ❓ Frequently Asked Questions (FAQ) 🔍

##### 1. Does this scraper support high-definition video downloads?

This actor is designed for **metadata extraction** (titles, descriptions, tags, uploader info). It does not download the binary video files. This makes it much faster and cheaper to run than a downloader.

##### 2. Why do I need Residential Proxies?

Dailymotion is a global platform. Some videos are only visible in certain countries (Geo-blocking). Residential proxies allow the **Dailymotion Video Scraper** to "pretend" you are in the correct country to see those videos. Additionally, they prevent your IP from being flagged for high-speed scraping with the **Dailymotion Video Scraper**.

##### 3. Can I scrape private videos?

No. This scraper only accesses publicly available data on Dailymotion. It does not bypass privacy settings or password-protected content.

##### 4. How fast is the scraper?

The **Dailymotion Video Scraper** is extremely fast. Processing a single URL takes about 1-2 seconds with the **Dailymotion Video Scraper** including proxy handshake. You can run multiple instances of the **Dailymotion Video Scraper** in parallel to process millions of URLs per day.

##### 5. What if the platform layout changes?

Our team monitors the actor 24/7. If Dailymotion updates its internal API or website structure, we push an update to the actor within hours to ensure zero downtime for our users.

##### 6. How are age-restricted videos handled?

The scraper detects if a video is flagged as "explicit". Instead of failing, it captures the restriction status and returns an `age_limit` of 18, so you can filter your data accordingly.

##### 7. Is there a limit to the number of URLs?

There is no hard limit. However, for lists longer than 50,000 URLs, we recommend splitting the task into multiple runs or using the Apify API to batch the requests for better memory management.

***

#### 🌍 In-Depth Geographic Insights: Regional Content Trends on Dailymotion 🗺️

Dailymotion occupies a unique niche in the global video ecosystem. Unlike other platforms that are heavily dominated by North American content, Dailymotion has massive footprints in specific regions like France, Turkey, India, and parts of Southeast Asia.

###### Why Geography Matters for Your Data Strategy

When scraping Dailymotion, understanding *where* the data is coming from is critical. By using the **Dailymotion Video Scraper** in combination with regional proxies, you can:

- Identify Hyper-Local Trends: Discover viral content in the French-speaking world (Francophonie) before it reaches global audiences.
- Monitor News and Media: Dailymotion is a primary host for many national news agencies. This makes it an essential source for real-time geopolitical analysis.
- Analyze Market Penetration: Companies can see how their brands are being discussed in specific developing markets where Dailymotion remains a top-tier video destination.

Using the `proxyConfiguration` parameter, you can target specific country codes (e.g., `FR`, `TR`, `IN`) to ensure you are seeing the platform exactly as a local user would. This reveals localized titles, descriptions, and even different "suggested" video lists that are invisible to global traffic.

***

#### 🔍 Advanced Video SEO: How to Use This Data for Search Volume Estimation 📈

Video metadata isn't just for archiving—it's a powerful tool for Search Engine Optimization (SEO). High-performing videos are essentially a collection of successful keywords.

###### Reverse-Engineering Success

By analyzing the `tags` and `description` fields across thousands of high-ranking videos, you can:

1. Map Keyword Clusters: Use the tags array to identify which keywords are frequently grouped together.
2. Estimate Competition: If a thousand videos share the same tag but vary wildly in 'like counts', you can identify "content gaps" where new videos could potentially rank higher.
3. Optimize Your Own Content: Use the most common high-performing titles as templates for your own video strategy on other platforms.

The **Dailymotion Video Scraper** provides these tags in a clean, deduplicated list, saving you hours of manual copy-pasting. You can pipe this data from the **Dailymotion Video Scraper** into analysis tools like SEMRush or Ahrefs.

***

#### 🛠️ Data Engineering Pipeline: Integrating Dailymotion with AWS/GCP ⚙️

For enterprise users, the **Dailymotion Video Scraper** is just the first step in a larger data pipeline. Here is how you can build a robust "Video Intelligence Engine" using the **Dailymotion Video Scraper** and cloud infrastructure:

###### 1. Ingestion Layer

Use the Apify API to trigger the Dailymotion Video Scraper as part of a daily cron job. The output is stored on Apify's infrastructure but should be mirrored to your cloud storage for long-term use.

###### 2. Storage & Processing (AWS S3 + Lambda)

Configure an Amazon S3 bucket to receive the JSON output via an Apify Webhook. This can trigger an AWS Lambda function to:

- Normalize the Data: Convert the `upload_date` into a standard SQL timestamp.
- Enrichment: Send the video descriptions to Amazon Comprehend for sentiment analysis or entity extraction (e.g., detecting celebrity names or brand mentions).
- Deduplication: Ensure that the same video ID isn't processed twice if it appears in multiple scraping batches.

###### 3. Analytics Layer (Google BigQuery)

For large-scale trends, push the processed data into BigQuery. This allows you to run SQL queries like:
`SELECT uploader, SUM(like_count) FROM daily_motion_data GROUP BY uploader ORDER BY SUM(like_count) DESC LIMIT 10;`
This level of insight is invaluable for talent scouting and influencer marketing teams.

***

#### 🛡️ Security Best Practices: Handling Sensitive Metadata 🔒

While Dailymotion data is public, handling it at scale carries responsibility. We recommend the following security measures for all users of the Dailymotion Video Scraper:

###### Data Anonymization

If you are scraping comments or user-generated descriptions that might contain PII (Personally Identifiable Information), ensure your downstream processing systems have a "scrubbing" layer. Our scraper returns exactly what is on the platform, so it is up to the user to ensure GDPR or CCPA compliance when storing this data.

###### Secure API Key Management

Never hardcode your Apify API tokens in public repositories. Use environment variables (like `APIFY_TOKEN`) to manage access to the actor. This prevents unauthorized usage of your account credits.

###### Rate Limit Respect

Even with proxies, it is good practice to stagger your requests. The Dailymotion Video Scraper includes a 2-second delay to remain friendly to the platform. Bypassing this might lead to temporary proxy blocks, even on premium residential networks.

***

#### 🤖 AI-Powered Content Moderation using Scraped Metadata 🧠

Many of our enterprise clients use this scraper as a "First Pass" for content moderation. By analyzing the `age_limit`, `tags`, and `description` of videos, automated systems can:

- Pre-Filter Sensitive Content: Automatically flag videos with certain tag combinations for manual review.
- Monitor for Brand Safety: Ensure that your ads aren't appearing next to videos that use specific controversial keywords in their metadata.
- Automated Takedowns: For legal teams defending copyright, this metadata is the "Proof of Existence" needed to initiate DMCA takedown requests via the Dailymotion legal portal.

***

#### 📈 The Evolution of Dailymotion Scraping: From 2010 to Today 🕰️

Scraping has come a long way. In the early 2010s, Dailymotion’s website was simple HTML that could be parsed with basic Regex. Today, it is a complex React application with dynamic loading, encrypted tokens, and sophisticated anti-scraping layers.

###### The Shift to API-Driven Scraping

Unlike basic tools that try to "render" the entire page, the **Dailymotion Video Scraper** targets the **Internal Geo-Endpoints**. This is the "hidden" API that the **Dailymotion Video Scraper** uses to fetch data. This method is:

- 70% faster than browser rendering.
- Uses 90% less memory.
- Provides more data (fields that aren't even visible on the UI).

Our commitment to staying at the "Cutting Edge" means we are already preparing for the next generation of web technologies, ensuring this actor remains the gold standard for years to come.

***

#### 📊 Detailed Formatting Guide: JSON vs CSV vs Excel 📎

Choosing the right format for your data is essential for efficiency.

- JSON (Recommended): Best for developers. It preserves the hierarchy of the data (like the `tags` array and nested uploader info).
- CSV: Best for data scientists using Python (Pandas) or R. Note that nested arrays like `tags` will be converted into semicolon-separated strings.
- Excel: Best for non-technical managers and marketing teams who need to build quick pivot tables and charts.
- XML: Best for legacy systems and integration with older enterprise resource planning (ERP) software.

***

#### 🚀 Final Summary: Empowering Innovation through Data 🏆✨

The **Dailymotion Video Scraper** is more than a tool—it's a gateway. In a world where data accessibility is constantly shrinking, we believe in providing the tools necessary for researchers, creators, and entrepreneurs to succeed.

By delivering clean, structured, and deep metadata at scale, this actor removes the "Friction of Collection," allowing you to focus on what truly matters: **Insight and Action.**

Join the thousands of developers who trust Apify for their mission-critical data needs. Start your Dailymotion journey today, and see why we are the preferred choice for video platform intelligence worldwide. 💎🚀🔥

***

#### 📊 Technical Data Dictionary (Field Descriptions) 📖

To help your developers integrate this data into your systems, here is the full schema definition:

- **url**: The input URL of the video.
- **id**: Alphanumeric ID (e.g., `x9aak2y`).
- **title**: String. The video title.
- **description**: String. The full description text.
- **duration**: Integer. Seconds.
- **upload\_date**: String. Format `YYYYMMDD`.
- **uploader**: String. The nickname of the channel.
- **uploader\_id**: String. Unique ID of the channel.
- **like\_count**: Integer. Number of likes.
- **thumbnail**: String. Direct URL to the 1080p or best thumbnail.
- **tags**: List of strings.
- **language**: ISO 639-1 language code (e.g., `en`, `fr`).
- **extractor**: Always `dailymotion` for identification.

#### 🛠️ Performance Tuning for Large-Scale Operations ⚙️

If you are a power user planning to scrape millions of videos, we recommend the following tweaks:

1. **Memory Allocation**: Set the actor memory to at least 1024MB to handle large JSON responses efficiently.
2. **Concurrency**: Use the Apify SDK or API to trigger multiple "runs" in parallel if you have a massive backlog.
3. **Smart Sleep**: The scraper includes a built-in 2-second sleep between requests to maintain a "human-like" pace, but this can be adjusted for your specific proxy quality.

***

#### 🌍 Global Support and Maintenance 🛠️

We understand that metadata extraction is mission-critical for your business. Our team provides:

- **Frequent Updates**: We match Dailymotion's deployment cycle.
- **Community Forums**: Check the Apify Discord and forums for tips from other users.
- **Technical Documentation**: This README is updated regularly to reflect new features and API changes.

#### 🚀 Conclusion: Step into the Future of Metadata Extraction 🔮✨

Don't settle for incomplete data or flaky scrapers. The **Dailymotion Video Scraper** gives you the keys to the kingdom. Start your data journey today and build something amazing. 🏆💎🚀

# Actor input Schema

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

Enter the Dailymotion video URLs you want to scrape.

## Actor input object example

```json
{
  "urls": [
    "https://www.dailymotion.com/video/x9aak2y"
  ]
}
```

# 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://www.dailymotion.com/video/x9aak2y"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapers-hub/dailymotion-video-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://www.dailymotion.com/video/x9aak2y"] }

# Run the Actor and wait for it to finish
run = client.actor("scrapers-hub/dailymotion-video-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://www.dailymotion.com/video/x9aak2y"
  ]
}' |
apify call scrapers-hub/dailymotion-video-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Dailymotion Video Scraper",
        "description": "🎥 Dailymotion Video Scraper (dailymotion-video-scraper) extracts metadata, titles, and links from Dailymotion videos fast. 🚀 Perfect for content research, analytics, and archiving—save time with reliable, automated scraping. 📊",
        "version": "1.0",
        "x-build-id": "gbf8tzr0PKZPseGK6"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scrapers-hub~dailymotion-video-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scrapers-hub-dailymotion-video-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~dailymotion-video-scraper/runs": {
            "post": {
                "operationId": "runs-sync-scrapers-hub-dailymotion-video-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~dailymotion-video-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-scrapers-hub-dailymotion-video-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 Dailymotion 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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
