# Dailymotion Scraper – Videos, Trending, Channels & Playlists (`openharvest/dailymotion-scraper`) Actor

Dailymotion scraper using the official public API, no login or key: search videos, trending feeds by country and category, channel uploads and stats, playlists and video details by URL. Views, likes, duration, tags. Monitor new uploads. Metadata only.

- **URL**: https://apify.com/openharvest/dailymotion-scraper.md
- **Developed by:** [Enes Bulanık](https://apify.com/openharvest) (community)
- **Categories:** Videos, News, Social media
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.50 / 1,000 videos

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

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

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

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Dailymotion Scraper – Videos, Trending, Channels & Playlists

Dailymotion Scraper collects public video metadata from Dailymotion through the **official public Dailymotion API**. You don't need a login, cookies or an API key. Search videos, read the trending feed for any country or category, list a channel's uploads, get channel stats, walk playlists or look up videos by URL. Results cost **$1.50 per 1,000** and there is no start fee.

### What does Dailymotion Scraper do?

| Mode | What you get |
|---|---|
| **Search videos** | Videos that match a keyword. Leave the keyword empty to list every video that matches your filters. |
| **Trending videos** | The trending or most-viewed feed, globally or per country (`fr`, `tr`, `us`, `in`…) and per category (news, sport, music…). |
| **Channel videos** | A channel's uploads, newest first. You can search inside the channel and filter by date. |
| **Channel stats** | Followers, number of videos and playlists, total views, verified and partner status, website and official social links. |
| **Search channels** | Channels that match a keyword, most followed first. |
| **Video details** | Full metadata for a list of video URLs, `dai.ly` short links or IDs (100 per API request). |
| **Playlist videos** | Every video in a playlist, plus one row with the playlist's own details. |
| **Channel playlists** | All public playlists of a channel. |

**Filters:** country, language, category, uploaded after/before (absolute or relative, e.g. `24 hours`), minimum and maximum duration, tags, featured only, verified creators only, and live-stream handling (include, exclude, live only, on air now).

**Sort orders:** relevance, newest, trending, most viewed (last hour, today, this week, this month or all time), oldest, random, live audience.

**Monitor mode:** turn on *Only new videos since the last run* and schedule the Actor. Every run then returns only the uploads it has not seen before, and you pay only for those.

### Why use this Dailymotion scraper?

- **Official public API.** No browser, no proxy and no login, so runs depend only on Dailymotion's API being up.
- **Low price:** $0.0015 per video, channel or playlist, with no start fee.
- **Goes past the 1,000-result limit.** Dailymotion returns at most 1,000 results per query. For newest-first listings, such as a channel's whole upload history, the Actor keeps going by date windows.
- **View velocity:** each video has views for the last hour, day, week and month as well as the total. You can spot what is gaining traction right now.
- **Flat, consistent output** that exports cleanly to CSV or Excel or connects to Make, Zapier, n8n and Google Sheets.

### Use cases

- **Media monitoring:** track what news publishers and broadcasters post, per country (Dailymotion is strong in France, Turkey, India and the news sector).
- **Trend research:** daily snapshots of the trending feed by country and category.
- **Competitor and publisher analysis:** compare channel followers, upload frequency and views per video.
- **Syndication checks:** confirm which partner videos are live, embeddable or geo-blocked.
- **Ad-tech and content research:** build datasets of non-YouTube video with duration, aspect ratio (vertical or horizontal), kids flag and AI-altered flag.
- **New-upload alerts:** schedule the monitor mode for a list of channels and send new videos to Slack or email with an integration.

### How to scrape Dailymotion

1. Choose **What to scrape** (for example *Trending videos*).
2. Add a keyword, channels, video URLs or playlist URLs, depending on the mode.
3. Optionally set a country, category, date range or sort order.
4. Set **Max results per source** to cap your cost, then click **Start**.
5. Download the results as JSON, CSV or Excel, or read them through the API.

### Input

Trending news videos in France from the last 24 hours, most viewed today first:

```json
{
    "mode": "trending",
    "country": "fr",
    "category": "news",
    "createdAfter": "24 hours",
    "sort": "visited-today",
    "maxResults": 100
}
```

Monitor two publishers for new uploads (run it on a schedule):

```json
{
    "mode": "channelVideos",
    "channels": ["https://www.dailymotion.com/franceinfo", "LeHuffPost"],
    "maxResults": 50,
    "onlyNewVideos": true
}
```

Look up specific videos:

```json
{
    "mode": "videoDetails",
    "videoUrls": ["https://www.dailymotion.com/video/x5auisp", "https://dai.ly/xdm6xh"]
}
```

### Output

Each result is one flat row. `type` is `video`, `channel`, `playlist` or `error`. Here is a real video row:

```json
{
    "type": "video",
    "videoId": "xbi8r72",
    "url": "https://www.dailymotion.com/video/xbi8r72",
    "title": "Sharon Stones",
    "description": null,
    "category": "news",
    "tags": [],
    "hashtags": [],
    "language": "fr",
    "country": "FR",
    "durationSec": 125,
    "createdAt": "2026-10-05T08:06:38.000Z",
    "updatedAt": "2026-10-05T09:53:13.000Z",
    "views": 11651,
    "viewsLastHour": 41,
    "viewsLastDay": 762,
    "viewsLastWeek": 11651,
    "viewsLastMonth": 11651,
    "likes": 0,
    "channelId": "x177sp",
    "channelUsername": "parismatch",
    "channelName": "Paris Match",
    "channelUrl": "https://www.dailymotion.com/parismatch",
    "channelFollowers": 801,
    "channelVerified": true,
    "isVerified": true,
    "isPartner": true,
    "mode": "vod",
    "isLive": false,
    "isOnAir": false,
    "liveAudience": null,
    "mediaType": "video",
    "width": 1080,
    "height": 1920,
    "aspectRatio": 0.5625,
    "allowEmbed": true,
    "embedUrl": "https://geo.dailymotion.com/player.html?video=xbi8r72",
    "thumbnailUrl": "https://s2.dmcdn.net/v/fU9ck1gmtE94WYqkA/x720",
    "isExplicit": false,
    "isCreatedForKids": false,
    "geoblocking": ["allow"],
    "aiAltered": false,
    "aiSubtitleLanguages": [],
    "source": "trending",
    "searchQuery": null,
    "rank": 1,
    "scrapedAt": "2026-10-08T18:26:09.247Z"
}
```

A channel row (`type: "channel"`) contains `channelId`, `channelUsername`, `channelName`, `url`, `description`, `country`, `language`, `createdAt`, `followers`, `following`, `videos`, `playlists`, `views`, `isVerified`, `isPartner`, `avatarUrl`, `coverUrl`, `websiteUrl` and the channel's official social links. A playlist row (`type: "playlist"`) contains `playlistId`, `url`, `title`, `description`, `videos`, `createdAt`, `updatedAt`, `thumbnailUrl` and the owner channel.

When an input fails (a channel that does not exist, a deleted video, no results, or no new videos in monitor mode), you get a **free** `error` row with an `errorCode` (`INVALID_INPUT`, `NOT_FOUND`, `NOT_PUBLIC`, `NO_RESULTS`, `NO_NEW_RESULTS`, `SCRAPE_FAILED`). The run does not fail.

### Pricing

Pay per event: you pay only for results.

| Event | Price | When |
|---|---|---|
| `video` | $0.0015 ($1.50 / 1,000) | Each video row |
| `channel` | $0.0015 ($1.50 / 1,000) | Each channel row (channel stats, channel search, or the optional channel row in channel modes) |
| `playlist` | $0.0015 ($1.50 / 1,000) | Each playlist row |

Error rows are free, and there is no start fee. The Actor stops cleanly when it reaches your **Max cost per run**. Example: the trending feed for 5 countries with 100 videos each costs 500 × $0.0015 = $0.75.

### Use with AI agents (MCP)

This Actor works as a tool in the Apify MCP server, so Claude, ChatGPT, Cursor and other MCP clients can call it. Add `apify/mcp-server` with this Actor and ask, for example: *"What are the most watched news videos in Turkey on Dailymotion today?"* The agent can call it with:

```json
{
    "mode": "trending",
    "country": "tr",
    "category": "news",
    "sort": "visited-today",
    "maxResults": 20
}
```

### FAQ

**Do I need a Dailymotion account or API key?** No. The Actor reads public data through Dailymotion's official public API.

**Can it download videos?** No. It returns metadata only (titles, stats, links, thumbnails). Downloading videos is outside the scope of this tool and may infringe copyright.

**Does it scrape comments?** No. Dailymotion's public API does not offer comments.

**Why do I get at most 1,000 results for a keyword search?** Dailymotion's API stops at 1,000 results per query. You can get more by splitting the search with filters (country, category, date range), or by sorting by *Newest first*. With that sort the Actor continues automatically by date.

**Some channels show fewer videos than their profile count. Why?** The API lists only public, published videos. Private, unlisted, password-protected or removed videos are not returned.

**How does the monitor mode remember what it has seen?** It stores the IDs of returned videos in a named key-value store, `dailymotion-scraper-monitor`, in your own Apify account. It keeps a separate memory for each search, feed, channel and playlist. Delete that store to start over.

**What does "hashtags" contain?** The hashtags written in the title and description, in lowercase.

### Is it legal to scrape Dailymotion?

This Actor reads only publicly available metadata through Dailymotion's official public API and does not log in, bypass access controls or download video files. It does not collect personal contact data: the API fields for e-mail, real name, gender, birthday and address are never requested. You remain responsible for how you use the data. Respect Dailymotion's Terms of Use and copyright, and comply with data-protection laws such as GDPR when you process information about channels run by individuals.

### Related actors

Related actors by the same developer:

- YouTube Transcript Scraper – Captions, Subtitles & Video Data
- Bilibili Scraper – Videos, Search, Rankings, Comments & Danmaku
- Douyin Scraper – Creator Profiles, Videos & Trending, No Login
- Google News Scraper – Full Article Text & Real Publisher URLs
- Telegram Channel Scraper – Posts, Messages & Views, No Login

### Support & feedback

Missing a field or a mode? Open an issue in the **Issues** tab. Feature requests are welcome.

# Actor input Schema

## `mode` (type: `string`):

<b>searchVideos</b>: videos matching a keyword (or all videos when the keyword is empty) with filters. <b>trending</b>: the trending / most-viewed feed, optionally per country and category. <b>channelVideos</b>: videos uploaded by channels. <b>channels</b>: channel stats (followers, videos, views). <b>searchChannels</b>: find channels by keyword. <b>videoDetails</b>: full metadata for video URLs or IDs. <b>playlistVideos</b>: videos in playlists. <b>channelPlaylists</b>: playlists of channels.

## `searchQuery` (type: `string`):

Keyword for <b>searchVideos</b> and <b>searchChannels</b>. In <b>channelVideos</b> it searches only inside the given channels. Leave empty in searchVideos to list all videos with your filters and sort.

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

For <b>channelVideos</b>, <b>channels</b> and <b>channelPlaylists</b>. Channel URLs, usernames or IDs, e.g. <code>https://www.dailymotion.com/franceinfo</code>, <code>franceinfo</code> or <code>x5xknw</code>.

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

For <b>videoDetails</b>. Accepts <code>https://www.dailymotion.com/video/x5auisp</code>, <code>https://dai.ly/x5auisp</code>, embed/player links or the bare ID <code>x5auisp</code>. Up to 100 videos are fetched per API request.

## `playlistUrls` (type: `array`):

For <b>playlistVideos</b>. Accepts <code>https://www.dailymotion.com/playlist/x6hynp</code> or the bare ID <code>x6hynp</code>.

## `maxResults` (type: `integer`):

Maximum number of results for each search, trending feed, channel or playlist. You pay per result, so this also caps your cost. Dailymotion returns at most 1,000 results per query; for newest-first listings (sort = recent) the Actor automatically continues past that limit by date.

## `sort` (type: `string`):

<b>auto</b> = relevance for keyword searches, trending for the trending feed, newest first for channels. <b>visited-today</b> / <b>visited-week</b> etc. rank by views in that period.

## `country` (type: `string`):

Optional 2-letter country code of the videos, e.g. <code>fr</code>, <code>tr</code>, <code>us</code>, <code>in</code>.

## `language` (type: `string`):

Optional 2-letter language code of the videos, e.g. <code>fr</code>, <code>en</code>, <code>tr</code>.

## `category` (type: `string`):

Optional Dailymotion category.

## `createdAfter` (type: `string`):

Optional. Only videos uploaded after this date. Absolute (<code>2026-09-01</code>) or relative (<code>24 hours</code>, <code>7 days</code>, <code>1 month</code>).

## `createdBefore` (type: `string`):

Optional. Only videos uploaded before this date. Absolute or relative, like Uploaded after.

## `minDurationMinutes` (type: `integer`):

Optional. Only videos longer than this many minutes.

## `maxDurationMinutes` (type: `integer`):

Optional. Only videos shorter than this many minutes.

## `tags` (type: `array`):

Optional. Only videos with these tags.

## `featuredOnly` (type: `boolean`):

Only videos featured by Dailymotion's editors (what the homepage and trending pages pick from).

## `verifiedOnly` (type: `boolean`):

Only videos from verified partner channels (publishers, broadcasters, studios).

## `liveFilter` (type: `string`):

Include, exclude or only return live streams.

## `includeChannelInfo` (type: `boolean`):

In <b>channelVideos</b> and <b>channelPlaylists</b>, also add one row per channel with followers, video count and total views (charged as a 'channel' event).

## `includePlaylistInfo` (type: `boolean`):

In <b>playlistVideos</b>, also add one row per playlist with its title, owner and video count (charged as a 'playlist' event).

## `onlyNewVideos` (type: `boolean`):

Remembers which videos earlier runs returned (per search, feed, channel or playlist, in a named key-value store of your account) and returns only videos not seen before. Ideal for a scheduled run: the first run returns the latest videos, later runs return only new uploads, and you pay only for new ones.

## Actor input object example

```json
{
  "mode": "searchVideos",
  "searchQuery": "climate change",
  "channels": [
    "https://www.dailymotion.com/franceinfo",
    "LeHuffPost"
  ],
  "videoUrls": [
    "https://www.dailymotion.com/video/x5auisp",
    "https://dai.ly/xdm6xh"
  ],
  "playlistUrls": [
    "https://www.dailymotion.com/playlist/x6hynp"
  ],
  "maxResults": 50,
  "sort": "auto",
  "country": "fr",
  "language": "en",
  "category": "",
  "tags": [
    "football"
  ],
  "featuredOnly": false,
  "verifiedOnly": false,
  "liveFilter": "all",
  "includeChannelInfo": false,
  "includePlaylistInfo": true,
  "onlyNewVideos": false
}
```

# Actor output Schema

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

All scraped videos, channels and playlists in the default dataset (JSON, CSV, Excel and more via the dataset export).

## `files` (type: `string`):

Records saved in the default key-value store, e.g. the run summary (RUN_SUMMARY).

# 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 = {
    "mode": "searchVideos",
    "searchQuery": "breaking news",
    "maxResults": 50
};

// Run the Actor and wait for it to finish
const run = await client.actor("openharvest/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 = {
    "mode": "searchVideos",
    "searchQuery": "breaking news",
    "maxResults": 50,
}

# Run the Actor and wait for it to finish
run = client.actor("openharvest/dailymotion-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "mode": "searchVideos",
  "searchQuery": "breaking news",
  "maxResults": 50
}' |
apify call openharvest/dailymotion-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,openharvest/dailymotion-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/UgbS0UjLEf76tzUP6/builds/OfiFs6uGNVhuM7veX/openapi.json
