To enjoy all our Developer Portal features, please switch to Microsoft Edge, Google Chrome or Mozilla Firefox browsers.

Data API Documentation

Getting started

Dailymotion is one of the biggest video platforms in the world, and as such, we offer video storage and viewing capability to our users. We would like to make it easy for you developers to integrate video creation and delivery across many platforms (desktop, mobile, consoles, set-top boxes and more). Our powerful and flexible video APIs are here to help us help you!

Our APIs, what for?

Our developer tools enable you to access both data regarding videos, users, comments, etc. (via the Data API) and to interact with the video player and embed it on your own website or application (via the Player API). At a high level, the range of available API calls covers virtually all facets of Dailymotion. Public data is available with no specific authentication while various parts of the API are available depending on the authenticated status and the permissions the user has granted your application.

Registering

While some basic features are available without authentication, you will need to register yourself as a developer in order to perform more elaborate API calls, authenticate users and act on their behalf.

To start developing with us, it is therefore recommended to register your application and retrieve an API key and secret:

  1. Create a new account or login using your own account on Dailymotion.
  2. Register your application on your developer profile. You will retrieve an API key and an API secret.
  3. You can now start developing your application!

Follow this documentation, try making some calls, read the examples and code samples and make the best out of dailymotion-hosted content!

Tip: use one API key per application/project to separate usages.


Data API overview

Introduction

