# Dailymotion Video Scraper (`lowlanddata/dailymotion-scraper`) Actor

Extract public Dailymotion videos as clean JSON: title, description, duration, views, likes, upload time, channel, category and tags. Search by keyword, channel or category with exact date windows, past the 1,000-result cap. No login, no API key. Pay per result.

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

## Pricing

from $2.40 / 1,000 results

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

Learn more: https://docs.apify.com/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 Video Scraper (search, channels, categories)

Dailymotion hosts news, sport, music and entertainment video from broadcasters and publishers all over Europe, but the site gives you a player and a scroll, not a table. Tracking what a channel publishes, counting how many videos mention a topic, or comparing views across publishers needs the videos as rows.

Give it search keywords, channel names, a category, or any mix, and every video comes back as one item: title, description, duration, views, likes, upload time, category, language, country, tags, thumbnail and link. No login, no API key, no Dailymotion account. It reads Dailymotion's public Data API at `api.dailymotion.com`. The publishing channel's display name and handle stay on the row as the byline; avatars, follower counts, commenters and every other person-level field are never requested.

### Quick start (30 seconds)

1. Put a keyword into **searchQueries**, e.g. `climate change`, or a channel into **channels**, e.g. `euronews-en`.
2. Click **Start**. That's the whole minimum setup.
3. When the run finishes, open the dataset's **Overview** tab for a clean table, or **Export** it as CSV/Excel/JSON.

Optional knobs: a category, a language or country, a sort order, an upload-date window, a duration range. Any input works on an hourly Schedule.

### What you can build with it

- **Watch a publisher.** Put the channel in **channels**, leave the sort on newest first, and set `uploadedAfter` to yesterday. A daily Schedule then collects exactly the videos the channel published since the last run, each with its views at that moment.
- **Monitor a topic.** Put one keyword per line in **searchQueries**. Each is searched on its own, and a video that matches two searches is delivered once.
- **Compare reach.** `views` and `likes` are captured at scrape time. Run weekly on the same channels and diff the snapshots to see which videos keep growing and which publishers gain ground.
- **Build a dataset.** Pick a category, a language and a date window to collect, say, every French-language sport video of a month. Past Dailymotion's 1,000-result limit per search the actor splits the work by date for you (see below).
- **Feed an AI agent clean data.** Every field is structured and predictable, so an assistant or pipeline can read a channel's latest 200 videos directly.

### What you get

Each video is one dataset item:

```json
{
  "id": "xbry6w6",
  "url": "https://www.dailymotion.com/video/xbry6w6",
  "title": "Bahamas: King Charles III dances with locals during Caribbean visit",
  "description": "Bahamas: King Charles III dances with locals during Caribbean visit\n\nKing Charles III showed off his dance moves during a colourful Junkanoo street parade in Nassau, the capital of the Bahamas, on Wednesday, 28 October, as part of his first Caribbean tour since becoming monarch.\n\nREAD MORE : http://www.euronews.com/2026/10/29/bahamas-king-charles-iii-dances-with-locals-during-caribbean-visit\n\nLet the pictures do the talking: subscribe to No Comment\n\nNo Comment is brought to you by euronews, the most watched news channel in Europe.",
  "durationSeconds": 60,
  "views": 212,
  "likes": 0,
  "createdAt": "2026-10-29T09:15:54.000Z",
  "channel": "euronews-en",
  "channelTitle": "euronews (in English)",
  "category": "news",
  "language": "en",
  "country": "GB",
  "tags": ["No Comment", "16:9", "World", "bahamas", "nassau", "king-charles", "commonwealth"],
  "thumbnailUrl": "https://s1.dmcdn.net/v/gSLvc1gum-i6aPgCi/x480",
  "isExplicit": false
}
```

Field notes, so you know exactly what you are buying:

- `id` is Dailymotion's own video id and a stable key. `url` is the human link.
- `channelTitle` is the publisher's display name and `channel` its handle (the part after `dailymotion.com/`). Together they are the byline of the video. Pass `channel` back into the **channels** input to read that publisher.
- `createdAt` is the upload time in UTC. `durationSeconds` is the video's length in seconds.
- `views` and `likes` are Dailymotion's counters at scrape time. They keep moving, so a later run gives a later number.
- `description` is the uploader's text with Dailymotion's markup turned into plain text and line breaks. It is `null` when the uploader left it empty. Email addresses in titles, descriptions and tags are replaced by `[email removed]`.
- `category` is the Dailymotion category the video is filed under, one of the values in the **category** input. `language` and `country` are the two-letter codes the uploader gave the video.
- `isExplicit` is always `false`: Dailymotion's public API leaves explicit videos out of its listings, so none can be returned.
- There is no comment count. Dailymotion's public API does not offer one, and this actor does not collect comments or who wrote them.

