Dataspryva

Use Dailymotion Video Discovery by Topic & Channel with Python

Search Dailymotion by keyword, browse trending or topic videos, or pull a channel's uploads, with language, country, and duration filters, views, likes, tags, and owner details per video.

1. Choose the data you need

Review the published README for supported collection modes, examples, and limits. The recipe below uses the current published input definition.

2. Prepare a source-based input

This JSON contains published prefills and required-field defaults. Review every value for your task before running it; it is not a promise of successful collection.

{
  "liveOnly": false,
  "maxItems": 3,
  "mode": "search",
  "playlists": [],
  "searchQueries": [
    "technology news"
  ],
  "sortBy": "relevance",
  "usernames": [],
  "verifiedOnly": false,
  "videoIds": []
}

Download input.example.json and save your reviewed copy as input.json.

FieldTypeRequiredDescription
modestringrequiredWhat to fetch from Dailymotion.
searchQueriesarrayoptionalOne or more keywords to search (mode=search, mode=searchUsers). Each query is paginated up to Max items. Existing tasks with the old `searchQuery` field keep working.
topicstringoptionalDailymotion category to browse (mode=byTopic).
videoIdsarrayoptionalSpecific videos to look up (mode=byVideoIds). Accepts bare IDs (`x4d4447`), dailymotion.com/video/... links, or dai.ly links. Unavailable IDs are skipped.
sortBystringoptionalResult order. Values apply where the Dailymotion API supports them: `relevance` needs mode=search/searchUsers; `popular` is mode=searchUsers only; `old`/`id-asc` are not available in trending mode. Unsupported values fall back to the mode's default order and the run note says so. Runs with maxItems above 1,000 always use a recent/old time-ordered sweep.
languagestringoptionalOnly include videos in this language. Leave as All languages for every language.
countrystringoptionalOnly include videos published from this country (mode=search, trending). Leave as All countries for every country.
verifiedOnlybooleanoptionalOnly include videos from verified Dailymotion channels (mode=search, trending).
liveOnlybooleanoptionalOnly include live streams instead of on-demand videos.
tagstringoptionalOnly include videos carrying this tag (mode=search, byTopic, byUser, byPlaylist). Example: `jazz`.
createdAfterstringoptionalOnly include videos published on or after this date, as `YYYY-MM-DD` (mode=search, trending, byTopic, byUser). Long ranges are fetched automatically in overlapping windows. Dailymotion applies date filters in ~5-minute buckets, so a day boundary can include up to five minutes of neighbouring content.
createdBeforestringoptionalOnly include videos published on or before this date, as `YYYY-MM-DD` (mode=search, trending, byTopic, byUser). Long ranges are fetched automatically in overlapping windows. Dailymotion applies date filters in ~5-minute buckets, so a day boundary can include up to five minutes of neighbouring content.
minDurationintegeroptionalOnly include videos at least this many seconds long.
maxDurationintegeroptionalOnly include videos at most this many seconds long.
maxItemsintegeroptionalMaximum number of records to return. Up to 1,000 comes from a single query; higher values automatically sweep Dailymotion's date windows (search/topic/channel modes, newest-first or oldest-first order). Playlist and channel-search modes stay capped at 1,000 per query.
usernamesarrayoptionalOne or more Dailymotion channels to fetch uploads from (mode=byUser). Accepts usernames (`euronews-en`), profile URLs (`https://www.dailymotion.com/user/euronews-en`), or profile IDs. Existing tasks with the old `username` field keep working.
playlistsarrayoptionalOne or more playlists to fetch (mode=byPlaylist). Accepts playlist URLs (`https://www.dailymotion.com/playlist/x6pu6c`) or bare playlist IDs. Existing tasks with the old `playlist` field keep working.

3. Start an Actor run

Set APIFY_TOKEN in your environment. Python 3.10 or newer is sufficient; this recipe uses no third-party packages.

Execution may incur charges. Review current pricing on Apify. The request asks for a 120-second timeout and a charge limit; these settings are subject to Apify’s pricing and do not guarantee an all-inclusive spending cap.

import json
import os
import urllib.request

# Save the schema-derived example as input.json; review and edit it first.
with open("input.json", encoding="utf-8") as stream:
    actor_input = json.load(stream)

token = os.environ["APIFY_TOKEN"]
request = urllib.request.Request(
    "https://api.apify.com/v2/acts/XGXbbohKOjk6aa6HB/runs?timeout=120&maxTotalChargeUsd=0.50",
    data=json.dumps(actor_input).encode("utf-8"),
    headers={"Authorization": "Bearer " + token, "Content-Type": "application/json"},
    method="POST",
)
# This starts a potentially billable run. Do not automatically retry this POST.
with urllib.request.urlopen(request, timeout=40) as response:
    run = json.load(response)["data"]
print("Run ID:", run["id"])
print("Status:", run["status"])
# Inspect and download results in Apify Console once the run succeeds.

4. Inspect the actual results

Open the run in Apify Console and wait for a successful completion. Use the published output schema to locate results and the dataset schema to understand declared views. Missing or optional record fields must not be treated as guaranteed values.

Dailymotion videos with views, likes, velocity, duration, thumbnails, tags, geo-blocking and channel/owner details, plus channel records when searching channels.

Questions before you run

Which inputs are required?

The published required fields are mode

What does this guide verify?

The fields, prefills, and schema links are rendered from the published build. This is a usage recipe, not a paid live extraction test. Source availability and collection results can vary.

What if the run request times out?

Check Apify Console before retrying. The first request may already have created a run. Do not automatically repeat a run-creation POST.

Generated from source build KvXY5wmZ1cYMdDI41 and its README and schemas. Source changes regenerate this guide; no third-party editorial claims are inferred.