The Dailymotion Data API is a simple way to access, publish and modify data on Dailymotion. It presents a simple, consistent view of the Dailymotion objects (e.g., users, videos, playlists, etc.) and connections between them (e.g., friend relationship, user's videos, videos in playlists, etc.).

Our API is served over HTTPS, on the following endpoint:

https://api.dailymotion.com

Graph object

Every object in the Dailymotion Data API has a unique identifier (within its class of object). You can access fields of every object by requesting /<OBJECT_CLASS>/<OBJECT_ID>, where <OBJECT_CLASS> can be video, user, playlist, etc. Here are some examples of object URLs:

Connection

All of the objects in the Dailymotion Data API are connected to each other via relationships: users own playlists, playlists own videos, videos own comments, etc. In a Graph API, these relationships are called connections. You can explore the connections between objects using the URL structure /<OBJECT_CLASS>/<OBJECT_ID>/<CONNECTED_OBJECT>. Here are some examples of supported connections:

The complete Data API reference lists all the different objects and connections we support.

Response types

All responses are sent back to you in JSON, which is a lightweight data-interchange format. We return two kinds of structure: item and list.

Items

Items are JSON objects consisting of unordered attribute–value pairs, with a single level of pairs. They are delimited by curly brackets. This kind of response is used when a single object is requested. The properties are the requested field names and their corresponding values. By default, only a certain number of fields are returned, but you can define which fields you want to be returned. See the fields selection section for more details.

{
    "id": "x26ezrb",
    "title": "Hackathon BeMyApp/Dailymotion",
    "channel": "creation",
    "owner": "x1fz4ii"
}

Lists

The list response type is a JSON object containing a list property. The associated value is a JSON array of items. Some other properties are also returned such as:

Response propertiesProperty typeProperty description
pagenumberThe current requested page number, by default page 1 is returned. You can pass the page parameter to request other pages (maximum page number is 100).
limitnumberThe current maximum number of items per response page. You can change this limit using the limit parameter (maximum number of items per page is 100).
explicitbooleanThis boolean property tells you if there is at least one result that was flagged as explicit in the list. See the family_filter global parameter for more information about how to prevent or allow this behavior.
totalnumberThis property defines the total number of items in the result set. It is not always present and may return an approximate number. Do not trust this value to compute pagination as you may not be able to get the real number of pages this value implies. Always prefer the has_more value to know if there is a next page.
has_morebooleanThis boolean property tells you if there are more pages after the current one. If it is set to true, you can decide to access more results, hence this is helpful when paginating through results. This can also help you decide if you need show a more button in your UI.
{
    "page": 1,
    "limit": 10,
    "has_more": true,
    "list": [
        {"id": "xf2pow", "title": "Tony Bennett plans Winehouse"},
        {"id": "xf2v32", "title": "Escape From City 17"},
        {"id": "xemyk2", "title": "Portal : No Escape"},
        {"id": "xf35xa", "title": "Earthquake Ignites Social Media Frenzy"},
        {"id": "xf02xp", "title": "Triple Kiss! - The Worst Generation #3"},
        {"id": "xf38x0", "title": "Billion Points Finalists"},
        {"id": "xettt9", "title": "The Best of Gamescom 11"},
        {"id": "xf3cxr", "title": "Review: If Only It Was \"30 Minutes or Less\""},
        {"id": "xf3ix6", "title": "Cold War Kids - Cold Toes On The Cold Floor"},
        {"id": "xf3jaa", "title": "Matthew Morrison Tour Rehearsal"}
    ]
}

Performing a call

You can perform different requests on https://api.dailymotion.com in order to interact with data on our platform. Some requests are public (accessing a public video's title and description), some others will require a specific permission (accessing private videos, adding a comment on a video, etc.).

For a full list of writable fields and connections and their supported parameters, please refer to the Data API reference.

GET

A GET request allows you to retrieve data about an object. For instance, getting information about a user is done using a GET request such as https://api.dailymotion.com/user/x1fz4ii.

POST

Some fields are writable. You can edit these via the Dailymotion Data API by issuing an HTTP POST request to the appropriate URL (see the Data API Reference). For example, you can edit the title of a video by posting to /video/<VIDEO_ID>:

curl -H 'Authorization: Bearer <ACCESS_TOKEN>' \
     -F 'title=My New Title' \
     https://api.dailymotion.com/video/<VIDEO_ID>

You can add a comment on the video by posting to /video/<VIDEO_ID>/comments:

curl -H 'Authorization: Bearer <ACCESS_TOKEN>' \
     -F 'message=My comment text' \
     https://api.dailymotion.com/video/<VIDEO_ID>/comments

Since only the owner of an object can write fields and some fields may require extended permissions or scopes granted by the user, write operations require to pass an access token. See the authentication guide for details on how you can request a token and extended permissions from the user during the authentication step.

DELETE

You can delete an object by issuing an HTTP DELETE request to the object URLs, for example:

curl -X DELETE \
     -H 'Authorization: Bearer <ACCESS_TOKEN>' \
     https://api.dailymotion.com/video/<VIDEO_ID>

To work with clients that do not support all of the HTTP methods (like JavaScript clients), you can alternatively issue a GET request to an object URL with the additional parameter method=delete to override the HTTP method. For example, you can delete a comment by issuing a GET request to /comment/<COMMENT_ID>?method=delete.

Fields selection

All objects are composed of fields. They all have an identifier id (unique in the given class of objects) plus some other fields defined in the Data API Reference. Some fields are publicly readable, some other are not and need the user to be authenticated and may require extended permissions granted by the user.

By default, a few fields are returned. To request more specific fields, use the fields parameter with the list of fields you need in the response. We are urging you to always use fields to only request the fields you will use in your application. For instance, to select the id and the title fields of a video object, perform a GET request to /video/<VIDEO_ID>?fields=id,title.

Let's call https://api.dailymotion.com/video/x26ezj5?fields=id,title. The response will be like this:

{
    "id": "x26ezj5",
    "title": "Greetings"
}

If a field is supposed to return a connected object, selecting the field will return the connected object id. In such case you can request any sub-field of this connected object by concatenating the sub-field name to the field, separated by a dot. For instance, the owner field of the video object returns a user object. If you need the screenname and the url of the video owner, you can perform the following request: https://api.dailymotion.com/video/x26ezj5?fields=id,title,owner,owner.screenname,owner.url. The response will look like this:

{
    "id": "x26ezj5",
    "title": "Greetings",
    "owner": "x1fz4ii",
    "owner.screenname": "Dailymotion API",
    "owner.url": "http://www.dailymotion.com/DailymotionAPI"
}

Note: This also works for lists of objects and connections.

Filtering

When searching for a list of objects, some fields can be used for filtering. Those filters are listed in the API reference, under the filters section of every object (see the filters available for the video object for example). To filter, perform a GET request and put your filters as parameters of the query string. For instance, the following request /videos?channel=tech&language=en will list all English-speaking videos in the 'technology' channel.

Just like a field, a filter declares a data type and only takes specific values in input. When a filter is marked as a flag though, it means that it doesn't take any specific value, its presence in the query string is the only thing that matters. Please see the flag type description for more information.

When the response to your call is a list of objects, you can also sort the list by using the sort filter with any of the available values listed in the API reference.

Caching

The REST API uses HTTP cache control mechanisms. If you want to benefit from caching, you have to make sure URLs don't change between requests. To that end, you should always sort query string parameters by alphabetic order and send the access token using the Authorization HTTP header as follow:

curl -H 'Authorization: OAuth <ACCESS_TOKEN>' \
     https://api.dailymotion.com/videos

Since requests are sent over SSL, your requests' responses cannot be stored on public intermediate proxy cache servers. However, if your application can potentially share the cache between different users, you have to be sure you only share responses marked as public in the Cache-Control HTTP header. This should be done automatically by your HTTP library if it respects the Vary HTTP header sent with private cacheable responses though.

More about requests!

Our API Explorer will also let you test possible calls through its simple interface.

Learn how to authenticate in the authentication section, so you can perform elaborate calls and interact with your user's videos.

If you want to test the availablility of the API, the /echo endpoint is just want you're looking for! Check the documentation on the /echo endpoint.

Error codes

Receiving error codes

The following is an an example of a common error response, resulting from a failed API Call. Errors contains a status code, a message and an error type.

curl "https://api.dailymotion.com/video/xnotfound"
HTTP/1.1 404 Not Found
{
    "error": {
        "code": 404, 
        "message": "This video does not exist or has been deleted.", 
        "type": "not_found"
    }
}

HTTP Status Code

The Dailymotion Data API uses conventional HTTP response codes to indicate success or failure of an API request. In general, codes in the 2xx range indicate success, codes in the 4xx range indicate an error resulting from invalid provided information (e.g. a required parameter is missing, invalid access token, etc.), and codes in the 5xx range indicate an error with the Dailymotion servers. Hence, we are using the following match for error codes:

Classic HTTP errorsCorresponding Dailymotion errors
400
Bad Request
The API call requires authentication but it was not presented or was wholly invalid, or the API call was invalid (invalid_parameter, missing_required_parameter).
401
Unauthorized
A valid access token should be provided. This error may come from an expired access token.
403
Forbidden
The request is understood, but it has been refused or access is not allowed. An accompanying error message will explain why. This code is used when requests are being denied due to spam activity, or the request requires higher privileges than provided by the access token.
404
Not Found
The requested object was not found (can also be thrown when you request non active users, censored videos, etc.).
405
Method Not Allowed
Invalid HTTP Method + method_not_allowed error type.
501
Not Implemented
The specified method does not exist (invalid_method).
500
Internal Server Error
This API error covers any other type of problem (e.g.: a temporary problem with the Dailymotion servers) and should turn up only very infrequently. Check the associated message for more information.

Error types

Here's a list of error types you may encounter in errors returned by the API:

Error typesType descriptions
invalid_parameterYour request contains invalid parameters (e.g. you set an invalid data type for a field).
missing_required_parameterYou forgot a required parameter in your API call.
access_forbiddenThrown when the user doesn't have the permission to access the data (e.g. missing a required scope to access certain fields).
not_foundThe requested object was not found.
method_not_allowedThe API call is correct, but the method is not allowed (e.g.: replace a video URL before encoding process is over).
invalid_methodThe API endpoint or object connection is invalid.
write_failureThe data you tried to set using the API could not be saved, this is generally a temporary error that will resolve itself over time.

Note: This is not an exhaustive list, only the most common ones are listed here.

Video access error

When requesting access to a video, the API may return a message explaining why the access can't be granted inside the specific access_error field. Here is a list of the different access error codes you may encounter and their descriptions:

Error codeError description
DM001No video has been specified, you need to specify one.
DM002Content has been deleted.
DM003Live content is not available, i.e. it may not have started yet.
DM004Copyrighted content, access forbidden.
DM005Content rejected (this video may have been removed due to a breach of the terms of use, a copyright claim or an infringement upon third party rights).
DM006Publishing in progress...
DM007Video geo-restricted by its owner.
DM008Explicit content.
DM009Explicit content (offsite embed).
DM010Private content.
DM011An encoding error occured.
DM012Encoding in progress...
DM013This video has no preset (no video stream).
DM014This video has not been made available on your device by its owner.
DM015Kids host error.
DM016Content not available on this website, it can only be watched on Dailymotion.

Guidelines

API rate limits

We enforce some quotas on the Data API calls. For the time being, all stream_*_url fields are rate-limited to 50 calls per day per API key.

Video upload through the API is also limited to:

Standard accounts limitsVerified partners limits
Per video1 Hour and 2GbNo limit
Per 24h10 Videos and 2 Hours96 videos* and unlimited duration

*If you need to boost this limit for a specific use case, please get in touch with your dailymotion content manager.

To check your current limits at the video level, you can request the limits field on your own user using the API, like this: /me?fields=limits (you will need to be authenticated).

Input/output types

Each graph object field and filter has its own data type, here are the different types available in the API. Please note that any of these can return either their advertised type or a null value if they have no associated data.

string

A simple sequence of UTF-8 characters. Please URL encode all input strings (RFCs 3986 and 1738).

  • "123"
  • "aerft438j"
  • "Simple sequence of UTF-8 characters."
  • /video/x26ezrb?title=A+string+for+a+new+title
  • /video/x26ezrb?title=A%20string%20for%20a%20new%20title
number

Any number, can be integer or floating point. Please use the international notation with a dot between the integer and decimal parts.

  • 0
  • 4
  • 2.95
  • /video/x26ezrb?rental_start_time=3.5
boolean

A truth value. For input values, 0, "false" and "no" all resolve to false and 1, "true" and "yes" all resolve to true.

  • true
  • false
  • /user/x1fz4ii?email_notification=1
  • /user/x1fz4ii?email_notification=false
date

A date expressed as a UNIX timestamp (number of seconds since the UNIX Epoch).

  • 0
  • 1287507036
  • 2147483647
  • /user/x1fz4ii?birthday=532701000
array

An unordered collection of any other scalar data type (most likely strings or numbers). Elements are listed between square brackets and separated by commas. For inputting arrays, simply separate every element with commas.

  • []
  • [1,2,3]
  • ["ld","sd","hq","hd720"]
  • /video/x26ezrb?tags=elements,separated,with,commas
  • /video/x26ezrb?tags=elements%2Cseparated%2Cwith%2Ccommas
dict

A dict is a flat single level deep map that associates various type of values to keys.

  • {}
  • {1:"January",2:"February",3:"March"}
  • {"video_duration":3600,"video_size":2147483648}
url

Any URL, it isn't implied that the URL actually resolves to any resource.

  • http://www.dailymotion.com/videos
  • https://www.dailymotion.com/video/x26ezrb_hackathon-bemyapp-dailymotion_creation
  • /video/x26ezrb?url=http%3A%2F%2Fwww.dailymotion.com%2Fvideo%2Fx26ezrb
email

An email address, it isn't implied that the address actually resolves to any inbox.

  • user@example.org
  • example+value@email.com
  • /user/x1fz4ii?email=user%40example.org
object

Any other Data API object, which means that the returned value will be an identifier and that you can retrieve sub-fields of the corresponding object using the dot-notation. For inputting object values, simply provide the identifier of the object.

flag

Flag is a special type reserved for simple boolean filters. When a filter is marked as a flag, it means that it doesn't take any specific value, its presence in the query string is the only thing that matters. You can still attach a value to them in your query string, but it won't have any effect and will be discarded. Here are the three different ways of using them:

  • /videos?flags=featured,hd,no_live (recommended)
  • /videos?featured&hd&no_live
  • /videos?featured=true&hd=true&no_live=true (not recommended)

Encoding

We strongly recommend the use of UTF-8 encoding for all interactions with the API.


Authentication

By default, your application can only access public API data like public video title, description, etc. In order to interact with someone's Dailymotion account, this user has to authorize your application. The Dailymotion Data API uses the OAuth 2.0 protocol for managing authentication and authorization flows between the API and third-party applications.

OAuth 2.0

For accessing and/or manipulating protected resources (such as private user data), the client application (your application) needs to be granted permission to do so. The OAuth 2.0 standard defines a protocol that allows such third-party authorization through the use of access tokens. Access tokens are central in the protocol: those tokens, in the form of strings, are delivered by an authorization server (at Dailymotion) and they enable the client application to securely access protected data on behalf of the resource owner (the end-user).

OAuth 2.0 actorYour scenario when using the Dailymotion API
client applicationYour application/website/project
resource ownerAny Dailymotion user
resource serverThe Dailymotion API endpoint (https://api.dailymotion.com)
authorization serverThe Dailymotion authorization endpoint
(https://www.dailymotion.com/oauth/authorize)

Hence, there is a series of back-and-forth exchanges between the client application, the resource owner and the authorization server in order to create an access token, which will be forwarded every time you perform requests to the resource server. The typical exchange is as follows:

  1. The client application asks the resource owner for authorization and receives an authorization grant.
  2. The client application then authenticate itself to the authorization server (by forwarding this authorization grant) in order to obtain an access token. These two steps are described in the retrieving an access token section.
  3. Lastly, the client application uses this access token to request resources to the resource server. Read the using an access token section for more details on how to use the access token when performing an API request.

With no scope provided, your application will only be able to interact with public data such as searching for a public video or requesting comments on a video. If your application needs to read private data or change some user's associated data (post a comment on behalf of someone, modify someone else's video title, etc), your application can request a larger permission scope. How to request extended permissions is described in the Extended Permissions section.

For more in depth information about the OAuth 2.0 protocol and specifications, please refer to the Request For Comments (RFC) #6749.

Retrieving an access token

A typical scenario when using the Dailymotion API is that of an application managing someone's videos and acting on his/her behalf.

For this, three canonical types of grant types exist (given by resource owner to client application, depending on the scenario and technology used):

  1. Authorization code: the authorization server acts as intermediary between the resource owner and the client application. The resource owner is directly authenticated and asked for authorization by the authorization server, before the authorization code is returned to the client application. For this usage, use the authorization_code grant type.
  2. Resource owner password credentials: the client application asks the user for his/her credentials (login and password) and pass them directly to the authorization server to retrieve an access token. The credentials should only be used when there is a high degree of trust between the resource owner and the client application (e.g., the client application is part of the device operating system or a highly privileged application), and when other authorization grant types are not available (such as an authorization code). Because the application has the responsibility to ask the user for his/her credentials, you have to make sure your API secret remains a secret. For this usage, use the password grant type.
  3. Client credentials: authorization is managed using client credentials (application credendials, no authenticated user), for example for publicly available resources in Dailymotion (seldom used). This is enough if you don't need to access the Dailymotion API on behalf of another user. For this usage, use the client_credentials grant type.

Client profiles

For this purpose, there are two main profiles:

Web application profile

The web application profile is suitable for client applications capable of interacting with the end-user's user-agent (typically a web browser) and capable of receiving incoming requests from the authorization server (capable of acting as an HTTP server).

The steps to obtain an access token are:

  1. Once your application has been registered, you get an API key, which we will call your client_id and an API secret, which is your client_secret.

  2. Redirect the user to https://www.dailymotion.com/oauth/authorize with your client_id and the URL the user should be redirected back to after the authorization process (the redirect_uri). For security reason, only redirect_uri starting with the callback URL provided when you created your API key will be accepted (line breaks are for display purposes only):

    https://www.dailymotion.com/oauth/authorize
        ?response_type=code
        &client_id=<API_KEY>
        &redirect_uri=http://www.example.org/callback
    

    If your redirect_uri has to contain a dynamic part, you can use a slug this way when you specify your application callback URL: http://www.example.org/callback/[<SLUGNAME>]. The <SLUGNAME> part becomes the dynamic part.

  3. If the user authorizes your application, Dailymotion redirects the user back to the redirect_uri you specified with a verification string in the code query parameter. This authorization code can then be exchanged for an OAuth access token by POST-ing to the token server at https://api.dailymotion.com/oauth/token. Pass the exact same redirect_uri as in the previous step (line breaks are for display purposes only):

    POST /oauth/token HTTP/1.1
    Host: api.dailymotion.com
    Content-Type: application/x-www-form-urlencoded
    
    grant_type=authorization_code
        &client_id=<API_KEY>
        &client_secret=<API_SECRET>
        &redirect_uri=http://www.example.org/callback
        &code=<AUTHORIZATION_CODE>
    

    In return, you will retrieve the following JSON response:

    {
        "access_token": "<ACCESS_TOKEN>",
        "expires_in": 36000,
        "refresh_token": "<REFRESH_TOKEN>"
    }
    
  4. You can then use the access_token from the response to make requests on behalf of this user. Read the using an access token section for more details.

Note: If the user does not authorize your application, Dailymotion redirects the user to the redirect_uri you specified, and adds both error and error_description parameters to the query.

Note: The access token is valid for the given number of seconds defined by the expires_in parameter of the token server response. You can use the obtained refresh_token to request another access token without the need to ask anything to the user again. See the requesting an access token from a refresh token section for more details.

Note: We strongly advise you to use one of the official Dailymotion SDKs that abstract all of these exchanges for you and make this process easier.

State parameter (optional)

The web application profile supports the optional state parameter that allows you to mitigate CSRF attacks and/or to restore your application’s previous state. The state parameter preserves a state object set by the client and makes it available in the client response.

Mitigate CSRF attacks: The state parameter can be used to send a random value during the authentication redirection. Then the received value has to be validated after processing the response. To perform the validation, the state value has to be stored on the client application side and match with the state parameter received in the response.

Warning! If it doesn't, you may be the target of an attack and should immediately stop the authentication process.

Redirect users: The state parameter can also be used to redirect the user to the protected page he intends to access after the authentication process.

  1. Start by generating a unique key that will use to protect you against CSRF attacks.

  2. Store this key on user side and use it to store the targeted URL, as below:

    {
            "<UNIQUE_KEY_ID>": {
                "redirectUrl": "/protectedResource",
                "expiresOn": "13456789"
            }
    }
    
  3. Get the Authorization by sending your unique key to Dailymotion (line breaks are for display purposes only):

    POST /oauth/authorize HTTP/1.1
    Host: api.dailymotion.com
    Content-Type: application/x-www-form-urlencoded
    
    response_type=code
        &client_id=<API_KEY>
        &redirect_uri=http://www.example.org/callback
        &state=<UNIQUE_KEY_ID>
    
  4. Retrieve the returned state value and compare it with the one you stored earlier. If the values match, then approve the authentication response and retrieve the rest of the application state (like the redirectUrl), else deny it.

Note: The way you store the unique key and the URL depends on your application's type. It can be local storage in single-page, native apps or a cookie in a regular web application.

Warning! The state parameter doesn't guarantee the response or the request integrity. Keep in mind that they could be manipulated by malicious users.

Native application profile

Native client applications are running as native code on the end-user's computer or device (i.e. executing outside a user-agent or as a desktop program). These client applications are often capable of interacting with (or embedding) the end-user's user-agent but are limited in how such interaction affects their end-user experience. In many cases, native applications are incapable of receiving direct callback requests from the server (e.g. firewall, operating system restrictions, etc.).

Native client applications can prompt the end-user for their password credentials and use them directly to obtain an access token. This method is discouraged since users will have to communicate their credentials directly to your client application. Additionally, users who created their account using their Facebook, Google or other third-party accounts won't be able to log-in into your application using this authentication method. Please note that if you have no other choice but to use this method, you are not allowed to store the end-user credentials you obtained.

The steps to obtain an access token using the end-user credentials are:

  1. Once your application has been registered, you get an API key, which we will call your client_id and an API secret, which is your client_secret.

  2. Ask the end-user for his credentials which consist of a username and a password.

  3. Retrieve an OAuth access token by POST-ing to the token server at https://api.dailymotion.com/oauth/token. Set the grant_type to password, pass the client_id and client_secret (related to your application) and the user credentials in username and password (line breaks are for display purposes only):

    POST /oauth/token HTTP/1.1
    Host: api.dailymotion.com
    Content-Type: application/x-www-form-urlencoded
    
    grant_type=password
        &client_id=<API_KEY>
        &client_secret=<API_SECRET>
        &username=<USER_USERNAME>
        &password=<USER_PASSWORD>
    

    In return, you will get the following JSON response:

    {
        "access_token": "<ACCESS_TOKEN>",
        "expires_in": 36000,
        "refresh_token": "<REFRESH_TOKEN>"
    }
    
  4. Use the access token returned by the request above to make requests on behalf of the user. Read the using an access token section for more details.

Note: The access token is valid for a given number of seconds defined by the expires_in parameter of the token server response. You can use the obtained refresh_token to request another access token without the need to ask anything to the user again. See the requesting an access token from a refresh token section for more details.

Note: We strongly advise you to use one of the official Dailymotion SDKs that abstract all of these exchanges for you and make this process easier.

Refreshing a token

Some authorization methods provide you with a refresh token in addition to the access token. The access token validity is always limited in time indicated by the expires_in property of the token server response or by a 401 HTTP status code error when used with the API (see the Request For Comments (RFC) #6749 for more in depth information).

Once an access token has expired, you can request another access token without the need to repeatedly ask anything to the end-user, but only if you are in possession of a refresh token. To do that, send the following request to the token server at https://api.dailymotion.com/oauth/token (line breaks are for display purposes only):

POST /oauth/token HTTP/1.1
Host: api.dailymotion.com
Content-Type: application/x-www-form-urlencoded

grant_type=refresh_token
    &client_id=<API_KEY>
    &client_secret=<API_SECRET>
    &refresh_token=<REFRESH_TOKEN>

In return you will get the following JSON response:

{
    "access_token": "<ACCESS_TOKEN>",
    "expires_in": 36000,
    "refresh_token": "<REFRESH_TOKEN>"
}

In case of error, the JSON object will contain both an error and error_description properties. See the Request For Comments (RFC) #6749 for more details.

Note: We strongly advise you to use one of the official Dailymotion SDKs that abstract all of these exchanges for you and make this process easier.

Note: One of the problems with OAuth 2 is that the specification doesn't offer any mechanism to upgrade the scope of an existing session on refresh. See the extended permissions section for more information.

Extended permissions

In the above examples, the OAuth process will authenticate your application with the Dailymotion user, which will allow you to fetch general information about the user's profile via the Dailymotion API /me endpoint. As mentioned above, if you need to fetch private data associated to the user or you want to request permission to publish content on a user's behalf, you will need to request extended permissions.

To request extended permissions via OAuth 2.0, use the scope parameter in your authorization request, and include a white-space-separated list of all the permissions you want to request. For example this authorization request asks for personal information and full video control (line breaks are for display purposes only):

https://www.dailymotion.com/oauth/authorize
    ?response_type=code
    &client_id=<API_KEY>
    &redirect_uri=http://www.example.org/callback
    &scope=userinfo+manage_videos

Note: One of the problems with OAuth 2 is that the specification doesn't offer any mechanism to upgrade the scope of an existing session. To add new scopes to an already existing session, you first need to call the /logout endpoint and start a new session with your new list of scopes.

Here are a few of the extended permissions available:

ScopeDescription
emailProvides access to the user's primary email address.
userinfoProvides read/write access to some personal user information like address and birthday.
manage_videosAllows to modify or delete the user's uploaded videos and to publish new ones.
manage_commentsAllows to publish comments on videos on behalf of the user.
manage_playlistsAllows to create/edit/delete playlists on behalf of the user.
manage_tilesAllows to read/write a user's saved tiles.
manage_subscriptionsAllows to manage a user's subscriptions.
manage_friendsAllows to manage a user's friends.
manage_likesAllows to add/remove videos from the list of user's liked video ("likes").

There is more to it. Refer yourself to the full Data API reference for a complete list of the information your can access and the permissions needed to request them.

Revoking authorization

Your application should always allow users to revoke authorization granted to your API key. The user can also revoke your application from his profile on Dailymotion, but it's far less user-friendly than having a simple Logout from Dailymotion button in your interface.

To revoke authorization, perform a GET request to the /logout URI with the Authorization header (or access_token query parameter). Read the using an access token section for more details. Once done, your current session (access token and/or refresh token) are no longer valid and you can forget about them in your application.

Form factors

Dailymotion supports a non-standard display parameter to trigger different form factors for the authorization dialog that may be more appropriate for your application:

Parameter valueFeature description
pageDisplays a full-page authorization screen (by default).
popupDisplays a compact dialog optimized for web pop-up windows.
mobileDisplays an iPhone/Android/smartphone-optimized version of the dialog (deprecated).

For example, to trigger the dialog in a pop-up window, you would redirect the user to (line breaks are for display purposes only):

https://www.dailymotion.com/oauth/authorize
    ?response_type=code
    &client_id=<API_KEY>
    &redirect_uri=http://www.example.org/callback
    &display=popup

Note: Even if you chose page or popup from a known mobile device, the mobile display will be chosen automatically.

Using an access token

At high level, using OAuth 2.0 entails getting an access token for a Dailymotion user via a redirect to Dailymotion. After you obtain the access token, you can perform authorized requests on behalf of this user by including it in all of your API requests using the Authorization HTTP header:

GET /videos HTTP/1.1
Host: api.dailymotion.com
Authorization: Bearer <ACCESS_TOKEN>

You can also provide the access token directly as a query parameter, but this method is not recommended because it's unsafe and incompatible with some other API entry points (like the Advanced API):

https://api.dailymotion.com/videos?access_token=<ACCESS_TOKEN>

Once authenticated on the API, you can use the special identifier /me which refers to the currently authenticated user (alias of /user/<USER_ID>). So the URL https://api.dailymotion.com/me/videos returns the same thing as https://api.dailymotion.com/user/<USER_ID>/videos.

Checking an access token

If you want to retrieve information on your access token, you can perform a GET request of /auth. This request returns diverse information on the user authentified in your application: id, username, screename, extended permissions accepted, roles granted the application through which the token was created.

{
  "id": "x1fz4ii",
  "scope": [
    "manage_comments",
    "manage_videos",
    "userinfo"
  ],
  "roles": [],
  "username": "DailymotionAPI",
  "screenname": "Dailymotion API"
}

Data API reference

Here is a list of the various graph objects available through the Dailymotion Data API. Some of them will only be available for reading, and some others for creation and edition too.

Object nameShort description
channel

A channel object represents a category of videos on Dailymotion (formerly a channel), for example:
shortfilms, videogames, news, etc.

playlist

A playlist object represents an ordered list of videos created by a user. Videos in a playlist
do not necessarily have anything in common.

subtitle

A subtitle object represents a file resource containing closed captioning for a given video.

user

A user object represents a Dailymotion user account. Users are at the foundation of every other graph objects, since
most of them are created through —or owned by— users. Users also represent the main authentication vector to Dailymotion
services.

video

The video object is the foundation of Dailymotion' service. Videos are metadata containers wrapped around media
streams and can be accessed either directly or through several connections through the Data API.

Global API Parameters

The following query-string parameters are valid on the whole API and can be provided along with any type of request. Some of them are strongly recommended if you want to enhance your end-user experience. To use a global parameter, simply add it to any request's query-string like so:
/video/x26m1j4/comments?family_filter=false&localization=it

TypeNameDescription
STRINGams_country

Change the country for the asset management.
By default, the country is auto-detected based on the IP address of the API consumer. Changing this value will filter out content geo-blocked for the defined country and will affect the geo-blocking mechanism.

STRINGcontext

Additional call context for this request.
Some resources of the API require that you provide contextual information along with your request in order to return relevant data. This is especially useful when the API cannot retrieve or guess this additional information by itself. Contextual information should only be provided when expressly needed by the resource you are trying to query. Values should be passed as an embedded and URL encoded query string, for example:
?field=data&context=key1%3Dvalue1%26key2%3Dvalue2

STRINGdevice_filter

Filter out content and change media assets.
By default, the device is auto-detected based on the user-agent of the API consumer. Valid values are detect, web, mobile and iptv. Changing this value will filter out content not allowed on the defined device.

BOOLEANfamily_filter

Enable/disable the family filter.
By default, the family filter is turned on. Setting this parameter to false will stop filtering-out explicit content from searches and global contexts. You should always check the result's explicit field when applicable as some contexts may still return those contents. You should also flag them in your UI to warn the user about the nature of the content.

STRINGlocalization

Change the default localization of the user.
This will affect results language and content selection. Note that changing the localization won't give access to geoblocked content of the corresponding location. The IP address of the API consumer is always used for this kind of restriction. You can use a standard locale like fr_FR, en_US (or simply en, it) but you can also provide detect to tell the API to detect the most probable locale based on the consumer's location.

BOOLEANssl_assets

Get secured HTTPS URLs for all assets (URLs, images, videos, etc.).
By default, this option is turned on.
(Deprecated 25/03/2019 +6 month)

STRINGthumbnail_ratio

Change the size ratio for all video thumbnails.
By default, this option is set to original. Accepted values are original, widescreen and square.

Auth

This endpoint enables to access information about the current authenticated user. This relates to the user authenticated using an access token (provided with the appropriate header or as a query-string parameter).

Retrieving current auth information

To retrieve information about the current authenticated user, perform a GET request on /auth. By default, only a small number of default fields are returned, please refer to the complete field list below. For help on requesting more specific fields, see the fields selection section.

Sample auth API call: /auth

Current auth information response

Here is the list of fields you can retrieve when performing a call on /auth.

Field nameDescriptionSample
idThe user identifier of the authenticated user."x1fz4ii"
scopeThe scope of permissions granted to the authenticated user.["manage_videos","userinfo"]
rolesThe list of roles associated to the API key of the authenticated user.[]
usernameThe username of the authenticated user."DailymotionAPI"
screennameThe authenticated user's username or full name depending on his preferences."Dailymotion API"
languageThe authenticated user spoken language (declarative)."fr"

Channel

A channel object represents a category of videos on Dailymotion (formerly a channel), for example:
shortfilms, videogames, news, etc.

Manipulating channels

To retrieve a specific channel object, perform a GET request on /channel/<CHANNEL_ID>. By default, only a small number of fields marked as default are returned (such as the object identifier), please refer to the complete field list below. For help on requesting specific fields, see the fields selection section.

To retrieve a list of channel objects, perform a GET request on /channels. You can also use You can then use filters (if any) to filter down the result set, see the filtering section for more information.

Sample channel API call: /channel/music
Test it further with the API Explorer.

Channel fields

Here is the list of fields you can retrieve on every channel object. You can retrieve these using the fields query-string parameter on any graph object request. See the fields selection section for more information.

created_time

Date and time when this channel was created.

publicreadable

Sample value: 1287507036

Date and time when this channel was created.

description

Comprehensive localized description of this channel.

publicreadabledefaultminlength: 1maxlength: 150

Sample value: Everything about video-games!

Comprehensive localized description of this channel.

id

Unique object identifier (unique among all channels)

publicreadabledefault

Sample value: xiimmu9

Unique object identifier (unique among all channels)

item_type

Graph type of this object (hopefully channel)

publicreadableminlength: 1maxlength: 150

Sample value: channel

Graph type of this object (hopefully channel)

name

Localized short name of this channel.

publicreadabledefaultminlength: 1maxlength: 150

Sample value: Video Games

Localized short name of this channel.

slug

Slug name of this channel.

publicreadableminlength: 1maxlength: 150

Sample value: video-games

Slug name of this channel.

updated_time

Date and time when this channel was last updated.

publicreadable

Sample value: 1404129540

Date and time when this channel was last updated.

Channel filters

Here is the list of filters you can use to limit a result set of channel objects. You can use these by passing them as query-string parameters with your request.

sort

Change the default result set ordering.

STRINGallowed values: popular or alpha

Sample value: popular

Change the default result set ordering.

Channel deprecated filters

These deprecated filters were once part of the API reference but are no longer maintained. Support is still available until the end of life date specified for each filter.Do not use any of these for a new project as they may disappear without warning.

language

Language in which you want this channel name and description fields to be.

Sample value: it

Language in which you want this channel name and description fields to be.

Channel connections

Connections through the data API are used to link objects with each others. Some objects can only be accessed and/or created through connections since they have no point in existing on their own. Here is the list of connections available through the channel object.

users

List of the top users of this channel.
This connection joins an object of type channel with a list of user objects.

publicreadable

List of the top users of this channel.
This connection joins an object of type channel with a list of user objects.

Read the channel's users connection

You can retrieve the list of users connected to a channel object by issuing a GET request to /channel/<CHANNEL_ID>/users. You can specify the list of fields from the user objects to be returned using the fields parameter.
Test it with the API Explorer.

videos

List of videos of this channel.
This connection joins an object of type channel with a list of video objects.

publicreadable

List of videos of this channel.
This connection joins an object of type channel with a list of video objects.

Read the channel's videos connection

You can retrieve the list of videos connected to a channel object by issuing a GET request to /channel/<CHANNEL_ID>/videos. You can specify the list of fields from the video objects to be returned using the fields parameter.
Test it with the API Explorer.

Echo

This endpoint returns the same exact message which was given as a parameter. It can be used to test the availability and reactivity of the API.

Using echo

To send an /echo request, perform a GET request on /echo. The table below lists all the parameters that can be provided when performing this request:

TypeParameterRequiredDescription
stringmessageYesThe message to be returned by the echo.

Sample echo API call: /echo?message=this+is+a+test

Echo response

Here is the list of fields you can retrieve when performing a call on /echo.

Field nameDescriptionSample
messageThe message which was given as a parameter."echo... echo... echo..."

File

This endpoint allows anyone to retrieve a video upload URL, when you need to upload a video on Dailymotion's servers and don't want to upload it on your own server.

File upload

To retrieve an upload URL, perform a GET request on /file/upload. The table below lists the parameters that can be provided when performing this request.

TypeParameterRequiredDescription
stringcallback_urlNoThe URL where the uploader will be redirected (HTTP 302) after the upload finishes. If this parameter is not provided, the resulting upload parameters will be included in the response body of the file POST as JSON.

Sample file upload API call: /file/upload

File upload response

Here is the list of fields you can retrieve when performing a call on /file/upload.

Field nameDescriptionSample
upload_urlThe URL you will be able to upload your video to.http://upload-XX.dailymotion.com/upload?uuid=<UUID>&seal=<SEAL>
progress_urlAn URL to poll the progress of the current upload. A GET request to this URL returns a JSON object with a state key having one of the following values: starting, uploading, done, error. During the uploading state, the JSON object also contains size and received keys reporting the upload progress.http://upload-XX.dailymotion.com/progress?uuid=<UUID>

Languages

The languages endpoint is used to retrieve the list of ISO-639-3 2 or 3 letter codes associated with the language name, native name, localized name, and name as it could be displayed on Dailymotion.

Retrieving languages

To retrieve the list of ISO-639-3 languages, perform a GET request on /languages.

The list of fields returned is fixed and defined as followed. This call do not support the fields parameter.

Sample locale API call: /languages

Languages response

Here is the list of fields you will retrieve when performing a call on /languages.

Field nameDescriptionSample
codeThe language alpha-2 or alpha-3 code as specified by the ISO-639-3 standard."ja"
nameThe name of the language."Japanese"
native_nameThe native name of the language, or null if unknown."日本語"
localized_nameThe name of the language in the locale of the request, or null if unknown."Japonais"
display_nameThe name of the language as it could be displayed. This corresponds to the localized name if we know it, otherwise it's simply the name."Japonais"

Locale

A locale is a set of parameters that defines a user's language, country, currency, etc.

Detecting and retrieving locales

To detect the locale of the current requestor, perform a GET request on /locale.

To retrieve the list of locales supported by Dailymotion, perform a GET request on /locales.

In both cases, the list of fields returned is fixed and defined as follow since these calls do not support the fields parameter. You can also return informations on a specific locale by changing your request locale using the localization global parameter.

Sample locale API call: /locale

Locale detection response

Here is the list of fields you will retrieve when performing a call on /locale or /locales.

Field nameDescriptionSample
localeThe locale code."ja_JP"
site_codeThe site version code associated to the locale. This code is to be used in the API wherever a "localization" parameter is requested"jp"
languageThe name of the language in English."Japanese"
localized_languageThe name of the language in the current API request locale."Japonais"
locally_localized_languageThe name of the language in the locale's language."日本語"
countryThe name of the country in English"Japan"
localized_countryThe name of the country in the current API request locale."Japon"
locally_localized_countryThe name of the country in the locale's language."日本"
currencyThe currency accepted by Dailymotion for this locale."JPY"

Logout

This endpoint removes the right for the current API key to access the current user account (the user authenticated by the current access token). Once this method is called, all further requests with the same access token will fail and any previously obtained refresh token for this session will be invalidated.

Logging out

To logout a user, perform a GET request on /logout. This call returns an empty JSON object in case of success: {}

Sample logout API call: /logout


Playlist

A playlist object represents an ordered list of videos created by a user. Videos in a playlist
do not necessarily have anything in common.

Manipulating playlists

To retrieve a specific playlist object, perform a GET request on /playlist/<PLAYLIST_ID>. By default, only a small number of fields marked as default are returned (such as the object identifier), please refer to the complete field list below. For help on requesting specific fields, see the fields selection section.

To retrieve a list of playlist objects, perform a GET request on /playlists. You can also use You can then use filters (if any) to filter down the result set, see the filtering section for more information.

To create an object of type playlist, perform a POST request onJoin all the fields you want to specify and their value as an application/x-www-form-urlencoded payload. Please note that, for creation, some fields and/or specific query-string parameters could be mandatory, please refer to the field list below.

To edit an object of type playlist, perform a POST request on /playlist/<PLAYLIST_ID>. Join all the fields you want to update and their new value as an application/x-www-form-urlencoded payload.

To delete an object of type playlist, perform a DELETE request on /playlist/<PLAYLIST_ID>. If you do not receive any error (empty result set), it means that the deletion was successful.

Sample playlist API call: /playlist/x3ecgj
Test it further with the API Explorer.

Playlist fields

Here is the list of fields you can retrieve on every playlist object. You can retrieve these using the fields query-string parameter on any graph object request. See the fields selection section for more information.

created_time

Date and time when this playlist was created.

publicreadable

Sample value: 1287507036

Date and time when this playlist was created.

description

Comprehensive description of this playlist.

publicreadablewritableminlength: 1maxlength: 2000

Sample value: Check out the top 10 best goals of this year's championship!

Comprehensive description of this playlist.

id

Unique object identifier (unique among all playlists)

publicreadabledefault

Sample value: xhc9x1t

Unique object identifier (unique among all playlists)

item_type

Graph type of this object (hopefully playlist)

publicreadableminlength: 1maxlength: 150

Sample value: playlist

Graph type of this object (hopefully playlist)

name

Short descriptive name of this playlist.

publicreadablewritabledefaultminlength: 1maxlength: 50

Sample value: Best goals of the championship

Short descriptive name of this playlist.

owner

Author of this playlist.
You can retrieve sub-fields of this user object using the dot-notation (e.g.: owner.id).

publicreadabledefault

Sample value: x6eejgm

Author of this playlist.
You can retrieve sub-fields of this user object using the dot-notation (e.g.: owner.id).

private

True if this playlist is private.

publicreadablewritable

Sample value: true

True if this playlist is private.

thumbnail_1080_url

URL of this playlist's first video's thumbnail image (1080px height).

publicreadable

Sample value: https://s2.dmcdn.net/CTrg1/x1080-Ec7.jpg

URL of this playlist's first video's thumbnail image (1080px height).

thumbnail_120_url

URL of this playlist's first video's thumbnail image (120px height).

publicreadable

Sample value: https://s2.dmcdn.net/3CQ3/x120-lbT.jpg

URL of this playlist's first video's thumbnail image (120px height).

thumbnail_180_url

URL of this playlist's first video's thumbnail image (180px height).

publicreadable

Sample value: https://s2.dmcdn.net/3CQ3/x180-Pe8.jpg

URL of this playlist's first video's thumbnail image (180px height).

thumbnail_240_url

URL of this playlist's first video's thumbnail image (240px height).

publicreadable

Sample value: https://s2.dmcdn.net/3CQ3/x240-bP7.jpg

URL of this playlist's first video's thumbnail image (240px height).

thumbnail_360_url

URL of this playlist's first video's thumbnail image (360px height).

publicreadable

Sample value: https://s2.dmcdn.net/3CQ3/x360-AdG.jpg

URL of this playlist's first video's thumbnail image (360px height).

thumbnail_480_url

URL of this playlist's first video's thumbnail image (480px height).

publicreadable

Sample value: https://s2.dmcdn.net/3CQ3/x480-kEp.jpg

URL of this playlist's first video's thumbnail image (480px height).

thumbnail_60_url

URL of this playlist's first video thumbnail image (60px height).

publicreadable

Sample value: https://s2.dmcdn.net/3CQ3/x60-epG.jpg

URL of this playlist's first video thumbnail image (60px height).

thumbnail_720_url

URL of this playlist's first video's thumbnail image (720px height).

publicreadable

Sample value: https://s2.dmcdn.net/3CQ3/x720-LZe.jpg

URL of this playlist's first video's thumbnail image (720px height).

thumbnail_url

URL of the thumbnail of this playlist's first video (raw, respecting full size ratio).

publicreadable

Sample value: https://s1.dmcdn.net/3CQ3.jpg

URL of the thumbnail of this playlist's first video (raw, respecting full size ratio).

updated_time

Date and time when this playlist was last updated.

publicreadable

Sample value: 1404129540

Date and time when this playlist was last updated.

videos_total

Total amount of videos in this playlist.

publicreadableminlength: 0

Sample value: 14

Total amount of videos in this playlist.

Playlist deprecated fields

These deprecated fields were once part of the API reference but are no longer maintained. Support is still available until the end of life date specified for each field.Do not use any of these for a new project as they may disappear without warning.

relative_updated_time

Localized date and time when this playlist was last updated (formatted).

publicreadable

Sample value: 42 minutes ago

Localized date and time when this playlist was last updated (formatted).

thumbnail_large_url

URL of the thumbnail of this playlist's first video (320px by 240px).

publicreadable

Sample value: https://s2.dmcdn.net/3CQ3/x240-bP7.jpg

URL of the thumbnail of this playlist's first video (320px by 240px).

thumbnail_medium_url

URL of the thumbnail of this playlist's first video (160px by 120px).

publicreadable

Sample value: https://s2.dmcdn.net/3CQ3/160x120-9HK.jpg

URL of the thumbnail of this playlist's first video (160px by 120px).

thumbnail_small_url

URL of the thumbnail of this playlist's first video (80px by 60px).

publicreadable

Sample value: https://s2.dmcdn.net/3CQ3/80x60-LKd.jpg

URL of the thumbnail of this playlist's first video (80px by 60px).

Playlist filters

Here is the list of filters you can use to limit a result set of playlist objects. You can use these by passing them as query-string parameters with your request.

ids

Limit the result set to this list of playlist identifiers (works only with xids).

ARRAYminlength: 1maxlength: 150

Sample value: xk2k3,x26m1j4,xkeg4

Limit the result set to this list of playlist identifiers (works only with xids).

owner

Limit the result set to playlists of this user.

Sample value: x6eejgm

Limit the result set to playlists of this user.

private

Limit the result set to private playlists

Sample value: true

Limit the result set to private playlists

search

Limit the result set to this full text search.

STRINGminlength: 1maxlength: 150

Sample value: football

Limit the result set to this full text search.

sort

Change the default result set ordering.

STRINGallowed values: recent, relevance, alpha, most, least, alphaaz, alphaza or changed

Sample value: relevance

Change the default result set ordering.

verified

Limit the result set to verified partner playlists.

Sample value: n/a

Limit the result set to verified partner playlists.

Playlist connections

Connections through the data API are used to link objects with each others. Some objects can only be accessed and/or created through connections since they have no point in existing on their own. Here is the list of connections available through the playlist object.

videos

List of videos contained in this playlist (in the order defined by its owner).
This connection joins an object of type playlist with a list of video objects.

publicreadablewritable

List of videos contained in this playlist (in the order defined by its owner).
This connection joins an object of type playlist with a list of video objects.

Read the playlist's videos connection

You can retrieve the list of videos connected to a playlist object by issuing a GET request to /playlist/<PLAYLIST_ID>/videos. You can specify the list of fields from the video objects to be returned using the fields parameter.
Test it with the API Explorer.

You can also see if any video is connected to an existing playlist object by issuing a GET request to /playlist/<PLAYLIST_ID>/videos/<VIDEO_ID>. This will return a list containing only the connected video object or an empty list if it is not connected.

Create a playlist's videos connection

You can connect videos to an existing playlist object one by one by issuing multiple POST requests to /playlist/<PLAYLIST_ID>/videos/<VIDEO_ID>.

You can connect multiple videos to an existing playlist object at once by issuing one POST request to /playlist/<PLAYLIST_ID>/videos?ids=<VIDEO_ID>,...,<VIDEO_ID>. Note that the order of the identifiers is saved.

Delete a playlist's videos connection

You can disconnect videos from a playlist object by issuing DELETE requests to /playlist/<PLAYLIST_ID>/videos/<VIDEO_ID>. You can also disconnect all videos at once by issuing a POST request to /playlist/<PLAYLIST_ID>/videos with an empty ids query-string parameter.
Test it with the API Explorer.

Subtitle

A subtitle object represents a file resource containing closed captioning for a given video.

Manipulating subtitles

To retrieve a specific subtitle object, perform a GET request on /subtitle/<SUBTITLE_ID>. By default, only a small number of fields marked as default are returned (such as the object identifier), please refer to the complete field list below. For help on requesting specific fields, see the fields selection section.

To create an object of type subtitle, perform a POST request onthe connection available through the video graph object.Join all the fields you want to specify and their value as an application/x-www-form-urlencoded payload. Please note that, for creation, some fields and/or specific query-string parameters could be mandatory, please refer to the field list below.

TypeParameterRequiredDescription
STRINGformatYes

Data format SRT only is supported, if you have an other format please convert it to SRT.

STRINGlanguageYes

Language of these subtitles.

URLurlYes

On GET, the URL pointing to the latest version of the subtitles.
On POST, URL pointing to the subtitle data in on of the valid formats.
You don't need to host the file, you can use the GET /file/upload API ressource to create a
temporary URL to a file of your own, just like when you upload a video source file.
If you host your own file, the file will be fetched and the subtitles URL will point to a local copy.

To delete an object of type subtitle, perform a DELETE request on /subtitle/<SUBTITLE_ID>. If you do not receive any error (empty result set), it means that the deletion was successful.

Sample subtitle API call: /video/x26m1j4/subtitles
Test it further with the API Explorer.

Subtitle fields

Here is the list of fields you can retrieve on every subtitle object. You can retrieve these using the fields query-string parameter on any graph object request. See the fields selection section for more information.

id

Unique object identifier (unique among all subtitles)

publicreadabledefault

Sample value: xt0xa46

Unique object identifier (unique among all subtitles)

item_type

Graph type of this object (hopefully subtitle)

publicreadableminlength: 1maxlength: 150

Sample value: subtitle

Graph type of this object (hopefully subtitle)

language

Language of these subtitles.

publicreadablefor creationdefaultminlength: 1maxlength: 150

Sample value: en

Language of these subtitles.

language_label

Subtitles's language in its own language.

publicreadableminlength: 1maxlength: 150

Sample value: Français

Subtitles's language in its own language.

url

On GET, the URL pointing to the latest version of the subtitles.
On POST, URL pointing to the subtitle data in on of the valid formats.
You don't need to host the file, you can use the GET /file/upload API ressource to create a
temporary URL to a file of your own, just like when you upload a video source file.
If you host your own file, the file will be fetched and the subtitles URL will point to a local copy.

publicreadablefor creation

Sample value: https://static2.dmcdn.net/static/video/354/170/120453:subtitle_en.srt?22

On GET, the URL pointing to the latest version of the subtitles.
On POST, URL pointing to the subtitle data in on of the valid formats.
You don't need to host the file, you can use the GET /file/upload API ressource to create a
temporary URL to a file of your own, just like when you upload a video source file.
If you host your own file, the file will be fetched and the subtitles URL will point to a local copy.

Subtitle filters

Here is the list of filters you can use to limit a result set of subtitle objects. You can use these by passing them as query-string parameters with your request.

language

Limit the result set to subtitles of this language.

STRINGminlength: 1maxlength: 150

Sample value: en

Limit the result set to subtitles of this language.

User

A user object represents a Dailymotion user account. Users are at the foundation of every other graph objects, since
most of them are created through —or owned by— users. Users also represent the main authentication vector to Dailymotion
services.

Manipulating users

To retrieve a specific user object, perform a GET request on /user/<USER_ID>. By default, only a small number of fields marked as default are returned (such as the object identifier), please refer to the complete field list below. For help on requesting specific fields, see the fields selection section.

To retrieve a list of user objects, perform a GET request on /users. You can also use one of the several connections available through the user and channel graph objects.You can then use filters (if any) to filter down the result set, see the filtering section for more information.

To edit an object of type user, perform a POST request on /user/<USER_ID>. Join all the fields you want to update and their new value as an application/x-www-form-urlencoded payload.

To delete an object of type user, perform a DELETE request on /user/<USER_ID>. If you do not receive any error (empty result set), it means that the deletion was successful.

Sample user API call: /user/x1fz4ii
Test it further with the API Explorer.

User fields

Here is the list of fields you can retrieve on every user object. You can retrieve these using the fields query-string parameter on any graph object request. See the fields selection section for more information.

active

Force user account active.

publicreadableallowed values: y or n

Sample value: y

Force user account active.

address

Postal address of this user.

privatereadableread scopes: userinfowritablewrite scopes: userinfominlength: 1maxlength: 150

Sample value: 715 5th Avenue

Postal address of this user.

advanced_statistics

advanced-statistics criteria of this user.

privatereadableread roles: user-managerwritablewrite roles: user-manager

Sample value: false

advanced-statistics criteria of this user.

avatar_120_url

URL of this user's avatar image (120px wide square).

publicreadable

Sample value: https://s1.dmcdn.net/AVM/120x120-bn1.png

URL of this user's avatar image (120px wide square).

avatar_190_url

URL of this user's avatar image (190px wide square).

publicreadable

Sample value: https://s1.dmcdn.net/AVM/190x190-ma1.png

URL of this user's avatar image (190px wide square).

avatar_240_url

URL of this user's avatar image (240px wide square).

publicreadable

Sample value: https://s1.dmcdn.net/AVM/240x240-sU1.png

URL of this user's avatar image (240px wide square).

avatar_25_url

URL of this user's avatar image (25px wide square).

publicreadable

Sample value: https://s1.dmcdn.net/AVM/25x25--w1.png

URL of this user's avatar image (25px wide square).

avatar_360_url

URL of this user's avatar image (360px wide square).

publicreadable

Sample value: https://s1.dmcdn.net/AVM/360x360-PM1.png

URL of this user's avatar image (360px wide square).

avatar_480_url

URL of this user's avatar image (480px wide square).

publicreadable

Sample value: https://s1.dmcdn.net/AVM/480x480-CD1.png

URL of this user's avatar image (480px wide square).

avatar_60_url

URL of this user's avatar image (60px wide square).

publicreadable

Sample value: https://s1.dmcdn.net/AVM/60x60-As1.png

URL of this user's avatar image (60px wide square).

avatar_720_url

URL of this user's avatar image (720px wide square).

publicreadable

Sample value: https://s1.dmcdn.net/AVM/720x720-Gr1.png

URL of this user's avatar image (720px wide square).

avatar_80_url

URL of this user's avatar image (80px wide square).

publicreadable

Sample value: https://s1.dmcdn.net/AVM/80x80-Rf1.png

URL of this user's avatar image (80px wide square).

avatar_url

URL of an image to change this user's avatar.

privatewrite-only

Sample value: http://www.example.org

URL of an image to change this user's avatar.

ban_from_partner_program

True if this user has the criteria ban-from-partner-program.

privatereadableread roles: user-managerwritablewrite roles: user-manager

Sample value: false

True if this user has the criteria ban-from-partner-program.

birthday

Birthday date of this user.

privatereadableread scopes: userinfowritablewrite scopes: userinfo

Sample value: 532652400

Birthday date of this user.

children_total

Total number of user children.

publicreadableminlength: 0

Sample value: 10

Total number of user children.

city

City of residence of this user.

publicreadablewritablewrite scopes: userinfominlength: 1maxlength: 150

Sample value: New York City

City of residence of this user.

country

Country of residence of this user.
Allowed values are ISO 3166-1 alpha-2 country codes.

publicreadablewritablewrite scopes: userinfominlength: 1maxlength: 150

Sample value: US

Country of residence of this user.
Allowed values are ISO 3166-1 alpha-2 country codes.

cover_100_url

URL of this user's cover image (height = 100px).

publicreadable

Sample value: https://s2.dmcdn.net/GJCWj/x100-qZJ.jpg

URL of this user's cover image (height = 100px).

cover_150_url

URL of this user's cover image (height = 150px).

publicreadable

Sample value: https://s2.dmcdn.net/GJCWj/x150-KrI.jpg

URL of this user's cover image (height = 150px).

cover_200_url

URL of this user's cover image (height = 200px).

publicreadable

Sample value: https://s2.dmcdn.net/GJCWj/x200--y5.jpg

URL of this user's cover image (height = 200px).

cover_250_url

URL of this user's cover image (height = 250px).

publicreadable

Sample value: https://s2.dmcdn.net/GJCWj/x250-u-x.jpg

URL of this user's cover image (height = 250px).

cover_url

URL of this user's cover image (original size).

publicreadablewritable

Sample value: http://www.example.org

URL of this user's cover image (original size).

created_time

Date and time when this user joined the site.

publicreadable

Sample value: 1287507036

Date and time when this user joined the site.

description

Comprehensive description of this user.

publicreadablewritableminlength: 1maxlength: 2000

Sample value: Hi, I'm <i>John</i> and I'm here to break <b>everything</b>!

Comprehensive description of this user.

email

Email address of this user.

privatereadableread scopes: emailwritablewrite scopes: email

Sample value: john.doe@provider.com

Email address of this user.

facebook_url

Facebook profile URL of this user.

publicreadablewritableminlength: 1maxlength: 400

Sample value: https://www.facebook.com/johndoe424

Facebook profile URL of this user.

first_name

First name of this user.

privatereadableread scopes: userinfowritablewrite scopes: userinfominlength: 1maxlength: 150

Sample value: John

First name of this user.

followers_total

Total amount of followers of this user.

publicreadableminlength: 0

Sample value: 42

Total amount of followers of this user.

following_total

Total amount of users this user is following.

publicreadableminlength: 0

Sample value: 42

Total amount of users this user is following.

fullname

Full name of this user.

privatereadableread scopes: userinfowritablewrite scopes: userinfominlength: 1maxlength: 50

Sample value: John Doe

Full name of this user.

gender

Gender of this user.

publicreadablewritableallowed values: male or female

Sample value: male

Gender of this user.

googleplus_url

Googleplus profile URL of this user.

publicreadablewritableminlength: 1maxlength: 150

Sample value: https://plus.google.com/u/0/johndoe424

Googleplus profile URL of this user.

id

Unique object identifier (unique among all users)

publicreadabledefault

Sample value: xkrzeot

Unique object identifier (unique among all users)

instagram_url

Instagram profile URL of this user.

publicreadablewritableminlength: 1maxlength: 150

Sample value: https://www.instagram.com/johndoe424

Instagram profile URL of this user.

is_following

True if the authenticated user is following this user. If no user is authenticated, it will always return false

publicreadable

Sample value: false

True if the authenticated user is following this user. If no user is authenticated, it will always return false

item_type

Graph type of this object (hopefully user)

publicreadableminlength: 1maxlength: 150

Sample value: user

Graph type of this object (hopefully user)

language

Language used by this user.
Allowed values are ISO-639-3 alpha-2 and alpha-3 language codes.

publicreadablewritableminlength: 1maxlength: 150

Sample value: en

Language used by this user.
Allowed values are ISO-639-3 alpha-2 and alpha-3 language codes.

last_name

Last name of this user.

privatereadableread scopes: userinfowritablewrite scopes: userinfominlength: 1maxlength: 150

Sample value: Doe

Last name of this user.

limits

Returns the various user limits like the maximum allowed duration and size per uploaded video etc.
This property can only be obtained for the currently logged in user.

privatereadableread scopes: userinfominlength: 1maxlength: 150

Sample value: {"video_duration":3600,"video_size":2147483648}

Returns the various user limits like the maximum allowed duration and size per uploaded video etc.
This property can only be obtained for the currently logged in user.

linkedin_url

LinkedIn profile URL of this user.

publicreadablewritableminlength: 1maxlength: 150

Sample value: https://www.linkedin.com/in/johndoe424

LinkedIn profile URL of this user.

parent

Identifier of this user's parent (use parent.screenname to access its user name).
You can retrieve sub-fields of this user object using the dot-notation (e.g.: parent.id).

publicreadable

Sample value: xzie5ju

Identifier of this user's parent (use parent.screenname to access its user name).
You can retrieve sub-fields of this user object using the dot-notation (e.g.: parent.id).

partner

When the partner field is set, the user auto-accepts the T&Cs (https://www.dailymotion.com/legal/partner) and becomes a partner.
Returns True if this user is a partner.

publicreadablewritable

Sample value: false

When the partner field is set, the user auto-accepts the T&Cs (https://www.dailymotion.com/legal/partner) and becomes a partner.
Returns True if this user is a partner.

pinterest_url

Pinterest profile URL of this user.

publicreadablewritablewrite scopes: userinfominlength: 1maxlength: 150

Sample value: https://pinterest.com/dailymotionusa/

Pinterest profile URL of this user.

playlists_total

Total amount of playlists of this user.

publicreadableminlength: 0

Sample value: 5

Total amount of playlists of this user.

reposts_total

The number of videos reposted by the user.

publicreadableminlength: 0

Sample value: 5

The number of videos reposted by the user.

revenues_claim_last_day

Total amount of net revenues in USD generated through claim the last day.

privatereadableread scopes: read_insightsminlength: 0

Sample value: 12

Total amount of net revenues in USD generated through claim the last day.

revenues_claim_last_month

Total amount of net revenues in USD generated through claim the last month.

privatereadableread scopes: read_insightsminlength: 0

Sample value: 310.2

Total amount of net revenues in USD generated through claim the last month.

revenues_claim_last_week

Total amount of net revenues in USD generated through claim in the last 7 sliding days.

privatereadableread scopes: read_insightsminlength: 0

Sample value: 80.7

Total amount of net revenues in USD generated through claim in the last 7 sliding days.

revenues_claim_total

Total amount of net revenues in USD generated through claim since the beginning.

privatereadableread scopes: read_insightsminlength: 0

Sample value: 2502.37

Total amount of net revenues in USD generated through claim since the beginning.

revenues_paidcontent_last_day

Total amount of net revenues in USD generated through the paid content the last day.

privatereadableread scopes: read_insightsminlength: 0

Sample value: 12

Total amount of net revenues in USD generated through the paid content the last day.

revenues_paidcontent_last_month

Total amount of net revenues in USD generated through the paid content the last month.

privatereadableread scopes: read_insightsminlength: 0

Sample value: 310.2

Total amount of net revenues in USD generated through the paid content the last month.

revenues_paidcontent_last_week

Total amount of net revenues in USD generated through the paid content in the last 7 sliding days.

privatereadableread scopes: read_insightsminlength: 0

Sample value: 80.7

Total amount of net revenues in USD generated through the paid content in the last 7 sliding days.

revenues_paidcontent_total

Total amount of net revenues in USD generated through the paid content since the beginning.

privatereadableread scopes: read_insightsminlength: 0

Sample value: 2502.37

Total amount of net revenues in USD generated through the paid content since the beginning.

revenues_video_last_day

Total amount of net revenues in USD generated through the video monetization the last day.

privatereadableread scopes: read_insightsminlength: 0

Sample value: 12

Total amount of net revenues in USD generated through the video monetization the last day.

revenues_video_last_month

Total amount of net revenues in USD generated through the video monetization the last month.

privatereadableread scopes: read_insightsminlength: 0

Sample value: 310.2

Total amount of net revenues in USD generated through the video monetization the last month.

revenues_video_last_week

Total amount of net revenues in USD generated through the video monetization in the last 7 sliding days.

privatereadableread scopes: read_insightsminlength: 0

Sample value: 80.7

Total amount of net revenues in USD generated through the video monetization in the last 7 sliding days.

revenues_video_total

Total amount of net revenues in USD generated through the video monetization since the beginning.

privatereadableread scopes: read_insightsminlength: 0

Sample value: 2502.37

Total amount of net revenues in USD generated through the video monetization since the beginning.

revenues_website_last_day

Total amount of net revenues in USD generated through the website monetization the last day.

privatereadableread scopes: read_insightsminlength: 0

Sample value: 12

Total amount of net revenues in USD generated through the website monetization the last day.

revenues_website_last_month

Total amount of net revenues in USD generated through the website monetization the last month.

privatereadableread scopes: read_insightsminlength: 0

Sample value: 310.2

Total amount of net revenues in USD generated through the website monetization the last month.

revenues_website_last_week

Total amount of net revenues in USD generated through the website monetization in the last 7 sliding days.

privatereadableread scopes: read_insightsminlength: 0

Sample value: 80.7

Total amount of net revenues in USD generated through the website monetization in the last 7 sliding days.

revenues_website_total

Total amount of net revenues in USD generated through the website monetization since the beginning.

privatereadableread scopes: read_insightsminlength: 0

Sample value: 2502.37

Total amount of net revenues in USD generated through the website monetization since the beginning.

screenname

Returns this user's full name or login depending on the user's preferences.

publicreadablewritablewrite scopes: userinfodefaultminlength: 1maxlength: 50

Sample value: johndoe424

Returns this user's full name or login depending on the user's preferences.

status

Current user account status.

publicreadableallowed values: pending-activation, disabled, active or unknown

Sample value: active

Current user account status.

twitter_url

Twitter profile URL of this user.

publicreadablewritableminlength: 1maxlength: 150

Sample value: https://twitter.com/johndoe424

Twitter profile URL of this user.

url

URL of this user's profile on Dailymotion.

publicreadable

Sample value: https://www.dailymotion.com/johndoe424

URL of this user's profile on Dailymotion.

username

User account credentials login.

publicreadablewritablewrite scopes: userinfominlength: 1maxlength: 150

Sample value: johndoe424

User account credentials login.

verified

True if this user is a verified partner.

publicreadablewritable

Sample value: false

True if this user is a verified partner.

videos_total

Total amount of public videos of this user.

publicreadableminlength: 0

Sample value: 27

Total amount of public videos of this user.

views_total

Total aggregated number of views on all of this user's videos.

publicreadableminlength: 0

Sample value: 1239873

Total aggregated number of views on all of this user's videos.

website_url

Personal website URL of this user.

publicreadablewritableminlength: 1maxlength: 150

Sample value: https://www.johndoe424.net

Personal website URL of this user.

User deprecated fields

These deprecated fields were once part of the API reference but are no longer maintained. Support is still available until the end of life date specified for each field.Do not use any of these for a new project as they may disappear without warning.

analytics_services

Analytics service of this user.

privatereadable

Sample value: { "xiti": { "website_id": 1567829778, "subdomain": "www.mysite.com", "second_level_id": 68965678, "internal_domain": "test.com" }, "google": "UA-12345-1", "estat":"123456789" }

Analytics service of this user.

avatar_large_url

URL of this user's avatar image (160px wide square).

publicreadable

Sample value: http://www.example.org

URL of this user's avatar image (160px wide square).

avatar_medium_url

URL of this user's avatar image (80px wide square).

publicreadable

Sample value: http://www.example.org

URL of this user's avatar image (80px wide square).

avatar_small_url

URL of this user's avatar image (40px wide square).

publicreadable

Sample value: http://www.example.org

URL of this user's avatar image (40px wide square).

background_url

URL of this user's background image (Max 1680px by 2000px).

publicreadablewritable

Sample value: http://www.example.org

URL of this user's background image (Max 1680px by 2000px).

banner_url

URL of this user's banner image (Max 970px by 120px).

publicreadablewritable

Sample value: http://www.example.org

URL of this user's banner image (Max 970px by 120px).

fans_total

Total amount of fans of this user.

publicreadable

Sample value: 42

Total amount of fans of this user.

live_notification_followed_onair

True if this user has authorized live notifications, false otherwise.

publicreadablewritable

Sample value: false

True if this user has authorized live notifications, false otherwise.

type

Type of user account.

publicreadablewritable

Sample value: ugc

Type of user account.

videostar

Showcased video of this user.
You can retrieve sub-fields of this video object using the dot-notation (e.g.: videostar.id).

publicreadablewritable

Sample value: xzie5ju

Showcased video of this user.
You can retrieve sub-fields of this video object using the dot-notation (e.g.: videostar.id).

User filters

Here is the list of filters you can use to limit a result set of user objects. You can use these by passing them as query-string parameters with your request.

country

Country of residence of this user.
Allowed values are ISO 3166-1 alpha-2 country codes.

STRINGminlength: 1maxlength: 150

Sample value: US

Country of residence of this user.
Allowed values are ISO 3166-1 alpha-2 country codes.

exclude_ids

List of user ids to exclude from the result set.

ARRAYminlength: 1maxlength: 150

Sample value: xk2k3,x26m1j4,xkeg4

List of user ids to exclude from the result set.

flags

List of simple boolean flags available to reduce the result set.

ARRAYminlength: 1maxlength: 150allowed values: mostpopular, recommended, partner or verified

Sample value: mostpopular,partner

List of simple boolean flags available to reduce the result set.

ids

Limit the result set to this list of user channels identifiers.

ARRAYminlength: 1maxlength: 150

Sample value: xk2k3,x1fz4ii,xw83x45

Limit the result set to this list of user channels identifiers.

language

Limit the result set to users using this language.

STRINGminlength: 1maxlength: 150

Sample value: en

Limit the result set to users using this language.

mostpopular

Limit the result set to the most popular users.

Sample value: n/a

Limit the result set to the most popular users.

parent

Limit the result set to children of this user.

Sample value: xzie5ju

Limit the result set to children of this user.

partner

Limit the result set to partner users.

Sample value: n/a

Limit the result set to partner users.

Sample value: n/a

Limit the result set to recommended users.

recommendedforchannel

Limit the result set to this channel's top users.

STRINGminlength: 1maxlength: 150

Sample value: news

Limit the result set to this channel's top users.

sort

Change the default result set ordering.
Notes:

  • Deprecated sorts (recent, daily, weekly, monthly, rated, random, alpha, alphaZA, alphaZAFullname)
STRINGallowed values: relevance, popular, activity or recent

Sample value: popular

Change the default result set ordering.
Notes:

  • Deprecated sorts (recent, daily, weekly, monthly, rated, random, alpha, alphaZA, alphaZAFullname)
usernames

Limit the results set to users with a list of usernames

ARRAYminlength: 1maxlength: 150

Sample value: rs,spi0n

Limit the results set to users with a list of usernames

verified

Limit the result set to verified partner users.

Sample value: n/a

Limit the result set to verified partner users.

User deprecated filters

These deprecated filters were once part of the API reference but are no longer maintained. Support is still available until the end of life date specified for each filter.Do not use any of these for a new project as they may disappear without warning.

filters

List of simple boolean filters available to reduce the result set.

Sample value: mostpopular

List of simple boolean filters available to reduce the result set.

list

Limit the result set to this user list.

Sample value: recommended

Limit the result set to this user list.

search

Limit the result set to this full text search.

Sample value: john

Limit the result set to this full text search.

User connections

Connections through the data API are used to link objects with each others. Some objects can only be accessed and/or created through connections since they have no point in existing on their own. Here is the list of connections available through the user object.

children

List of this user's children.
This connection joins an object of type user with a list of user objects.

publicreadablewritable

List of this user's children.
This connection joins an object of type user with a list of user objects.

Read the user's children connection

You can retrieve the list of children connected to a user object by issuing a GET request to /me/children. You can specify the list of fields from the user objects to be returned using the fields parameter.
Test it with the API Explorer.

You can also see if any user is connected to an existing user object by issuing a GET request to /me/children/<USER_ID>. This will return a list containing only the connected user object or an empty list if it is not connected.

Create a user's children connection

You can connect children to an existing user object one by one by issuing multiple POST requests to /me/children/<USER_ID>.

Delete a user's children connection

You can disconnect children from a user object by issuing DELETE requests to /me/children/<USER_ID>. You can also disconnect all children at once by issuing a POST request to /me/children with an empty ids query-string parameter.
Test it with the API Explorer.

features

List of videos featured by this user.
This connection joins an object of type user with a list of video objects.

publicreadablewritablewrite scopes: manage_features

List of videos featured by this user.
This connection joins an object of type user with a list of video objects.

Read the user's features connection

You can retrieve the list of features connected to a user object by issuing a GET request to /me/features. You can specify the list of fields from the video objects to be returned using the fields parameter.
Test it with the API Explorer.

You can also see if any video is connected to an existing user object by issuing a GET request to /me/features/<VIDEO_ID>. This will return a list containing only the connected video object or an empty list if it is not connected.

Create a user's features connection

You can connect features to an existing user object one by one by issuing multiple POST requests to /me/features/<VIDEO_ID>.

Delete a user's features connection

You can disconnect features from a user object by issuing DELETE requests to /me/features/<VIDEO_ID>. You can also disconnect all features at once by issuing a POST request to /me/features with an empty ids query-string parameter.
Test it with the API Explorer.

followers

List of this user's followers.
This connection joins an object of type user with a list of user objects.

publicreadable

List of this user's followers.
This connection joins an object of type user with a list of user objects.

Read the user's followers connection

You can retrieve the list of followers connected to a user object by issuing a GET request to /me/followers. You can specify the list of fields from the user objects to be returned using the fields parameter.
Test it with the API Explorer.

following

List of users followed by this user.
This connection joins an object of type user with a list of user objects.

publicreadablewritablewrite scopes: manage_subscriptions

List of users followed by this user.
This connection joins an object of type user with a list of user objects.

Read the user's following connection

You can retrieve the list of following connected to a user object by issuing a GET request to /me/following. You can specify the list of fields from the user objects to be returned using the fields parameter.
Test it with the API Explorer.

You can also see if any user is connected to an existing user object by issuing a GET request to /me/following/<USER_ID>. This will return a list containing only the connected user object or an empty list if it is not connected.

Create a user's following connection

You can connect following to an existing user object one by one by issuing multiple POST requests to /me/following/<USER_ID>.

Delete a user's following connection

You can disconnect following from a user object by issuing DELETE requests to /me/following/<USER_ID>. You can also disconnect all following at once by issuing a POST request to /me/following with an empty ids query-string parameter.
Test it with the API Explorer.

likes

List of videos liked by the user.
This connection joins an object of type user with a list of video objects.

publicreadablewritablewrite scopes: manage_likes

List of videos liked by the user.
This connection joins an object of type user with a list of video objects.

Read the user's likes connection

You can retrieve the list of likes connected to a user object by issuing a GET request to /me/likes. You can specify the list of fields from the video objects to be returned using the fields parameter.
Test it with the API Explorer.

You can also see if any video is connected to an existing user object by issuing a GET request to /me/likes/<VIDEO_ID>. This will return a list containing only the connected video object or an empty list if it is not connected.

Create a user's likes connection

You can connect likes to an existing user object one by one by issuing multiple POST requests to /me/likes/<VIDEO_ID>.

Delete a user's likes connection

You can disconnect likes from a user object by issuing DELETE requests to /me/likes/<VIDEO_ID>. You can also disconnect all likes at once by issuing a POST request to /me/likes with an empty ids query-string parameter.
Test it with the API Explorer.

parents

List of this user's parents.
This connection joins an object of type user with a list of user objects.

publicreadablewritable

List of this user's parents.
This connection joins an object of type user with a list of user objects.

Read the user's parents connection

You can retrieve the list of parents connected to a user object by issuing a GET request to /me/parents. You can specify the list of fields from the user objects to be returned using the fields parameter.
Test it with the API Explorer.

You can also see if any user is connected to an existing user object by issuing a GET request to /me/parents/<USER_ID>. This will return a list containing only the connected user object or an empty list if it is not connected.

Create a user's parents connection

You can connect parents to an existing user object one by one by issuing multiple POST requests to /me/parents/<USER_ID>.

Delete a user's parents connection

You can disconnect parents from a user object by issuing DELETE requests to /me/parents/<USER_ID>. You can also disconnect all parents at once by issuing a POST request to /me/parents with an empty ids query-string parameter.
Test it with the API Explorer.

relations

List of user accounts related to this user through their parents.
This connection joins an object of type user with a list of user objects.

publicreadable

List of user accounts related to this user through their parents.
This connection joins an object of type user with a list of user objects.

Read the user's relations connection

You can retrieve the list of relations connected to a user object by issuing a GET request to /me/relations. You can specify the list of fields from the user objects to be returned using the fields parameter.
Test it with the API Explorer.

subscriptions

List of videos from the channels the user follow.
This connection joins an object of type user with a list of video objects.

publicreadable

List of videos from the channels the user follow.
This connection joins an object of type user with a list of video objects.

Read the user's subscriptions connection

You can retrieve the list of subscriptions connected to a user object by issuing a GET request to /me/subscriptions. You can specify the list of fields from the video objects to be returned using the fields parameter.
Test it with the API Explorer.

videos

List of videos uploaded by this user.
This connection joins an object of type user with a list of video objects.

publicreadablewritablewrite scopes: manage_videos

List of videos uploaded by this user.
This connection joins an object of type user with a list of video objects.

Read the user's videos connection

You can retrieve the list of videos connected to a user object by issuing a GET request to /me/videos. You can specify the list of fields from the video objects to be returned using the fields parameter.
Test it with the API Explorer.

Create a user's videos connection

You can create a new video object and automatically connect it to an existing user object by issuing a POST request to /me/videoswith the following parameters.

TypeParameterRequiredDescription
STRINGcontent_providerNo

Content provider name.

In return, you will receive a dict value containing the newly created object, including its identifier.
Test it with the API Explorer.

Delete a user's videos connection

You can delete a video object connected to a user object the same way you would if it wasn't attached, that is by issuing a DELETE request to /video/<VIDEO_ID>.
Test it with the API Explorer.

watchlater

List of watch later videos.
This connection joins an object of type user with a list of video objects.

publicreadablewritablewrite scopes: manage_videos

List of watch later videos.
This connection joins an object of type user with a list of video objects.

Read the user's watchlater connection

You can retrieve the list of watchlater connected to a user object by issuing a GET request to /me/watchlater. You can specify the list of fields from the video objects to be returned using the fields parameter.
Test it with the API Explorer.

You can also see if any video is connected to an existing user object by issuing a GET request to /me/watchlater/<VIDEO_ID>. This will return a list containing only the connected video object or an empty list if it is not connected.

Create a user's watchlater connection

You can connect watchlater to an existing user object one by one by issuing multiple POST requests to /me/watchlater/<VIDEO_ID>.

Delete a user's watchlater connection

You can disconnect watchlater from a user object by issuing DELETE requests to /me/watchlater/<VIDEO_ID>. You can also disconnect all watchlater at once by issuing a POST request to /me/watchlater with an empty ids query-string parameter.
Test it with the API Explorer.

User deprecated connections

These deprecated connections were once part of the API reference but are no longer maintained. Support is still available until the end of life date specified for each filter.Do not use any of these for a new project as they may disappear without warning.

favorites

List of videos favorited by this user.
This connection joins an object of type user with a list of video objects.

publicreadablewritable

List of videos favorited by this user.
This connection joins an object of type user with a list of video objects.

Read the user's favorites connection

You can retrieve the list of favorites connected to a user object by issuing a GET request to /me/favorites. You can specify the list of fields from the video objects to be returned using the fields parameter.
Test it with the API Explorer.

You can also see if any video is connected to an existing user object by issuing a GET request to /me/favorites/<VIDEO_ID>. This will return a list containing only the connected video object or an empty list if it is not connected.

Create a user's favorites connection

You can connect favorites to an existing user object one by one by issuing multiple POST requests to /me/favorites/<VIDEO_ID>.

Delete a user's favorites connection

You can disconnect favorites from a user object by issuing DELETE requests to /me/favorites/<VIDEO_ID>. You can also disconnect all favorites at once by issuing a POST request to /me/favorites with an empty ids query-string parameter.
Test it with the API Explorer.

history

List of recently watched videos
This connection joins an object of type user with a list of video objects.

publicreadablewritable

List of recently watched videos
This connection joins an object of type user with a list of video objects.

Read the user's history connection

You can retrieve the list of history connected to a user object by issuing a GET request to /me/history. You can specify the list of fields from the video objects to be returned using the fields parameter.
Test it with the API Explorer.

You can also see if any video is connected to an existing user object by issuing a GET request to /me/history/<VIDEO_ID>. This will return a list containing only the connected video object or an empty list if it is not connected.

Create a user's history connection

You can connect history to an existing user object one by one by issuing multiple POST requests to /me/history/<VIDEO_ID>.

Delete a user's history connection

You can disconnect history from a user object by issuing DELETE requests to /me/history/<VIDEO_ID>. You can also disconnect all history at once by issuing a POST request to /me/history with an empty ids query-string parameter.
Test it with the API Explorer.

publicreadable

List of users recommended to this user.
This connection joins an object of type user with a list of user objects.

You can retrieve the list of recommended connected to a user object by issuing a GET request to /me/recommended. You can specify the list of fields from the user objects to be returned using the fields parameter.
Test it with the API Explorer.

Video

The video object is the foundation of Dailymotion' service. Videos are metadata containers wrapped around media
streams and can be accessed either directly or through several connections through the Data API.

Manipulating videos

To retrieve a specific video object, perform a GET request on /video/<VIDEO_ID>. By default, only a small number of fields marked as default are returned (such as the object identifier), please refer to the complete field list below. For help on requesting specific fields, see the fields selection section.

To retrieve a list of video objects, perform a GET request on /videos. You can also use one of the several connections available through the user,video,playlist and channel graph objects.You can then use filters (if any) to filter down the result set, see the filtering section for more information.

To create an object of type video, perform a POST request onthe connection available through the user graph object.Join all the fields you want to specify and their value as an application/x-www-form-urlencoded payload. Please note that, for creation, some fields and/or specific query-string parameters could be mandatory, please refer to the field list below.

TypeParameterRequiredDescription
STRINGcontent_providerNo

Content provider name.

To edit an object of type video, perform a POST request on /video/<VIDEO_ID>. Join all the fields you want to update and their new value as an application/x-www-form-urlencoded payload.

To delete an object of type video, perform a DELETE request on /video/<VIDEO_ID>. If you do not receive any error (empty result set), it means that the deletion was successful.

Sample video API call: /video/x26m1j4
Test it further with the API Explorer.

Video fields

Here is the list of fields you can retrieve on every video object. You can retrieve these using the fields query-string parameter on any graph object request. See the fields selection section for more information.

advertising_custom_target

Returns the custom target value for

given video. This value is sent to Liverail as an LR_DM_ADPARAM param.
This can be used for targeting in liverail.

privatereadableread roles: can-manage-adswritablewrite roles: can-manage-adsminlength: 1maxlength: 150

Sample value: string example

Returns the custom target value for

given video. This value is sent to Liverail as an LR_DM_ADPARAM param.
This can be used for targeting in liverail.

advertising_instream_blocked

True if the owner blocked instream ads on this video.

publicreadablewritablewrite roles: user:partnerwrite scopes: manage_videos

Sample value: true

True if the owner blocked instream ads on this video.

allow_embed

True if this video can be embedded outside of Dailymotion.

publicreadablewritablewrite scopes: manage_videos

Sample value: false

True if this video can be embedded outside of Dailymotion.

allowed_in_playlists

True if this video can be added to playlists.

publicreadablewritable

Sample value: true

True if this video can be added to playlists.

aspect_ratio

Aspect ratio of this video (i.e.: 1.33333 for 4/3, 1.77777 for 16/9...).

publicreadableminlength: 0

Sample value: 1.7777777

Aspect ratio of this video (i.e.: 1.33333 for 4/3, 1.77777 for 16/9...).

audience

Current live stream audience.
null if the audience shouldn't be taken into consideration.

publicreadableminlength: 0

Sample value: 450

Current live stream audience.
null if the audience shouldn't be taken into consideration.

audience_total

Total live stream audience since stream creation.
null if the audience shouldn't be taken into account.

publicreadableminlength: 0

Sample value: 2457

Total live stream audience since stream creation.
null if the audience shouldn't be taken into account.

audience_url

Audience meter URL to be used for this video. null if the audience shouldn't be taken into account.

privatereadableread roles: content-partner or can-read-live-audience-url

Sample value: https://195.8.215.201/vxqjkf1

Audience meter URL to be used for this video. null if the audience shouldn't be taken into account.

available_formats

List of available stream formats for this video.

publicreadableallowed values: l1, l2, ld, sd, hq, hd720, hd1080, uhd1440 or uhd2160

Sample value: ld,sd,hq,hd720,hd1080

List of available stream formats for this video.

channel

Channel of this video.
You can retrieve sub-fields of this channel object using the dot-notation (e.g.: channel.id).

publicreadablewritabledefault

Sample value: news

Channel of this video.
You can retrieve sub-fields of this channel object using the dot-notation (e.g.: channel.id).

checksum

Video file hash.

publicreadableminlength: 1maxlength: 150

Sample value: "64f771f2fccff6cef46f2f34112a67ff8e940103"

Video file hash.

claim_rule_blocked_countries

List of countries where this video is blocked by the claimer. A list of country codes (ISO 3166-1 alpha-2) e.g.: ["FR", "US"] will block this video in France and US.

privatereadableread roles: can-read-claim-rulesread scopes: manage_claim_rulesminlength: 1maxlength: 150

Sample value: FR,US

List of countries where this video is blocked by the claimer. A list of country codes (ISO 3166-1 alpha-2) e.g.: ["FR", "US"] will block this video in France and US.

claim_rule_monetized_countries

List of countries where this video is monetized by the claimer. A list of country codes (ISO 3166-1 alpha-2) e.g.: ["FR", "US"] will monetize this video in France and US.

privatereadableread roles: can-read-claim-rulesread scopes: manage_claim_rulesminlength: 1maxlength: 150

Sample value: FR,US

List of countries where this video is monetized by the claimer. A list of country codes (ISO 3166-1 alpha-2) e.g.: ["FR", "US"] will monetize this video in France and US.

claim_rule_tracked_countries

List of countries where this video is tracked by the claimer. A list of country codes (ISO 3166-1 alpha-2) e.g.: ["FR", "US"] will track this video in France and US but it won't be blocked nor monetized by the claimer.

privatereadableread roles: can-read-claim-rulesread scopes: manage_claim_rulesminlength: 1maxlength: 150

Sample value: FR,US

List of countries where this video is tracked by the claimer. A list of country codes (ISO 3166-1 alpha-2) e.g.: ["FR", "US"] will track this video in France and US but it won't be blocked nor monetized by the claimer.

content_provider_id

Content provider identifier.

privatereadableread roles: content-partner, can-manage-video-provider or can-read-video-providerwritablewrite roles: content-partner or can-manage-video-providerminlength: 1maxlength: 150

Sample value: UAMM20701001

Content provider identifier.

country

Country of this video (declarative, may be null).
Allowed values are ISO 3166-1 alpha-2 country codes.

publicreadablewritableminlength: 1maxlength: 150

Sample value: US

Country of this video (declarative, may be null).
Allowed values are ISO 3166-1 alpha-2 country codes.

created_time

Date and time when this video was uploaded.

publicreadable

Sample value: 1287507036

Date and time when this video was uploaded.

custom_classification

List of customizable values (maximum of 3 values)

publicreadablewritablewrite scopes: manage_videosminlength: 1maxlength: 100

Sample value: ref1,ref2,ref3

List of customizable values (maximum of 3 values)

description

Comprehensive description of this
video. Maximumm length is set to 3000 (5000 for partners).

publicreadablewritableminlength: 1maxlength: 10000

Sample value: This is a sample description for my video.

Comprehensive description of this
video. Maximumm length is set to 3000 (5000 for partners).

duration

Duration of this video in seconds.

publicreadableminlength: 0

Sample value: 423

Duration of this video in seconds.

embed_html

HTML embedding code.

publicreadableminlength: 1maxlength: 150

Sample value: <iframe frameborder="0" src="https://www.dailymotion.com/embed/video/x26m1j4" width="480" height="270"

HTML embedding code.

embed_url

URL to embed this video.

publicreadable

Sample value: https://www.dailymotion.com/embed/video/x26m1j4

URL to embed this video.

encoding_progress

When this video status field is set to processing, this parameter indicates a number
between 0 and 100 corresponding to the percentage of encoding already completed. When this value
reaches 100, it's possible for the owner to play his video. For other statuses this parameter returns -1.
See also publishing_progress.

publicreadableminlength: -1maxlength: 100

Sample value: 22

When this video status field is set to processing, this parameter indicates a number
between 0 and 100 corresponding to the percentage of encoding already completed. When this value
reaches 100, it's possible for the owner to play his video. For other statuses this parameter returns -1.
See also publishing_progress.

end_time

End date and time of this live stream.

publicreadablewritable

Sample value: 1404129540

End date and time of this live stream.

expiry_date

Date and time after which this video will be made private. Beware: if the video was originally
defined as private, setting this value will automatically make it public between its
publish_date and expiry_date. This setting only affects the
visibility of the video, it will still be available to anyone who knows how to access the video's
private URL even after this date. Omitting this value while setting a past
publish_date never expires the video.
Set to null (recommended) or a date after Jan 19th 2038 to reset this parameter.

Note : Only verified partners are allowed to manage video availability and expiration dates.

privatereadableread scopes: manage_videoswritablewrite scopes: manage_videos

Sample value: 1287507036

Date and time after which this video will be made private. Beware: if the video was originally
defined as private, setting this value will automatically make it public between its
publish_date and expiry_date. This setting only affects the
visibility of the video, it will still be available to anyone who knows how to access the video's
private URL even after this date. Omitting this value while setting a past
publish_date never expires the video.
Set to null (recommended) or a date after Jan 19th 2038 to reset this parameter.

Note : Only verified partners are allowed to manage video availability and expiration dates.

expiry_date_availability

By default, videos reaching their expiry_date are
still available to anyone who knows how to access their private URL.
Set this to false to disable this behavior.

privatereadableread roles: can-manage-video-availabilitywritablewrite roles: can-manage-video-availability

Sample value: true

By default, videos reaching their expiry_date are
still available to anyone who knows how to access their private URL.
Set this to false to disable this behavior.

expiry_date_deletion

By default, videos are deleted (after a grace period) when their
expiry_date is reached.
Set this to false to disable this behavior.

Note : Only verified partners are allowed to manage video availability and expiration dates.

privatereadableread scopes: manage_videoswritablewrite scopes: manage_videos

Sample value: true

By default, videos are deleted (after a grace period) when their
expiry_date is reached.
Set this to false to disable this behavior.

Note : Only verified partners are allowed to manage video availability and expiration dates.

explicit

True if this video is explicit. Warning: It's not possible to remove this flag once set.

publicreadablewritable

Sample value: true

True if this video is explicit. Warning: It's not possible to remove this flag once set.

filmstrip_60_url

URL of the filmstrip sprite of this video. 100 images arranged in a 10x10 grid.
Not available for short videos.

publicreadable

Sample value: https://static2.dmcdn.net/static/video/184/210/46012481:jpeg_preview_contact.jpg?20120608161743

URL of the filmstrip sprite of this video. 100 images arranged in a 10x10 grid.
Not available for short videos.

geoblocking

List of countries where this video is or isn't accessible.
A list of country codes (ISO 3166-1 alpha-2) starting with the deny or allow (default)
keyword to define if this is a black or a whitelist, e.g.: both ["allow", "fr", "us", "it"]
and ["fr", "us", "it"] will allow this video to be accessed in France, US and Italy and deny
all other countries. On the other hand, ["deny", "us", "fr"] will deny access to this video
in the US and France and allow it everywhere else. An empty list [] or simply ["allow"]
(the default) will revert the behavior to allow from everywhere.
To set geoblocking on your videos, you have to be a Dailymotion partner.

publicreadablewritablewrite scopes: manage_videosminlength: 1maxlength: 150

Sample value: allow,fr,us,it

List of countries where this video is or isn't accessible.
A list of country codes (ISO 3166-1 alpha-2) starting with the deny or allow (default)
keyword to define if this is a black or a whitelist, e.g.: both ["allow", "fr", "us", "it"]
and ["fr", "us", "it"] will allow this video to be accessed in France, US and Italy and deny
all other countries. On the other hand, ["deny", "us", "fr"] will deny access to this video
in the US and France and allow it everywhere else. An empty list [] or simply ["allow"]
(the default) will revert the behavior to allow from everywhere.
To set geoblocking on your videos, you have to be a Dailymotion partner.

geoloc

Geolocalization for this video. Result is an array with the longitude and latitude using point notation.
Longitude range is from -180.0 (West) to 180.0 (East).
Latitude range is from -90.0 (South) to 90.0 (North).

publicreadablewritableminlength: 1maxlength: 150

Sample value: -122.40061283112,37.782112059896

Geolocalization for this video. Result is an array with the longitude and latitude using point notation.
Longitude range is from -180.0 (West) to 180.0 (East).
Latitude range is from -90.0 (South) to 90.0 (North).

height

Height of this video from the source (px).

publicreadableminlength: 0

Sample value: 240

Height of this video from the source (px).

id

Unique object identifier (unique among all videos)

publicreadabledefault

Sample value: xbe2dky

Unique object identifier (unique among all videos)

item_type

Graph type of this object (hopefully video)

publicreadableminlength: 1maxlength: 150

Sample value: video

Graph type of this object (hopefully video)

language

Language of this video.
This value is declarative and corresponds to the user-declared spoken language of the video.
Allowed values are ISO-639-3 alpha-2 and alpha-3 language codes.

publicreadablewritableminlength: 1maxlength: 150

Sample value: en

Language of this video.
This value is declarative and corresponds to the user-declared spoken language of the video.
Allowed values are ISO-639-3 alpha-2 and alpha-3 language codes.

liked_at

Date and time when this video was liked by the user.

publicreadable

Sample value: 1287507036

Date and time when this video was liked by the user.

likes_total

Total amount of times this video has been liked.

publicreadableminlength: 0

Sample value: 102

Total amount of times this video has been liked.

live_ad_break_end_time

Estimated time for the end of the commercial ad break.

privatereadableread roles: user:partnerread scopes: manage_videos

Sample value: 1287507036

Estimated time for the end of the commercial ad break.

live_ad_break_launch

Launches a given number of ad breaks for this live stream.

privatewrite-onlywrite roles: user:partnerwrite scopes: manage_videosminlength: 1maxlength: 1

Sample value: 1

Launches a given number of ad breaks for this live stream.

live_ad_break_remaining

Returns the number of remaining ad break for this live stream.

privatereadableread roles: user:partnerread scopes: manage_videosminlength: 0

Sample value: 2

Returns the number of remaining ad break for this live stream.

live_airing_time

Date and time when this live stream went on-air for the last time

publicreadable

Sample value: 1287507036

Date and time when this live stream went on-air for the last time

live_audio_bitrate

Live stream information: audio bitrate (b/s)

publicreadableminlength: 0

Sample value: 125928

Live stream information: audio bitrate (b/s)

live_ingests

List of available live ingests.

publicreadableminlength: 1maxlength: 150

Sample value: {"Default":"publish.dailymotion.com"}

List of available live ingests.

live_publish_url

URL to publish the live source stream on.
The current logged in user need to own this video in order to retrieve this field.

publicreadable

Sample value: rtmp://publish.dailymotion.com/publish-dm/x26m1j4?auth=...

URL to publish the live source stream on.
The current logged in user need to own this video in order to retrieve this field.

Reading and/or editing this field requires some contextual information. Please refer to the API global parameters list for more information about context.

ContextDescriptionRequiredFor readingFor writing
refresh

Pass this context value (refresh=true) if you need to refresh the stream key for the publish URL.

NoYesNo
log_external_view_urls

A one time usage list of URLs to be called in order log a view on this video made on a

third party site (i.e.: embed player). See the log_view_urls field for format.

privatereadableread roles: content-partner or can-log-video-viewsminlength: 1maxlength: 150

Sample value: {"viewlog":"https://logger.dm.com/...","comscore":"https://comscore.com/..."}

A one time usage list of URLs to be called in order log a view on this video made on a

third party site (i.e.: embed player). See the log_view_urls field for format.

Reading and/or editing this field requires some contextual information. Please refer to the API global parameters list for more information about context.

ContextDescriptionRequiredFor readingFor writing
autoplay

Whether the video autoplays or not.

NoYesNo
curator

Login or id of a user that acts as curator.

NoYesNo
client_embedder

Value of the app query parameter passed by the client.

NoYesNo
embedder_url

URL of the page that embeds the video.

NoYesNo
referer_url

URL of the page that led the user to the current page.

NoYesNo
related

Array that describes the related settings used at the time the API call is made:

{"algo": "foo", "from_algo": "bar", "gravity": {"gr_reco": "42", "rec_id": "12"}, "tracker": "foo.watch"}

NoYesNo
sid

Session id of the current reader.

NoYesNo
tracking_urls

Array of custom tracking URLs that respect the log_view_url specification.

NoYesNo
log_view_url

A one time usage URL to log a view on this video.
This URL expires after a short period of time, thus you should request it at the last moment.

privatereadableread roles: content-partner or can-log-video-views

Sample value: https://www.dailymotion.com/logger/video/access/x26m1j4?session_id=...

A one time usage URL to log a view on this video.
This URL expires after a short period of time, thus you should request it at the last moment.

Reading and/or editing this field requires some contextual information. Please refer to the API global parameters list for more information about context.

ContextDescriptionRequiredFor readingFor writing
embedder_url

URL of the page that embeds the video.

NoYesNo
referer_url

URL of the page that led the user to the current page.

NoYesNo
log_view_urls

A one time usage list of URLs that will be called in order to log video view events.

The format of the dict is a key containing the label of the log URL + some directive on when to call it and the URL as value.

If the app encounters a key format it doesn't understand, it should skip it with a console warning.

The format of the key is as follows: <label>(@<rule>)?

The label value is a alphanumeric string : [A-Za-z0-9]+

If no @ followed by rules is present, it means the URL has to be called as soon as the video starts (equivalent to label@0).

When the "mode" field of the video object is "live" and any '%' character is found in the rules, the key should be skipped with a console warning.

The rule format is as follows: <delay>([,|]<delay>)*(/<recurrence>)?

The delay value can contain time spent in seconds (## or ##s) or minutes (##m), or in percentage of video duration (##%).

Delays can be separated by comas (all delays apply) or pipes (first match win, others are ignored).

It is not allowed to mix comas and pipes in the same rule. If not specified, default delay should be considered as "0s".

The recurrence value can contain time spent in seconds (## or ##s) or minutes (##m), or in percentage of video duration (##%).

The first recurrent trigger must occur after all the relevant delays have been triggered. It means that delay condition(s) (if valid) have total priority over the recurrence condition (see examples below).



Here are examples of valid keys:

  • logview : triggered as soon as the video starts.
  • liked@50%|10m : triggered when the user has spent the equivalent of 50% of the total video duration (time spent by the user = <video duration in seconds> * 0.5) or watched 10 minutes of the video (first match win)
  • ads@10s,639s : triggered when reaching 10 seconds AND 639 seconds of playback (all delays apply)
  • progress@10s/30s : triggered when reaching 10 seconds, and then each time the user watch 30 seconds of the video
  • progress@10s/10% : triggered when reaching 10 seconds, and then each time the user watch the equivalent of 10% of the total video duration (<video duration in seconds> * 0.1)
  • progress@/20% : triggered as soon as the video starts, and then each time the user watch the equivalent of 20% of the total video duration (<video duration in seconds> * 0.2)

The URL may contain markers that must be replaced by the client:

  • %session% marker is replaced by a generated UDID stored on the client to identify the users session over several requests. If the app can't store such id, the URL must be ignored.
  • %time% marker is replaced by an integer value containing the total time spent in seconds by the client since he has started the video (it is NOT the number of seconds of the player playback position). For example, if the user watch 10 seconds of the video, then seek to 70% of the video and watch 5 additional seconds then stop, %time% is equal to 15 (seconds).
  • %position% marker is replaced by a float value between 0 and 1 (decimal separator is a point and not a coma and with at least 3 decimals) containing the current position of the player playback in percentage (it may be possible that multiple events are sent with the same position value within a single video view, when a seek occured). When the "mode" field is "live", this value should always be replaced by 0.
privatereadableread roles: content-partner or can-log-video-viewsminlength: 1maxlength: 150

Sample value: {"viewlog":"https://logger.dm.com/...","comscore":"https://comscore.com/..."}

A one time usage list of URLs that will be called in order to log video view events.

The format of the dict is a key containing the label of the log URL + some directive on when to call it and the URL as value.

If the app encounters a key format it doesn't understand, it should skip it with a console warning.

The format of the key is as follows: <label>(@<rule>)?

The label value is a alphanumeric string : [A-Za-z0-9]+

If no @ followed by rules is present, it means the URL has to be called as soon as the video starts (equivalent to label@0).

When the "mode" field of the video object is "live" and any '%' character is found in the rules, the key should be skipped with a console warning.

The rule format is as follows: <delay>([,|]<delay>)*(/<recurrence>)?

The delay value can contain time spent in seconds (## or ##s) or minutes (##m), or in percentage of video duration (##%).

Delays can be separated by comas (all delays apply) or pipes (first match win, others are ignored).

It is not allowed to mix comas and pipes in the same rule. If not specified, default delay should be considered as "0s".

The recurrence value can contain time spent in seconds (## or ##s) or minutes (##m), or in percentage of video duration (##%).

The first recurrent trigger must occur after all the relevant delays have been triggered. It means that delay condition(s) (if valid) have total priority over the recurrence condition (see examples below).



Here are examples of valid keys:

  • logview : triggered as soon as the video starts.
  • liked@50%|10m : triggered when the user has spent the equivalent of 50% of the total video duration (time spent by the user = <video duration in seconds> * 0.5) or watched 10 minutes of the video (first match win)
  • ads@10s,639s : triggered when reaching 10 seconds AND 639 seconds of playback (all delays apply)
  • progress@10s/30s : triggered when reaching 10 seconds, and then each time the user watch 30 seconds of the video
  • progress@10s/10% : triggered when reaching 10 seconds, and then each time the user watch the equivalent of 10% of the total video duration (<video duration in seconds> * 0.1)
  • progress@/20% : triggered as soon as the video starts, and then each time the user watch the equivalent of 20% of the total video duration (<video duration in seconds> * 0.2)

The URL may contain markers that must be replaced by the client:

  • %session% marker is replaced by a generated UDID stored on the client to identify the users session over several requests. If the app can't store such id, the URL must be ignored.
  • %time% marker is replaced by an integer value containing the total time spent in seconds by the client since he has started the video (it is NOT the number of seconds of the player playback position). For example, if the user watch 10 seconds of the video, then seek to 70% of the video and watch 5 additional seconds then stop, %time% is equal to 15 (seconds).
  • %position% marker is replaced by a float value between 0 and 1 (decimal separator is a point and not a coma and with at least 3 decimals) containing the current position of the player playback in percentage (it may be possible that multiple events are sent with the same position value within a single video view, when a seek occured). When the "mode" field is "live", this value should always be replaced by 0.

Reading and/or editing this field requires some contextual information. Please refer to the API global parameters list for more information about context.

ContextDescriptionRequiredFor readingFor writing
autoplay

Whether the video autoplays or not.

NoYesNo
curator

Login or id of a user that acts as curator.

NoYesNo
client_embedder

Value of the app query parameter passed by the client.

NoYesNo
embedder_url

URL of the page that embeds the video.

NoYesNo
referer_url

URL of the page that led the user to the current page.

NoYesNo
related

Array that describes the related settings used at the time the API call is made:

{"algo": "foo", "from_algo": "bar", "gravity": {"gr_reco": "42", "rec_id": "12"}, "tracker": "foo.watch"}

NoYesNo
sid

Session id of the current reader.

NoYesNo
tracking_urls

Array of custom tracking URLs that respect the log_view_url specification.

NoYesNo
media_type

Media type of this content.

publicreadableallowed values: audio or video

Sample value: video

Media type of this content.

mode

Stream mode.

publicreadablewritableallowed values: vod or live

Sample value: vod

Stream mode.

onair

True if this live stream is broadcasting and watchable in the player.

publicreadable

Sample value: true

True if this live stream is broadcasting and watchable in the player.

owner

Owner of this video.
You can retrieve sub-fields of this user object using the dot-notation (e.g.: owner.id).

publicreadabledefault

Sample value: x2rcmuh

Owner of this video.
You can retrieve sub-fields of this user object using the dot-notation (e.g.: owner.id).

partner

True if the video is owned by a partner.

publicreadable

Sample value: true

True if the video is owned by a partner.

password

If a video is protected by a password, this field contains the password (deprecated, as it now only returns NULL).
When setting a value on this field, the video visibility changes to "password protected".
Setting it to NULL removes the password protection: the visibility is changed to "public".

publicreadablewritableminlength: 1maxlength: 150

Sample value: hdI76FGhwo3n

If a video is protected by a password, this field contains the password (deprecated, as it now only returns NULL).
When setting a value on this field, the video visibility changes to "password protected".
Setting it to NULL removes the password protection: the visibility is changed to "public".

password_protected

True if this video is password-protected.

publicreadable

Sample value: true

True if this video is password-protected.

player_next_video

A unique video picked by the owner, displayed when video's playback ends.
You can retrieve sub-fields of this video object using the dot-notation (e.g.: player_next_video.id).

publicreadablewritablewrite scopes: manage_videos

Sample value: x2rcmuh

A unique video picked by the owner, displayed when video's playback ends.
You can retrieve sub-fields of this video object using the dot-notation (e.g.: player_next_video.id).

player_next_videos

An array of video picked by the owner, displayed when video's playback ends.

publicreadableminlength: 1maxlength: 150

Sample value: x1234,x1234

An array of video picked by the owner, displayed when video's playback ends.

preview_240p_url

URL of this video's video preview.

publicreadable

Sample value: https://www.dailymotion.com/cdn/H264-320x240/video/x26m1j4.pmp4?sec=...

URL of this video's video preview.

preview_360p_url

URL of this video's video preview.

publicreadable

Sample value: https://www.dailymotion.com/cdn/H264-512x384/video/x26m1j4.pmp4?sec=...

URL of this video's video preview.

preview_480p_url

URL of this video's video preview.

publicreadable

Sample value: https://www.dailymotion.com/cdn/H264-848x480/video/x26m1j4.pmp4?sec=...

URL of this video's video preview.

private

True if this video is private.

publicreadablewritable

Sample value: true

True if this video is private.

private_id

The private video id.
Null if the authentificated user is not the owner of this video.
Although successive calls will generate different ids, a private id generated for a given video will always be valid.
Beware that if the video is private and you disclose this private id, your video is no longer private.

publicreadableminlength: 1maxlength: 150

Sample value: k1KqUqDdmllgej374a2

The private video id.
Null if the authentificated user is not the owner of this video.
Although successive calls will generate different ids, a private id generated for a given video will always be valid.
Beware that if the video is private and you disclose this private id, your video is no longer private.

publish_date

Date and time after which this video will be made publicly available. Beware: if the video was
originally defined as private, setting this value will automatically make it public after the
publish_date. This setting only affects the visibility of the video, it will still be available
to anyone who knows how to access the video's private URL even before this date. Omitting this
value while setting a future expiry_date immediately publishes
the video. Set to null (recommended) or a date before Jan 1st 1990 to reset this parameter.

Note : Only verified partners are allowed to manage video availability and expiration dates.

privatereadableread scopes: manage_videoswritablewrite scopes: manage_videos

Sample value: 1287507036

Date and time after which this video will be made publicly available. Beware: if the video was
originally defined as private, setting this value will automatically make it public after the
publish_date. This setting only affects the visibility of the video, it will still be available
to anyone who knows how to access the video's private URL even before this date. Omitting this
value while setting a future expiry_date immediately publishes
the video. Set to null (recommended) or a date before Jan 1st 1990 to reset this parameter.

Note : Only verified partners are allowed to manage video availability and expiration dates.

publish_date_keep_private

Keep this video private when its publication_date is reached.

privatereadableread roles: can-manage-video-availabilitywritablewrite roles: can-manage-video-availability

Sample value: true

Keep this video private when its publication_date is reached.

published

True if this video is published (may still be waiting for encoding, see the status field for more information).

publicreadablewritable

Sample value: true

True if this video is published (may still be waiting for encoding, see the status field for more information).

publishing_progress

When this video status field is set to processing, this parameter indicates a number
between 0 and 100 corresponding to the percentage of progress from the status
waiting to ready. Unlike encoding_progress that can reach 100 well before the switch from
processing to ready, this value will not.

publicreadableminlength: 0maxlength: 100

Sample value: 22

When this video status field is set to processing, this parameter indicates a number
between 0 and 100 corresponding to the percentage of progress from the status
waiting to ready. Unlike encoding_progress that can reach 100 well before the switch from
processing to ready, this value will not.

record_end_time

Date and time when the video record was stopped.

publicreadable

Sample value: 1287507036

Date and time when the video record was stopped.

record_start_time

Date and time when the video record started.

publicreadable

Sample value: 1287507036

Date and time when the video record started.

record_status

Current state of the recording process of this video.

  • starting: Recording video is going to start
  • started: Recording video is in progress
  • stopping: Recording video is going to stop
  • stopped: Recording video is stopped
publicreadablewritablewrite scopes: manage_recordsallowed values: starting, started, stopping or stopped

Sample value: started

Current state of the recording process of this video.

  • starting: Recording video is going to start
  • started: Recording video is in progress
  • stopping: Recording video is going to stop
  • stopped: Recording video is stopped
recurrence

Recurrence of this live stream.

publicreadableallowed values: once, daily or weekly

Sample value: daily

Recurrence of this live stream.

soundtrack_isrc

The International Standard Recording Code of the soundtrack associated to this video.

publicreadablewritablewrite scopes: manage_videosminlength: 1maxlength: 12

Sample value: FR-6V8-21-83311

The International Standard Recording Code of the soundtrack associated to this video.

soundtrack_popularity

Soundtrack popularity.

publicreadablewritablewrite scopes: manage_videosminlength: 0

Sample value: 100

Soundtrack popularity.

sprite_320x_url

URL of the sprite of this video, width:320px

publicreadable

Sample value: http://www.example.org

URL of the sprite of this video, width:320px

sprite_url

URL of the sprite of this video.

publicreadable

Sample value: http://www.example.org

URL of the sprite of this video.

start_time

Start date and time of this live stream.

publicreadablewritable

Sample value: 1287507036

Start date and time of this live stream.

status

Status of this video. A video requires the published status to be set to true to be watchable.

publicreadableallowed values: waiting, processing, ready, published, rejected, deleted or encoding_error

Sample value: processing

Status of this video. A video requires the published status to be set to true to be watchable.

stream_audio_url

URL of this audio stream.
Without an access token this field contains null, the Dailymotion user associated with
the access token must be the owner of the video. This field is rate limited.
The returned url is secured: it can only be consumed by the user who made the query and
it expires after a certain time.

privatereadableread roles: content-partner, can-read-video-streams or can-read-my-video-streams

Sample value: https://www.dailymotion.com/cdn/mp4_null_aac/video/x26m1j4.mp4?auth=...

URL of this audio stream.
Without an access token this field contains null, the Dailymotion user associated with
the access token must be the owner of the video. This field is rate limited.
The returned url is secured: it can only be consumed by the user who made the query and
it expires after a certain time.

stream_h264_hd1080_url

URL of the Full HD video stream (1080p, ~6.25 Mbps).
Without an access token this field contains null, the Dailymotion user associated
with the access token must be the owner of the video. This field is rate limited.
The returned url is secured: it can only be consumed by the user who made the query
and it expires after a certain time.

privatereadableread roles: content-partner, can-read-video-streams or can-read-my-video-streams

Sample value: https://www.dailymotion.com/cdn/H264-1920x1080/video/x26m1j4.mp4?auth=...

URL of the Full HD video stream (1080p, ~6.25 Mbps).
Without an access token this field contains null, the Dailymotion user associated
with the access token must be the owner of the video. This field is rate limited.
The returned url is secured: it can only be consumed by the user who made the query
and it expires after a certain time.

stream_h264_hd_url

URL of the high definition video stream (720p, ~2.17 Mbps).
Without an access token this field contains null, the Dailymotion user associated with
the access token must be the owner of the video. This field is rate limited.
The returned url is secured: it can only be consumed by the user who made the query and
it expires after a certain time.

privatereadableread roles: content-partner, can-read-video-streams or can-read-my-video-streams

Sample value: https://www.dailymotion.com/cdn/H264-1280x720/video/x26m1j4.mp4?auth=...

URL of the high definition video stream (720p, ~2.17 Mbps).
Without an access token this field contains null, the Dailymotion user associated with
the access token must be the owner of the video. This field is rate limited.
The returned url is secured: it can only be consumed by the user who made the query and
it expires after a certain time.

stream_h264_hq_url

URL of the high quality WVGA video stream (480p, ~845 kbps).
Without an access token this field contains null, the Dailymotion user associated with
the access token must be the owner of the video. This field is rate limited.
The returned url is secured: it can only be consumed by the user who made the query and
it expires after a certain time.

privatereadableread roles: content-partner, can-read-video-streams or can-read-my-video-streams

Sample value: https://www.dailymotion.com/cdn/H264-848x480/video/x26m1j4.mp4?auth=...

URL of the high quality WVGA video stream (480p, ~845 kbps).
Without an access token this field contains null, the Dailymotion user associated with
the access token must be the owner of the video. This field is rate limited.
The returned url is secured: it can only be consumed by the user who made the query and
it expires after a certain time.

stream_h264_l1_url

URL of the very low quality/low bandwidth mobile video stream (144p, ~60 kbps).
Without an access token this field contains null, the Dailymotion user associated with
the access token must be the owner of the video. This field is rate limited.
The returned url is secured: it can only be consumed by the user who made the query and
it expires after a certain time.

privatereadableread roles: content-partner, can-read-video-streams or can-read-my-video-streams

Sample value: https://www.dailymotion.com/cdn/H264-176x144-1/video/x26m1j4.mp4?auth=...

URL of the very low quality/low bandwidth mobile video stream (144p, ~60 kbps).
Without an access token this field contains null, the Dailymotion user associated with
the access token must be the owner of the video. This field is rate limited.
The returned url is secured: it can only be consumed by the user who made the query and
it expires after a certain time.

stream_h264_l2_url

URL of the very low quality/high bandwidth mobile video stream (144p, ~106 kbps).
Without an access token this field contains null, the Dailymotion user associated with
the access token must be the owner of the video. This field is rate limited.
The returned url is secured: it can only be consumed by the user who made the query and
it expires after a certain time.

privatereadableread roles: content-partner, can-read-video-streams or can-read-my-video-streams

Sample value: https://www.dailymotion.com/cdn/H264-176x144-2/video/x26m1j4.mp4?auth=...

URL of the very low quality/high bandwidth mobile video stream (144p, ~106 kbps).
Without an access token this field contains null, the Dailymotion user associated with
the access token must be the owner of the video. This field is rate limited.
The returned url is secured: it can only be consumed by the user who made the query and
it expires after a certain time.

stream_h264_ld_url

URL of the low quality QVGA Mobile 3G video stream (240p, ~260 kbps).
Without an access token this field contains null, the Dailymotion user associated with
the access token must be the owner of the video. This field is rate limited.
The returned url is secured: it can only be consumed by the user who made the query and
it expires after a certain time.

privatereadableread roles: content-partner, can-read-video-streams or can-read-my-video-streams

Sample value: https://www.dailymotion.com/cdn/H264-320x240/video/x26m1j4.mp4?auth=...

URL of the low quality QVGA Mobile 3G video stream (240p, ~260 kbps).
Without an access token this field contains null, the Dailymotion user associated with
the access token must be the owner of the video. This field is rate limited.
The returned url is secured: it can only be consumed by the user who made the query and
it expires after a certain time.

stream_h264_qhd_url

URL of the Quad HD video stream (1440p, ~10.4 Mbps).
Without an access token this field contains null, the Dailymotion user associated with
the access token must be the owner of the video. This field is rate limited.
The returned url is secured: it can only be consumed by the user who made the query and
it expires after a certain time.

privatereadableread roles: content-partner, can-read-video-streams or can-read-my-video-streams

Sample value: https://www.dailymotion.com/cdn/H264-2560x1440/video/x26m1j4.mp4?auth=...

URL of the Quad HD video stream (1440p, ~10.4 Mbps).
Without an access token this field contains null, the Dailymotion user associated with
the access token must be the owner of the video. This field is rate limited.
The returned url is secured: it can only be consumed by the user who made the query and
it expires after a certain time.

stream_h264_uhd_url

URL of the Ultra HD 4K video stream (2160p, ~16.5 Mbps).
Without an access token this field contains null, the Dailymotion user associated with
the access token must be the owner of the video. This field is rate limited.
The returned url is secured: it can only be consumed by the user who made the query and
it expires after a certain time.

privatereadableread roles: content-partner, can-read-video-streams or can-read-my-video-streams

Sample value: https://www.dailymotion.com/cdn/H264-3840x2160/video/x26m1j4.mp4?auth=...

URL of the Ultra HD 4K video stream (2160p, ~16.5 Mbps).
Without an access token this field contains null, the Dailymotion user associated with
the access token must be the owner of the video. This field is rate limited.
The returned url is secured: it can only be consumed by the user who made the query and
it expires after a certain time.

stream_h264_url

URL of the medium quality video stream (384p, ~465 kbps).
Without an access token this field contains null, the Dailymotion user associated with
the access token must be the owner of the video. This field is rate limited.
The returned url is secured: it can only be consumed by the user who made the query and
it expires after a certain time.

privatereadableread roles: content-partner, can-read-video-streams or can-read-my-video-streams

Sample value: https://www.dailymotion.com/cdn/H264-512x384/video/x26m1j4.mp4?auth=...

URL of the medium quality video stream (384p, ~465 kbps).
Without an access token this field contains null, the Dailymotion user associated with
the access token must be the owner of the video. This field is rate limited.
The returned url is secured: it can only be consumed by the user who made the query and
it expires after a certain time.

stream_hls_url

URL of the adaptative bitrate manifest using the Apple HTTP Live Streaming protocol.
Without an access token this field contains null, the Dailymotion user associated with
the access token must be the owner of the video. This field is rate limited.
The returned url is secured: it can only be consumed by the user who made the query and
it expires after a certain time.

privatereadableread roles: content-partner, can-read-video-streams or can-read-my-video-streams

Sample value: https://www.dailymotion.com/cdn/manifest/video/x26m1j4.m3u8?auth=...

URL of the adaptative bitrate manifest using the Apple HTTP Live Streaming protocol.
Without an access token this field contains null, the Dailymotion user associated with
the access token must be the owner of the video. This field is rate limited.
The returned url is secured: it can only be consumed by the user who made the query and
it expires after a certain time.

stream_live_hls_url

URL of this live stream using the HTTP Live Streaming protocol.
Without an access token this field contains null, the Dailymotion user associated with
the access token must be the owner of the video. This field is rate limited.
The returned url is secured: it can only be consumed by the user who made the query and
it expires after a certain time.

privatereadableread roles: content-partner, can-read-video-streams or can-read-my-video-streams

Sample value: https://www.dailymotion.com/cdn/live/video/x26m1j4?protocol=hls&auth=...

URL of this live stream using the HTTP Live Streaming protocol.
Without an access token this field contains null, the Dailymotion user associated with
the access token must be the owner of the video. This field is rate limited.
The returned url is secured: it can only be consumed by the user who made the query and
it expires after a certain time.

stream_live_rtmp_url

URL of this live stream using the RTMP protocol.
Without an access token this field contains null, the Dailymotion user associated
with the access token must be the owner of the video. This field is rate limited.
The returned url is secured: it can only be consumed by the user who made the query
and it expires after a certain time.

privatereadableread roles: content-partner, can-read-video-streams or can-read-my-video-streams

Sample value: https://www.dailymotion.com/cdn/live/video/x26m1j4?protocol=rtmp&auth=...

URL of this live stream using the RTMP protocol.
Without an access token this field contains null, the Dailymotion user associated
with the access token must be the owner of the video. This field is rate limited.
The returned url is secured: it can only be consumed by the user who made the query
and it expires after a certain time.

stream_live_smooth_url

URL of this live stream using the Smooth Streaming protocol.
Without an access token this field contains null, the Dailymotion user associated
with the access token must be the owner of the video. This field is rate limited.
The returned url is secured: it can only be consumed by the user who made the query
and it expires after a certain time.

privatereadableread roles: content-partner, can-read-video-streams or can-read-my-video-streams

Sample value: https://www.dailymotion.com/cdn/live/video/x26m1j4?protocol=smooth&auth=...

URL of this live stream using the Smooth Streaming protocol.
Without an access token this field contains null, the Dailymotion user associated
with the access token must be the owner of the video. This field is rate limited.
The returned url is secured: it can only be consumed by the user who made the query
and it expires after a certain time.

stream_premium_preview_hls_url

URL of the free preview for premium content (HLS).
Without an access token this field contains null, the Dailymotion user associated
with the access token must be the owner of the video. This field is rate limited.
The returned url is secured: it can only be consumed by the user who made the
query and it expires after a certain time.

privatereadableread roles: content-partner, can-read-video-streams or can-read-my-video-streams

Sample value: https://cdn.dmcloud.net/route/hls/5307c73c06361d0286a278e3/5307e0709473996b034dab4f/abs?auth=...

URL of the free preview for premium content (HLS).
Without an access token this field contains null, the Dailymotion user associated
with the access token must be the owner of the video. This field is rate limited.
The returned url is secured: it can only be consumed by the user who made the
query and it expires after a certain time.

stream_premium_preview_mp4_url

URL of the free preview for premium content (MP4).
Without an access token this field contains null, the Dailymotion user associated
with the access token must be the owner of the video. This field is rate limited.
The returned url is secured: it can only be consumed by the user who made the
query and it expires after a certain time.

privatereadableread roles: content-partner, can-read-video-streams or can-read-my-video-streams

Sample value: https://cdn.dmcloud.net/route/http/5307c73c06361d0286a278e3/5307e0709473996b034dab4f/abs_s00?auth=...

URL of the free preview for premium content (MP4).
Without an access token this field contains null, the Dailymotion user associated
with the access token must be the owner of the video. This field is rate limited.
The returned url is secured: it can only be consumed by the user who made the
query and it expires after a certain time.

stream_premium_preview_web_url

URL of the free preview for premium content (Web).
Without an access token this field contains null, the Dailymotion user associated
with the access token must be the owner of the video. This field is rate limited.
The returned url is secured: it can only be consumed by the user who made the
query and it expires after a certain time.

privatereadableread roles: content-partner, can-read-video-streams or can-read-my-video-streams

Sample value: https://cdn.dmcloud.net/route/hps/5307c73c06361d0286a278e3/5307e0709473996b034dab4f/abs?auth=...

URL of the free preview for premium content (Web).
Without an access token this field contains null, the Dailymotion user associated
with the access token must be the owner of the video. This field is rate limited.
The returned url is secured: it can only be consumed by the user who made the
query and it expires after a certain time.

stream_source_url

URL of this video source.
Without an access token this field contains null, the dailymotion user associated with
the access token must be the owner of the video.
This field returns null a few days after the video upload. Please refer to others stream_*_url fields to get a stream.
This field is rate limited.
The returned url is secured: it can only be consumed by the user who made the query and
it expires after a certain time.

privatereadableread roles: content-partner, can-read-video-streams or can-read-my-video-streams

Sample value: https://www.dailymotion.com/cdn/source/video/x26m1j4.mkv?auth=...

URL of this video source.
Without an access token this field contains null, the dailymotion user associated with
the access token must be the owner of the video.
This field returns null a few days after the video upload. Please refer to others stream_*_url fields to get a stream.
This field is rate limited.
The returned url is secured: it can only be consumed by the user who made the query and
it expires after a certain time.

studio

True if this video is produced by the Dailymotion studio.

privatereadableread roles: content-partner or can-manage-studio

Sample value: true

True if this video is produced by the Dailymotion studio.

tags

List of tags attached to this video.

publicreadablewritableminlength: 1maxlength: 150

Sample value: party,John Doe

List of tags attached to this video.

thumbnail_1080_url

URL of this video's thumbnail image (1080px height).

publicreadable

Sample value: https://s2.dmcdn.net/CTrg1/x1080-Ec7.jpg

URL of this video's thumbnail image (1080px height).

thumbnail_120_url

URL of this video's thumbnail image (120px height).

publicreadable

Sample value: https://s2.dmcdn.net/CTrg1/x120-Zfs.jpg

URL of this video's thumbnail image (120px height).

thumbnail_180_url

URL of this video's thumbnail image (180px height).

publicreadable

Sample value: https://s2.dmcdn.net/CTrg1/x180-o-x.jpg

URL of this video's thumbnail image (180px height).

thumbnail_240_url

URL of this video's thumbnail image (240px height).

publicreadable

Sample value: https://s2.dmcdn.net/CTrg1/x240-tGY.jpg

URL of this video's thumbnail image (240px height).

thumbnail_360_url

URL of this video's thumbnail image (360px height).

publicreadable

Sample value: https://s2.dmcdn.net/CTrg1/x360-KuJ.jpg

URL of this video's thumbnail image (360px height).

thumbnail_480_url

URL of this video's thumbnail image (480px height).

publicreadable

Sample value: https://s2.dmcdn.net/CTrg1/x480-hw4.jpg

URL of this video's thumbnail image (480px height).

thumbnail_60_url

URL of this video's thumbnail image (60px height).

publicreadable

Sample value: https://s2.dmcdn.net/F83Oh/x60-sjB.jpg

URL of this video's thumbnail image (60px height).

thumbnail_720_url

URL of this video's thumbnail image (720px height).

publicreadable

Sample value: https://s2.dmcdn.net/CTrg1/x720-Ec7.jpg

URL of this video's thumbnail image (720px height).

thumbnail_url

URL of this video's raw thumbnail (full size respecting ratio).
Some users have the permission to change this value by providing an URL to a custom thumbnail. If you don't have the permission, the thumbnail won't be updated.
Note: for live streams, the thumbnail is automatically generated every 5 mn by default; it is not possible anymore to manually refresh the preview.
Maximum allowed file size is 10MB

publicreadablewritable

Sample value: https://s2.dmcdn.net/CTrg1.jpg

URL of this video's raw thumbnail (full size respecting ratio).
Some users have the permission to change this value by providing an URL to a custom thumbnail. If you don't have the permission, the thumbnail won't be updated.
Note: for live streams, the thumbnail is automatically generated every 5 mn by default; it is not possible anymore to manually refresh the preview.
Maximum allowed file size is 10MB

tiny_url

Tiny URL of this video.

publicreadable

Sample value: https://dai.ly/sk2k3jd

Tiny URL of this video.

title

Title of this video.

publicreadablewritabledefaultminlength: 1maxlength: 255

Sample value: My video title

Title of this video.

updated_time

Date and time when this video was last updated.

publicreadable

Sample value: 1404129540

Date and time when this video was last updated.

url

URL of this video on Dailymotion.
Writing this parameter defines where to download the video source. You may either use this parameter
at video creation time or change this parameter later if you want to change this video source afterward.
To change an existing video, the authenticated user may need some additional permissions. When replacing
an existing source, the video will put offline for a few minutes during the re-encoding. You may use the
GET /file/upload API resource to upload a video file and create a URL to provide to this method or use
an existing URL pointing to your own video file. Writing to this parameter is subject to rate limiting.

publicreadablewritable

Sample value: https://www.dailymotion.com/video/x26m1j4

URL of this video on Dailymotion.
Writing this parameter defines where to download the video source. You may either use this parameter
at video creation time or change this parameter later if you want to change this video source afterward.
To change an existing video, the authenticated user may need some additional permissions. When replacing
an existing source, the video will put offline for a few minutes during the re-encoding. You may use the
GET /file/upload API resource to upload a video file and create a URL to provide to this method or use
an existing URL pointing to your own video file. Writing to this parameter is subject to rate limiting.

verified

True if the video is owned by a verified partner.

publicreadable

Sample value: true

True if the video is owned by a verified partner.

views_last_day

Total number of views on this video in the last 24 sliding hours.

publicreadableminlength: 0

Sample value: 203

Total number of views on this video in the last 24 sliding hours.

views_last_hour

Total number of views on this video in the last sliding hour.

publicreadableminlength: 0

Sample value: 102

Total number of views on this video in the last sliding hour.

views_last_month

Total number of views on this video in the last 30 sliding days.

publicreadableminlength: 0

Sample value: 4023

Total number of views on this video in the last 30 sliding days.

views_last_week

Total number of views on this video in the last 7 sliding days.

publicreadableminlength: 0

Sample value: 1030

Total number of views on this video in the last 7 sliding days.

views_total

Total amount of views on this video since its publication.

publicreadableminlength: 0

Sample value: 10203

Total amount of views on this video since its publication.

width

Width of this video from the source (px).

publicreadableminlength: 0

Sample value: 320

Width of this video from the source (px).

Video deprecated fields

These deprecated fields were once part of the API reference but are no longer maintained. Support is still available until the end of life date specified for each field.Do not use any of these for a new project as they may disappear without warning.

3d

True if this video is in 3D format.

publicreadablewritable

Sample value: true

True if this video is in 3D format.

adfit

True if advertising id allowed on this video depending on its content.

privatereadablewritable

Sample value: true

True if advertising id allowed on this video depending on its content.

allowed_in_groups

True if this video can be added to groups.

publicreadablewritable

Sample value: true

True if this video can be added to groups.

bookmarks_total

Total amount of times this video has been added to a user's favorites.

publicreadable

Sample value: 102

Total amount of times this video has been added to a user's favorites.

broadcasting

True if this live stream is ready for delivery.

publicreadable

Sample value: true

True if this live stream is ready for delivery.

duration_formatted

Duration of this video (human readable).

publicreadable

Sample value: 07:03

Duration of this video (human readable).

favorited_at

Date and time when this video was bookmarked by the current user.

publicreadable

Sample value: 1287507036

Date and time when this video was bookmarked by the current user.

filmstrip_small_url

Sprite URL of snapshots of this video if it exists.

publicreadable

Sample value: https://static2.dmcdn.net/static/video/265/246/128642562:jpeg_preview_sprite.jpg?20140826113227

Sprite URL of snapshots of this video if it exists.

isrc

Detected ISRC (International Standard Recording Code) of the soundtrack.

publicreadable

Sample value: FR-6V8-21-83311

Detected ISRC (International Standard Recording Code) of the soundtrack.

live_broadcasting

False if this live stream is only visible by his owner.

publicreadablewritable

Sample value: true

False if this live stream is only visible by his owner.

log_external_view_url

One time usage URL to log a view on this video made on a third party site (i.e.: embedded player).
This URL expires after a short period of time, thus you should request it at the last moment.

privatereadable

Sample value: http://www.example.org

One time usage URL to log a view on this video made on a third party site (i.e.: embedded player).
This URL expires after a short period of time, thus you should request it at the last moment.

Reading and/or editing this field requires some contextual information. Please refer to the API global parameters list for more information about context.

ContextDescriptionRequiredFor readingFor writing
embedder_url

URL of the page that embeds the video.

NoYesNo
referer_url

URL of the page that led the user to the current page.

NoYesNo
modified_time

Date and time when this video was last modified.

publicreadable

Sample value: 1287507036

Date and time when this video was last modified.

muyap

Detected MUYAP (Turkish Phonographic Industry Society Identifier) of the soundtrack.

publicreadable

Sample value: BXjVm33LBNCIGfS6GBNw4A==

Detected MUYAP (Turkish Phonographic Industry Society Identifier) of the soundtrack.

owner_avatar_large_url

URL of the avatar image of the owner of this video (160px by 160px).

publicreadable

Sample value: http://www.example.org

URL of the avatar image of the owner of this video (160px by 160px).

owner_avatar_medium_url

URL of the avatar image of the owner of this video (80px by 80px).

publicreadable

Sample value: http://www.example.org

URL of the avatar image of the owner of this video (80px by 80px).

owner_avatar_small_url

URL of the avatar image of the owner of this video (40px by 40px).

publicreadable

Sample value: http://www.example.org

URL of the avatar image of the owner of this video (40px by 40px).

owner_fullname

Full name of the owner of this video.

publicreadable

Sample value: John Doe

Full name of the owner of this video.

owner_screenname

Username or fullname of the owner of this video, depending on user preference.

publicreadable

Sample value: johndoe424

Username or fullname of the owner of this video, depending on user preference.

owner_url

URL of the owner of this video.

publicreadable

Sample value: https://www.dailymotion.com/johndoe424

URL of the owner of this video.

owner_username

Username of the owner of this video.

publicreadable

Sample value: johndoe424

Username of the owner of this video.

provider_id

Content provider identifier.

privatereadablewritable

Sample value: string example

Content provider identifier.

rating

Average number of stars this video has received as a float.

publicreadable

Sample value: 3.4

Average number of stars this video has received as a float.

ratings_total

Total amount of users who voted for this video.

publicreadable

Sample value: 124

Total amount of users who voted for this video.

rental_price

Price of renting this video as a float in the current currency or null if this video is not
behind a paywall. See the currency field of the /locale endpoint to retrieve the current currency.

publicreadablewritable

Sample value: 1.95

Price of renting this video as a float in the current currency or null if this video is not
behind a paywall. See the currency field of the /locale endpoint to retrieve the current currency.

rental_price_formatted

Price of renting this video, formatted with currency according to the request
localization. Will be null if this video is not behind a paywall.

publicreadable

Sample value: $1.95

Price of renting this video, formatted with currency according to the request
localization. Will be null if this video is not behind a paywall.

stream_chromecast_url

URL of the video stream for Chromecast devices :

  • The returned URL is HTTPS only
  • &max=1080 is appended to the returned URL because Chromecast does not support qualities above 1080
privatereadable

Sample value: https://www.dailymotion.com/cdn/manifest/video/xrf4xz.m3u8?auth=...&max=1080

URL of the video stream for Chromecast devices :

  • The returned URL is HTTPS only
  • &max=1080 is appended to the returned URL because Chromecast does not support qualities above 1080
stream_live_hls_source_url

URL of this live stream source using the HTTP Live Streaming protocol.
Without an access token this field contains null, the Dailymotion user associated
with the access token must be the owner of the video. This field is rate limited.
The returned url is secured: it can only be consumed by the user who made the query and
it expires after a certain time.

privatereadable

Sample value: https://www.dailymotion.com/cdn/live/video/xsjzha1?protocol=hls&source=true&auth=...

URL of this live stream source using the HTTP Live Streaming protocol.
Without an access token this field contains null, the Dailymotion user associated
with the access token must be the owner of the video. This field is rate limited.
The returned url is secured: it can only be consumed by the user who made the query and
it expires after a certain time.

stream_ljhs_url

URL of the adaptative bitrate manifest using the Dailymotion LumberJack Streaming protocol.
Without an access token this field contains null, the Dailymotion user associated with
the access token must be the owner of the video. This field is rate limited.
The returned url is secured: it can only be consumed by the user who made the query and
it expires after a certain time.

privatereadable

Sample value: https://www.dailymotion.com/cdn/manifest/video/x26m1j4.mnft?auth=XXXXXXXX

URL of the adaptative bitrate manifest using the Dailymotion LumberJack Streaming protocol.
Without an access token this field contains null, the Dailymotion user associated with
the access token must be the owner of the video. This field is rate limited.
The returned url is secured: it can only be consumed by the user who made the query and
it expires after a certain time.

strongtags

List of strong tags attached to this video.

publicreadable

Sample value: John Doe,United States of America

List of strong tags attached to this video.

swf_url

URL of the legacy SWF embed player (only use this to embed the player into a flash movie, otherwise use embed_url).

publicreadable

Sample value: https://www.dailymotion.com/swf/video/x26m1j4

URL of the legacy SWF embed player (only use this to embed the player into a flash movie, otherwise use embed_url).

thumbnail_large_url

URL of this video thumbnail image (320px by 240px).

publicreadable

Sample value: https://ak.dailymotion.com/thumbnail/x26m1j4/large.jpg

URL of this video thumbnail image (320px by 240px).

thumbnail_medium_url

URL of this video thumbnail image (160px by 120px).

publicreadable

Sample value: https://ak.dailymotion.com/thumbnail/x26m1j4/medium.jpg

URL of this video thumbnail image (160px by 120px).

thumbnail_small_url

URL of this video thumbnail image (80px by 60px).

publicreadable

Sample value: https://s2.dmcdn.net/CTrg1/small.jpg

URL of this video thumbnail image (80px by 60px).

type

Content type of this video (can be official, creative or null).

publicreadablewritable

Sample value: ugc

Content type of this video (can be official, creative or null).

upc

Detected UPC (Universal Product Code) of the soundtrack.

publicreadable

Sample value: 3610154759952

Detected UPC (Universal Product Code) of the soundtrack.

vast_url_template

VAST template URL as a string for this video or null if video doesn't accept in-stream ads.

privatereadable

Sample value: https://ad.auditude.com/adserver/vast3?u=...

VAST template URL as a string for this video or null if video doesn't accept in-stream ads.

Video filters

Here is the list of filters you can use to limit a result set of video objects. You can use these by passing them as query-string parameters with your request.

360_degree

Limit the result set to 360 videos.

Sample value: n/a

Limit the result set to 360 videos.

availability

Limit the result set to available videos.

Sample value: true

Limit the result set to available videos.

channel

Limit the result set to this channel.

Sample value: news

Limit the result set to this channel.

country

Limit the result set to this country (declarative).

STRINGminlength: 1maxlength: 150

Sample value: US

Limit the result set to this country (declarative).

created_after

Limit the result set to videos created after this date and time.

Sample value: 1287507036

Limit the result set to videos created after this date and time.

created_before

Limit the result set to videos created before this date and time.

Sample value: 1287507036

Limit the result set to videos created before this date and time.

exclude_ids

List of video ids to exclude from the result set.

ARRAYminlength: 1maxlength: 150

Sample value: xk2k3,x26m1j4,xkeg4

List of video ids to exclude from the result set.

exportable

Limit the result set to exportable (i.e: no-export flag not set) videos.

Sample value: n/a

Limit the result set to exportable (i.e: no-export flag not set) videos.

Sample value: n/a

Limit the result set to featured videos.

flags

List of simple boolean flags available to reduce the result set.

ARRAYminlength: 1maxlength: 150allowed values: featured, hd, ugc, ugc_partner, live, no_live, live_onair, live_offair, live_upcoming, has_game, premium, no_premium, in_history, 360_degree, availability, private, unpublished, exportable, partner, verified or password_protected

Sample value: featured,hd

List of simple boolean flags available to reduce the result set.

has_game

Limit the result set to videos related to a video-game.

Sample value: n/a

Limit the result set to videos related to a video-game.

hd

Limit the result set to high definition videos (vertical resolution greater than or equal to 720p).

Sample value: n/a

Limit the result set to high definition videos (vertical resolution greater than or equal to 720p).

ids

Limit the result set to this list of video identifiers (works only with xids).

ARRAYminlength: 1maxlength: 150

Sample value: xk2k3,x26m1j4,xkeg4

Limit the result set to this list of video identifiers (works only with xids).

in_history

Limit the result set to videos in your watch history.

Sample value: n/a

Limit the result set to videos in your watch history.

languages

Limit the result set to this list of languages. Language is declarative and corresponds to the
user-declared spoken language of the video. If you wish to retrieve content currated for a specific
locale, use the localization global parameter instead.

ARRAYminlength: 1maxlength: 150

Sample value: fr,en,it

Limit the result set to this list of languages. Language is declarative and corresponds to the
user-declared spoken language of the video. If you wish to retrieve content currated for a specific
locale, use the localization global parameter instead.

list

Limit the result set to this video list. Warning: Can not be combined with a search.

STRINGallowed values: what-to-watch or recommended

Sample value: what-to-watch

Limit the result set to this video list. Warning: Can not be combined with a search.

live

Limit the result set to live streaming videos.

Sample value: n/a

Limit the result set to live streaming videos.

live_offair

Limit the result set to off-air live streaming videos.

Sample value: n/a

Limit the result set to off-air live streaming videos.

live_onair

Limit the result set to on-air live streaming videos.

Sample value: n/a

Limit the result set to on-air live streaming videos.

live_upcoming

Limit the result set to upcoming live streaming videos.

Sample value: n/a

Limit the result set to upcoming live streaming videos.

longer_than

Limit the results to videos with a duration longer than or equal to the specified number of minutes.

NUMBERminlength: 0

Sample value: 3600

Limit the results to videos with a duration longer than or equal to the specified number of minutes.

no_live

Limit the result set to non-live streaming videos.

Sample value: n/a

Limit the result set to non-live streaming videos.

no_premium

Limit the result set to free video content.

Sample value: n/a

Limit the result set to free video content.

nogenre

Limit the result set by excluding this genre.

STRINGminlength: 1maxlength: 150

Sample value: Comedy

Limit the result set by excluding this genre.

owners

Limit the result set to this list of user identifiers or logins.

ARRAYminlength: 1maxlength: 150

Sample value: user1,user2,user3

Limit the result set to this list of user identifiers or logins.

partner

Limit the result set to partner videos.

Sample value: n/a

Limit the result set to partner videos.

password_protected

Limit the result set to password protected partner videos.

Sample value: true

Limit the result set to password protected partner videos.

premium

Limit the result set to premium SVOD and TVOD video content.

Sample value: n/a

Limit the result set to premium SVOD and TVOD video content.

private

Limit the result set to private videos.

Sample value: true

Limit the result set to private videos.

STRINGminlength: 1maxlength: 150allowed values: uploader-only, uploader-with-siblings, uploader-with-parent or uploader-with-children

Sample value: "uploader-only"

Forces the recommendation result to use a specifc algorithm

search

Limit the result set to this full text search.

STRINGminlength: 1maxlength: 150

Sample value: football

Limit the result set to this full text search.

shorter_than

Limit the results to videos with a duration shorter than or equal to the specified number of minutes.

NUMBERminlength: 0

Sample value: 60

Limit the results to videos with a duration shorter than or equal to the specified number of minutes.

sort

Change the default result set ordering.
Notes:

  • the relevance filter can only be used in conjunction with the search filter.
  • Deprecated sorts (ranking, rated, rated-hour, rated-today, rated-week, rated-month, commented, commented-hour, commented-today, commented-week, commented-month)
STRINGallowed values: recent, visited, visited-hour, visited-today, visited-week, visited-month, relevance, random, trending, old, live-audience, least-visited or live-airing-time

Sample value: visited

Change the default result set ordering.
Notes:

  • the relevance filter can only be used in conjunction with the search filter.
  • Deprecated sorts (ranking, rated, rated-hour, rated-today, rated-week, rated-month, commented, commented-hour, commented-today, commented-week, commented-month)
tags

Limit the result set to this full text search of video tags.
By default perform 'AND' operation between terms.
Use enclosing parenthesis '()' on the query to perform 'OR' operation.

ARRAYminlength: 1maxlength: 150

Sample value: party,John Doe

Limit the result set to this full text search of video tags.
By default perform 'AND' operation between terms.
Use enclosing parenthesis '()' on the query to perform 'OR' operation.

ugc

Limit the result set to user generated video content (no partner content).

Sample value: n/a

Limit the result set to user generated video content (no partner content).

ugc_partner

Limit the result set to user generated or partner video content.

Sample value: n/a

Limit the result set to user generated or partner video content.

unpublished

Limit the result set to unpublished videos.

Sample value: true

Limit the result set to unpublished videos.

verified

Limit the result set to verified partner videos.

Sample value: n/a

Limit the result set to verified partner videos.

Video deprecated filters

These deprecated filters were once part of the API reference but are no longer maintained. Support is still available until the end of life date specified for each filter.Do not use any of these for a new project as they may disappear without warning.

3d

Limit the result set to 3D videos.

Sample value: n/a

Limit the result set to 3D videos.

filters

List of simple boolean filters available to reduce the result set.