# Dailymotion Scraper (`goat255/dailymotion-scraper`) Actor

Scrape Dailymotion videos by keyword search, channel, or video URL without a login. Pull search results, a channel's recent uploads, or full metadata for a single video. Walks pagination up to your chosen limit.

- **URL**: https://apify.com/goat255/dailymotion-scraper.md
- **Developed by:** [Goutam Soni](https://apify.com/goat255) (community)
- **Categories:** Social media, Videos
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

Pay per usage

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

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

## What's an Apify Actor?

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

## How to integrate an Actor?

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

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

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

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

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

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

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

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

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

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

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


# README

## Dailymotion Scraper

Scrape public Dailymotion videos by keyword search, channel, or video URL with no login and no API key required. Extract titles, view counts, likes, comments, duration, channel details, thumbnails, tags, and publish dates as clean structured rows ready for export.

### What it does

- **Keyword search** across public Dailymotion videos, sortable by relevance, most recent, most viewed, trending, oldest, or random.
- **Channel videos** from any channel by username, channel id, or channel link, returning that channel's uploads.
- **Single video metadata** from a video URL or id, including views, likes, comments, duration, tags, and channel info.
- **Automatic pagination** that walks page after page up to the result limit you set, deduplicating videos so you never get the same one twice.
- **Clean normalized output** with a stable schema, so every row has the same fields whether it came from search, a channel, or a single video.
- **No account, no password, no API key** required to run any mode.

### Use cases

- **Lead generation and creator discovery** - find active channels and creators in a niche by searching keywords and ranking them by views.
- **Market and content research** - measure what topics, formats, and durations perform on a keyword across thousands of videos.
- **Competitor and channel monitoring** - track a channel's uploads, view counts, and engagement over time.
- **Trend tracking** - pull trending or most-recent videos for a topic to spot rising content early.
- **Dataset building** - assemble structured video datasets (views, likes, comments, tags, publish dates) for analytics or machine learning.

### Input

| Field | Type | Description |
|---|---|---|
| `searchQueries` | array | Keyword searches to run across public videos. Each query is paginated up to the result limit. |
| `channels` | array | Channels to pull videos from. Accepts a username, a channel id, or a channel link. |
| `videoUrls` | array | Specific video links or ids to fetch full metadata for. |
| `maxResultsPerSource` | integer | Cap on videos returned per search query or channel. Default 100. Search is capped at 1000 by the source. |
| `searchSort` | string | Sort order for search: `relevance`, `recent`, `visited` (most viewed), `trending`, `random`, or `old`. |
| `concurrency` | integer | How many sources to process in parallel. Default 5. |
| `proxyConfig` | object | Optional proxy. Not required, since the public endpoints work without one. |

Provide at least one of `searchQueries`, `channels`, or `videoUrls`.

#### Example input

```json
{
  "searchQueries": ["electronic music"],
  "channels": ["example-channel"],
  "videoUrls": ["https://www.dailymotion.com/video/x5auisp"],
  "maxResultsPerSource": 200,
  "searchSort": "relevance"
}
````

### Output

Each video is one dataset row with a stable schema. Example:

```json
{
  "type": "video",
  "id": "x5auisp",
  "url": "https://www.dailymotion.com/video/x5auisp",
  "channelName": "Acme Co",
  "channelUsername": "example-channel",
  "channelId": "x1wtdgr",
  "channelUrl": "https://www.dailymotion.com/example-channel",
  "viewCount": 109022,
  "likeCount": 240,
  "commentCount": 12,
  "durationSeconds": 65,
  "durationText": "1:05",
  "title": "An example video title",
  "description": "An example description.",
  "tags": ["example", "demo"],
  "thumbnailUrl": "https://example.com/thumbnail.jpg",
  "publishedAt": "2026-06-01T12:00:00.000Z",
  "language": "en",
  "isExplicit": false,
  "isPrivate": false
}
```

Key fields:

- **Identity**: `id`, `url`, and `channelName` / `channelUsername` / `channelId` / `channelUrl` identify the video and its channel.
- **Metrics**: `viewCount`, `likeCount`, `commentCount`, and `durationSeconds` / `durationText` capture reach, engagement, and length at scrape time.
- **Content**: `title`, `description`, and `tags` describe the video. `description` and `tags` can be empty when the uploader left them blank.
- **Metadata**: `publishedAt` (ISO 8601), `language`, `isExplicit`, and `isPrivate`.

### FAQ

**Is it free? How is it priced?**
The actor runs on the standard Apify pricing model. You pay only for the platform usage and the results you receive. There is no separate subscription to any third party.

**Do I need a login, account, or API key?**
No. The scraper reads only public video data and needs no Dailymotion account, password, or API key.

**How many results can I get?**
You control it with `maxResultsPerSource`. Each search query or channel is paginated up to that cap, with results deduplicated by video id. Keyword search is capped at 1000 results per query at the source.

**How fast is it?**
Multiple sources run in parallel (set with `concurrency`). A single search of a few hundred videos typically finishes in well under a minute. Larger jobs with many queries or channels scale with the number of sources and the per-source limit.

**Can I get a single video's full details?**
Yes. Put the video link or id into `videoUrls` and you get one row with its full metadata.

**Why are `description` or `tags` sometimes empty?**
Those values come straight from the uploader. When a creator does not add a description or tags, those fields are returned empty rather than guessed.

# Actor input Schema

## `searchQueries` (type: `array`):

Keyword searches to run across public Dailymotion videos. Example: news, electronic music, cooking tutorial.

## `channels` (type: `array`):

Channels to pull recent videos from. Accepts a channel username, id, or a channel link. Example: example-channel, https://www.dailymotion.com/example-channel.

## `videoUrls` (type: `array`):

Specific video links or ids to fetch full metadata for. Example: https://www.dailymotion.com/video/x5auisp.

## `maxResultsPerSource` (type: `integer`):

Cap on videos returned per search query or channel. Pagination is walked across multiple pages until this is reached or the source is exhausted. Search results are capped at 1000 by the source.

## `searchSort` (type: `string`):

Sort order for search results.

## `concurrency` (type: `integer`):

How many sources to process in parallel.

## `proxyConfig` (type: `object`):

Optional proxy. The public read endpoints do not require a proxy, but you may route through one if you wish.

## Actor input object example

```json
{
  "searchQueries": [
    "news"
  ],
  "channels": [],
  "videoUrls": [],
  "maxResultsPerSource": 100,
  "searchSort": "relevance",
  "concurrency": 5,
  "proxyConfig": {
    "useApifyProxy": false
  }
}
```

# 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 = {
    "searchQueries": [
        "news"
    ],
    "channels": [],
    "videoUrls": []
};

// Run the Actor and wait for it to finish
const run = await client.actor("goat255/dailymotion-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 = {
    "searchQueries": ["news"],
    "channels": [],
    "videoUrls": [],
}

# Run the Actor and wait for it to finish
run = client.actor("goat255/dailymotion-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 '{
  "searchQueries": [
    "news"
  ],
  "channels": [],
  "videoUrls": []
}' |
apify call goat255/dailymotion-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Dailymotion Scraper",
        "description": "Scrape Dailymotion videos by keyword search, channel, or video URL without a login. Pull search results, a channel's recent uploads, or full metadata for a single video. Walks pagination up to your chosen limit.",
        "version": "0.1",
        "x-build-id": "lfKEdUdU309N0nIOV"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/goat255~dailymotion-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-goat255-dailymotion-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/goat255~dailymotion-scraper/runs": {
            "post": {
                "operationId": "runs-sync-goat255-dailymotion-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/goat255~dailymotion-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-goat255-dailymotion-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": {
                    "searchQueries": {
                        "title": "Search queries (search mode)",
                        "type": "array",
                        "description": "Keyword searches to run across public Dailymotion videos. Example: news, electronic music, cooking tutorial.",
                        "default": [
                            "news"
                        ],
                        "items": {
                            "type": "string"
                        }
                    },
                    "channels": {
                        "title": "Channels (channel mode)",
                        "type": "array",
                        "description": "Channels to pull recent videos from. Accepts a channel username, id, or a channel link. Example: example-channel, https://www.dailymotion.com/example-channel.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "videoUrls": {
                        "title": "Video URLs (single video mode)",
                        "type": "array",
                        "description": "Specific video links or ids to fetch full metadata for. Example: https://www.dailymotion.com/video/x5auisp.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxResultsPerSource": {
                        "title": "Max results per source",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Cap on videos returned per search query or channel. Pagination is walked across multiple pages until this is reached or the source is exhausted. Search results are capped at 1000 by the source.",
                        "default": 100
                    },
                    "searchSort": {
                        "title": "Search sort",
                        "enum": [
                            "relevance",
                            "recent",
                            "visited",
                            "trending",
                            "random",
                            "old"
                        ],
                        "type": "string",
                        "description": "Sort order for search results.",
                        "default": "relevance"
                    },
                    "concurrency": {
                        "title": "Concurrency",
                        "minimum": 1,
                        "maximum": 20,
                        "type": "integer",
                        "description": "How many sources to process in parallel.",
                        "default": 5
                    },
                    "proxyConfig": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Optional proxy. The public read endpoints do not require a proxy, but you may route through one if you wish.",
                        "default": {
                            "useApifyProxy": 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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