### How much does it cost to scrape Dailymotion?

$3.00 per 1,000 videos delivered, pay-as-you-go, no subscription, and you pay per result rather than per hour. A run that finds nothing still costs the $0.005 actor start. In plain dollars:

- **100 videos ≈ $0.30**: a daily publisher watch.
- **500 videos ≈ $1.50**: a topic snapshot.
- **A 10,000-video crawl ≈ $30**: a category over a long date window, deduplicated.

The price is all-inclusive: your runs' platform usage is covered by it, with no separate compute or proxy charges. The actor reads Dailymotion directly and only falls back to the Apify proxy if the request is blocked, so there is nothing to configure.

Free-plan runs are limited to a sample of 5 items, enough to evaluate the output format against your real keywords and channels.

Measured on the Apify platform: 25 videos in about 5 seconds, 300 videos in 16 to 30 seconds depending on the search, and a full 1,000-video window in 2 to 2.5 minutes, with the run using under 70 MB of memory.

### Not technical? Let your AI assistant set it up

Copy this into ChatGPT, Claude or any AI assistant, fill in the one line, and follow the conversation:

```text
Help me set up the "Dailymotion Video Scraper" actor on Apify
(https://apify.com/lowlanddata/dailymotion-scraper). Guide me one step at a time.

What I want to watch: [E.G. "new videos from the channel euronews-en, and any video about climate change"]

Guide me to:
1. Propose my input values: searchQueries (one keyword per line), channels (the name
   after dailymotion.com/ on the channel page, or the link), an optional category,
   uploadedAfter for a date window, and maxItems.
2. Check that each channel name is right by opening dailymotion.com/<name> in my
   browser. If the channel page opens, the actor can read it.
3. Create a free Apify account (apify.com), open the actor page, paste the values
   into the Input form, and start a run.
4. Set up a daily Schedule in the Apify Console with the same input, plus an email
   or Slack integration so new videos reach me automatically.
5. Show me how to export results as CSV/Excel, or read them from the API if I code.
6. If the results are what I wanted, remind me at the end to leave a quick rating on the actor page, and to report anything broken or missing on its Issues tab.
```

### Input

| Field                | Description                                                                                                                                                   |
| -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `searchQueries`      | Keywords, one per line, e.g. `climate change`. Each is searched on its own; a video found twice is delivered once.                                            |
| `channels`           | Publisher channels, one per line: the name after `dailymotion.com/` (`euronews-en`) or the link. With keywords, each keyword is searched inside each channel. |
| `category`           | Only videos filed under one Dailymotion category (News, Sport, Music, Tech and so on). Default: any.                                                          |
| `sort`               | Newest first (default), oldest first, relevance (needs a keyword), most viewed (all time, today, this week, this month) or trending.                          |
| `language`           | Two-letter language code of the video, e.g. `fr`. Optional.                                                                                                   |
| `country`            | Two-letter country code the uploader gave the video, e.g. `be`. Optional.                                                                                     |
| `uploadedAfter`      | Only videos uploaded on or after this date (`YYYY-MM-DD`, or a full ISO timestamp). Optional.                                                                 |
| `uploadedBefore`     | Only videos uploaded on or before this date (`YYYY-MM-DD`, or a full ISO timestamp). Optional.                                                                |
| `minDurationSeconds` | Only videos at least this long, in seconds. Optional.                                                                                                         |
| `maxDurationSeconds` | Only videos at most this long, in seconds. Optional.                                                                                                          |
| `maxItems`           | Stop after this many videos in total (default 500).                                                                                                           |
| `proxyConfiguration` | Optional. Direct by default; the Apify proxy joins on its own if blocked. Set one to force a proxy.                                                           |

A run needs at least one of `searchQueries`, `channels` or `category`. Without one of them Dailymotion lists only a thin sample of its videos, so the actor refuses the input with a readable message instead of returning that sample. Channels are read in the order you list them, and `maxItems` counts across all of them. A channel name that does not exist costs that channel, not the run: the rest are delivered with an honest note in the run status.

Dates and durations are exact. Dailymotion's own date and duration filters are coarse (its duration filter works in whole minutes and its date filter runs on a slightly different clock), so the actor asks Dailymotion for a slightly wider range and then applies your exact bounds itself.

### Use it from your code

Run the actor and get videos straight back with one HTTP call (fine for scoped runs up to ~5 minutes):

```bash
curl "https://api.apify.com/v2/acts/lowlanddata~dailymotion-scraper/run-sync-get-dataset-items?token=<YOUR_API_TOKEN>" \
  -X POST -H "Content-Type: application/json" \
  -d '{"searchQueries": ["climate change"], "maxItems": 100}'
```

Node.js:

```js
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: '<YOUR_API_TOKEN>' });
const run = await client.actor('lowlanddata/dailymotion-scraper').call({
  channels: ['euronews-en'],
  uploadedAfter: '2026-10-01',
  maxItems: 200,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
```

Python:

```python
from apify_client import ApifyClient

client = ApifyClient("<YOUR_API_TOKEN>")
run = client.actor("lowlanddata/dailymotion-scraper").call(
    run_input={"searchQueries": ["climate change"], "maxItems": 100})
items = client.dataset(run["defaultDatasetId"]).list_items().items
```

Schedules, webhooks and the Make/Zapier/n8n integrations all work out of the box: this is a standard Apify actor.

### Use it with AI agents (MCP)

Claude, Cursor and other MCP-capable agents can run this scraper as a tool through Apify's hosted MCP server: the agent fills in the keywords and channels itself, starts the run and reads the results: no glue code.

Claude Code:

```bash
claude mcp add apify --transport http "https://mcp.apify.com?actors=lowlanddata/dailymotion-scraper"
```

Cursor or Claude Desktop (add a custom connector / MCP server with this URL):

```text
https://mcp.apify.com?actors=lowlanddata/dailymotion-scraper
```

Sign in with your Apify account when prompted. Runs are billed to it. Setup details per client: [Apify MCP docs](https://docs.apify.com/platform/integrations/mcp).

Prompts that work once connected:

- "Get the last 100 videos from the Dailymotion channel euronews-en and summarize what they covered this week."
- "Find Dailymotion videos about 'climate change' uploaded this month and list them by views."
- "Compare the average views per video of these three Dailymotion channels over their last 50 uploads each."

### Beyond the 1,000-result window

Dailymotion serves at most 1,000 results for any one search: ten pages of 100, and nothing after that, whatever the real number of matches. When a search has more, the actor keeps going on its own by splitting the work over upload dates, and removes duplicates by video id.

- **Newest first or oldest first:** each pass starts just beyond the last video the previous pass reached, so the walk moves through time in order.
- **Any other order (most viewed, trending, relevance):** the date range is cut in halves until every part fits inside the limit, and each part is read in your chosen order. The order therefore holds inside each part, not across the whole run, and the run log says so when it happens.

Checked on the platform: a 12-hour window holding 1,044 videos came back as the same 1,044 ids whether it was read newest first, oldest first or by views.

You can do the same by hand with `uploadedAfter` and `uploadedBefore`, one window per run, if you want to control the slices yourself. If more than 1,000 videos were uploaded in the very same second, the surplus cannot be reached.

### Is it legal to scrape Dailymotion?

This actor reads the public Data API that Dailymotion serves to anyone without a login or a key. It does not log in, does not use Dailymotion's private or authenticated endpoints, does not solve CAPTCHAs, and requests are paced at roughly four a second at most. A video's publisher name and handle stay on the row as its byline. Everything beyond the published video is never requested: the API call names a fixed list of video fields, the output is built from an allow-list of those fields, and a test on every build fails if an avatar, a follower count, a comment, a commenter or any other person-level field ever reaches the output.

One honest limit: titles, descriptions and tags are the uploader's own words. Email addresses in them are replaced by `[email removed]`, because broadcasters often paste a reporter's personal work address there. Everything else an uploader types, such as a name or a phone number, is delivered as written. The guarantee covers the data fields, not what uploaders choose to publish.

Another: Dailymotion's terms of use restrict automated access to the service unless Dailymotion has approved it in writing. Whether collecting this public data is allowed under those terms and your jurisdiction's rules depends on your use, and it is yours to assess. If you need certainty, ask Dailymotion for permission before building on it. This is not legal advice.

### Is there a Dailymotion API alternative?

Dailymotion does publish a Data API, and this actor is built on its public, unauthenticated part. What the actor adds is everything around it: several keywords and channels in one run, exact date and duration filters, the continuation past the 1,000-result limit, deduplication, flat rows ready for a spreadsheet, a schedule, and the same data through one HTTP call (`run-sync-get-dataset-items`) or as an MCP tool for AI agents, with no code of your own.

### Does Dailymotion block scrapers?

The public Data API answers plain requests openly, including from datacenter addresses, and this actor stays inside that welcome: paced requests, plain direct fetches, load kept negligible. No CAPTCHA fights, no bot-wall cat-and-mouse. If Dailymotion ever starts refusing the direct request, the actor switches to the Apify proxy by itself and says so in the run log.

### How do I monitor a Dailymotion channel?

Put the channel in `channels`, leave `sort` on newest first, set `uploadedAfter` to yesterday's date, and add a daily Schedule in the Apify Console with an email/Slack integration on the runs. The dataset then contains only the new videos, each with its views at that moment, and a newest-first walk stops as soon as it reaches older videos, so the watch stays quick and cheap. The AI-assistant prompt above walks a non-technical user through exactly this setup.

### FAQ

**Which channels can it read?** Any Dailymotion channel with a public page. The name is the part after `dailymotion.com/` on the channel page, for example `euronews-en`; a full link works too. Names that do not exist are listed in the run status and skipped.

**Can I search without naming a channel?** Yes. Give keywords in `searchQueries`, or a `category`, and Dailymotion's whole catalogue is searched.

**Can I combine keywords and channels?** Yes. Each keyword is searched inside each channel you list, so two keywords and three channels make six searches in one run, with duplicates removed.

**Why must I give a keyword, a channel or a category?** With none of them Dailymotion returns only a thin sample of its videos, not a meaningful listing. The actor refuses that input and tells you so.

**Does it return comments or who wrote them?** No. Dailymotion's public API does not offer a comment count on videos, and this actor never collects comments or commenters.

**Are email addresses in descriptions kept?** No. Any email address found in a title, a description or a tag is replaced by `[email removed]`. Other text the uploader typed, such as a phone number, is left as written.

**Does it collect who uploaded a video?** It keeps the publishing channel's display name and handle as the byline of the video. Avatars, follower counts, profile text and everything else about the account are never requested.

**Why are some videos missing, or different from what I see on the site?** Dailymotion hides videos that are not licensed for the viewer's country, and the platform runs from the US. In a test on news videos about 1.4% (7 of 495 in a four-hour window) were not visible from there. To see another country's catalogue, turn on Apify Proxy, choose the RESIDENTIAL group and a country. Residential traffic is billed to your own Apify account; datacenter proxies do not help here.

**Why is `isExplicit` always false?** Dailymotion's public API leaves explicit videos out of its listings, so the field is there for a consistent schema but carries no information.

**How exact are the date and duration filters?** Exact to the second. The actor asks Dailymotion for a slightly wider range, then keeps only the videos that fit your bounds.

**Why are there fewer videos than `maxItems`?** The search simply has fewer matches, or a channel name was not found (the run status lists it), or you are on the free plan, which returns up to 5 items.

**What happens above 1,000 matches?** The actor splits the search by upload date and reads on until `maxItems` or the end of the results. See "Beyond the 1,000-result window" above.

**How fresh is the data?** Live at run time: every run reads Dailymotion directly. For continuous freshness, schedule the actor.

**Can I export to Excel or CSV?** Yes, every dataset exports as CSV, Excel, JSON or XML from the Apify Console or API.

**Does it work with Make, Zapier or n8n?** Yes, it is a standard Apify actor; all platform integrations, webhooks and schedules apply.

**Do I need a Dailymotion account or API key?** Neither. The public Data API needs no login, and that is the only surface this actor reads.

**How much does Dailymotion scraping cost here?** $3.00 per 1,000 videos, metered on delivery. A 100-video daily watch is roughly $0.30; a failed or empty run costs the $0.005 actor start and nothing per result.

**Can I try it before spending anything?** Yes, a free-plan run returns up to 5 real videos from your keywords and channels, enough to check the fields against your pipeline.

**Can an AI agent fetch Dailymotion videos through this?** Yes, connect Apify's hosted MCP server and agents like Claude or Cursor can pick keywords, run the actor and read the videos themselves. Setup is in the MCP section above.

### Related scrapers

More clean-output data sources from the same maker:

- [Telegram Channel Scraper](https://apify.com/lowlanddata/telegram-channel-scraper): public channel posts with views and reactions.
- [Bluesky Scraper](https://apify.com/lowlanddata/bluesky-scraper): public posts from the open social network.

### Troubleshooting

The actor fails fast with the reason in the run's status message:

- **"Give at least one of searchQueries, channels or category"**: add a keyword, a channel or a category. Without one Dailymotion lists only a thin sample of videos.
- **"None of the requested channels was found on Dailymotion"**: check the names. Open `dailymotion.com/<name>` in a browser; the part after the slash is what `channels` expects, for example `euronews-en`.
- **"N videos fetched; not found: X"**: channel X does not exist; the rest of the run is delivered normally.
- **"Not a Dailymotion channel name or link"**: a value in `channels` is not a channel. A video link, a playlist link or a search link is refused; use the channel name or the channel page link.
- **"sort "relevance" needs at least one search keyword"**: relevance ranks matches to a keyword, so add one or pick another sort.
- **Some videos from the site are missing**: they are probably not licensed for the US, where the platform runs. See "Why are some videos missing" in the FAQ for the residential-proxy route.
- **Fewer items than requested on a free plan**: the 5-item free sample cap; run on a paid Apify plan for full results.

### Support

Found an issue or missing a field you need? The fastest route is the actor's **Issues tab** - it is monitored and reports get fixed. For anything private, email **contact@lowlanddata.com**. This actor is actively maintained.

Working well for you? A **rating on this page** takes ten seconds and helps other users find a reliable option. It is also the clearest signal of what we should build next.

# Actor input Schema

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

One search per line, e.g. <code>climate change</code>. Each keyword is searched on its own with the filters below; a video found by two searches is delivered once. Combine with Channels to search inside a publisher's videos. At least one of keywords, channels or category is needed.

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

Publisher channels to read, one per line: the name after dailymotion.com/ (<code>euronews-en</code>) or the link (<code>https://www.dailymotion.com/euronews-en</code>). Returns the channel's videos, newest first by default. Names that do not exist are reported in the run status; the rest are delivered.

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

Only videos Dailymotion files under this category (its topic list, e.g. News or Sport). Works alone to browse a category, or together with keywords and channels.

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

Order of the results. Newest first suits monitoring with a date window. Relevance only works with at least one search keyword. Past 1,000 matches for one search the actor continues over date ranges, so the order then holds within each range.

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

Optional. Two-letter language code of the video, e.g. <code>fr</code>, <code>en</code>, <code>de</code>.

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

Optional. Two-letter country code the uploader gave the video, e.g. <code>fr</code>, <code>be</code>, <code>us</code>.

## `uploadedAfter` (type: `string`):

Only videos uploaded on or after this date. <b>Format: <code>YYYY-MM-DD</code></b> (for example <code>2026-09-08</code>) or a full ISO timestamp such as <code>2026-09-08T14:30:00Z</code>. Slash dates like <code>08/09/2026</code> are refused on purpose: they mean September in Europe and August in the US, and this actor will not guess.

## `uploadedBefore` (type: `string`):

Only videos uploaded on or before this date. <b>Format: <code>YYYY-MM-DD</code></b> (for example <code>2026-09-08</code>) or a full ISO timestamp such as <code>2026-09-08T14:30:00Z</code>. Slash dates like <code>08/09/2026</code> are refused on purpose.

## `minDurationSeconds` (type: `integer`):

Optional. Only videos at least this long, in seconds (for example 600 for ten minutes).

## `maxDurationSeconds` (type: `integer`):

Optional. Only videos at most this long, in seconds (for example 60 for short clips).

## `maxItems` (type: `integer`):

Stop after this many videos in total. Free-plan runs are capped at 5 items. The form starts at 25 for a cheap first run - that is the form's prefill, not a cap on your plan; clear it to use the default of 500.

## `proxyConfiguration` (type: `object`):

Optional. By default the actor reads Dailymotion's public API directly, which is fastest, and switches to the Apify proxy by itself if the API blocks the request. Dailymotion hides videos not licensed for the requester's country, and platform runs come from the US. To see another country's catalogue, choose the RESIDENTIAL group and a country; residential traffic is billed to your own Apify account. Or list your own proxy URLs.

## `reportFailures` (type: `boolean`):

When a run fails, send the developer the actor name and build, an error category, the error message (truncated) and a one-way hash of your input - so a bug can be fixed without anyone asking you to reproduce it. <b>Your input itself, your results and your identity are never sent, and successful runs send nothing at all.</b> Switch this off and the actor behaves exactly the same.

## Actor input object example

```json
{
  "searchQueries": [
    "climate change"
  ],
  "category": "any",
  "sort": "recent",
  "maxItems": 25,
  "proxyConfiguration": {
    "useApifyProxy": false
  },
  "reportFailures": true
}
```

# Actor output Schema

## `videos` (type: `string`):

Scraped Dailymotion videos, one JSON object per video.

# 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": [
        "climate change"
    ],
    "maxItems": 25,
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("lowlanddata/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": ["climate change"],
    "maxItems": 25,
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("lowlanddata/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 '{
  "searchQueries": [
    "climate change"
  ],
  "maxItems": 25,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call lowlanddata/dailymotion-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,lowlanddata/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/2t8Cvt9u40QvV9VT7/builds/qiLdePWCKgUCM0v31/openapi.json
