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:
- Create a new account or login using your own account on Dailymotion.
- Register your application on your developer profile. You will retrieve an API key and an API secret.
- 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.comGraph 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:
- A user:
https://api.dailymotion.com/user/x1fz4ii - A video:
https://api.dailymotion.com/video/x26ezrb - A playlist:
https://api.dailymotion.com/playlist/x3ecgj
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:
- A video's comments:
https://api.dailymotion.com/video/x26ezrb/comments - A list of videos in the music channel:
https://api.dailymotion.com/channel/music/videos - A user's videos:
https://api.dailymotion.com/user/x1fz4ii/videos
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 properties | Property type | Property description |
|---|---|---|
page | number | The 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). |
limit | number | The 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). |
explicit | boolean | This 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. |
total | number | This 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_more | boolean | This 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>/commentsSince 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/videosSince 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!
You will find call examples and scenarios in the use-cases section. 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 errors | Corresponding Dailymotion errors |
|---|---|
400Bad 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). |
401Unauthorized | A valid access token should be provided. This error may come from an expired access token. |
403Forbidden | 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. |
404Not Found | The requested object was not found (can also be thrown when you request non active users, censored videos, etc.). |
405Method Not Allowed | Invalid HTTP Method + method_not_allowed error type. |
501Not Implemented | The specified method does not exist (invalid_method). |
500Internal 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 types | Type descriptions |
|---|---|
invalid_parameter | Your request contains invalid parameters (e.g. you set an invalid data type for a field). |
missing_required_parameter | You forgot a required parameter in your API call. |
access_forbidden | Thrown when the user doesn't have the permission to access the data (e.g. missing a required scope to access certain fields). |
not_found | The requested object was not found. |
method_not_allowed | The API call is correct, but the method is not allowed (e.g.: replace a video URL before encoding process is over). |
invalid_method | The API endpoint or object connection is invalid. |
write_failure | The 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 code | Error description |
|---|---|
DM001 | No video has been specified, you need to specify one. |
DM002 | Content has been deleted. |
DM003 | Live content is not available, i.e. it may not have started yet. |
DM004 | Copyrighted content, access forbidden. |
DM005 | Content 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). |
DM006 | Publishing in progress... |
DM007 | Video geo-restricted by its owner. |
DM008 | Explicit content. |
DM009 | Explicit content (offsite embed). |
DM010 | Private content. |
DM011 | An encoding error occured. |
DM012 | Encoding in progress... |
DM013 | This video has no preset (no video stream). |
DM014 | This video has not been made available on your device by its owner. |
DM015 | Kids host error. |
DM016 | Content 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:
- 4 videos per hour
- 2 hours of videos (total) per day
- 60 minutes per video
- 2 GB per video
These limits may change on a case-by-case basis. To check your 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.
042.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.
truefalse/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).
012875070362147483647/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/videoshttps://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.
[email protected][email protected]/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 actor | Your scenario when using the Dailymotion API |
|---|---|
| client application | Your application/website/project |
| resource owner | Any Dailymotion user |
| resource server | The Dailymotion API endpoint (https://api.dailymotion.com) |
| authorization server | The 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:
- The client application asks the resource owner for authorization and receives an authorization grant.
- 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.
- 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):
- 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_codegrant type. - 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
passwordgrant type. - 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_credentialsgrant type.
Client profiles
For this purpose, there are three 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:
Once your application has been registered, you get an API key, which we will call your
client_idand an API secret, which is yourclient_secret.Redirect the user to
https://www.dailymotion.com/oauth/authorizewith yourclient_idand the URL the user should be redirected back to after the authorization process (theredirect_uri). For security reason, onlyredirect_uristarting 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/callbackIf your
redirect_urihas 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.If the user authorizes your application, Dailymotion redirects the user back to the
redirect_uriyou specified with a verification string in thecodequery parameter. This authorization code can then be exchanged for an OAuth access token by POST-ing to the token server athttps://api.dailymotion.com/oauth/token. Pass the exact sameredirect_urias 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>" }- You can then use the
access_tokenfrom 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.
User-Agent profile
The user-agent profile is suitable for client applications residing in a user-agent, typically implemented in a browser using a scripting language such as JavaScript. There, client applications cannot keep secrets confidential and the authentication of the client application is based on the user-agent's same-origin policy.
Unlike the web application profile (in which the client application makes separate requests for end-user authorization and access token), the client application receives the access token as a result of the end-user authorization request in the form of an HTTP redirection. The client application requests the authorization server to redirect the user-agent to another web server or local resource accessible to the user-agent which is capable of extracting the access token from the response and passing it to the client application.
This user-agent profile does not use the client application's API secret since the code resides on the end-user's computer or device which makes the API secret accessible and exploitable. Because the access token is encoded into the redirection URI, it may be exposed to the end-user and other applications residing on the computer or device.
The steps to obtain an access token are:
Once your application has been registered, you get an API key, which we will call your
client_idand an API secret (which is not used with this profile).Redirect the user to
https://www.dailymotion.com/oauth/authorizewith yourclient_id,redirect_uriandresponse_typeset totoken. If your application is popping up a window, you can trigger the compatibility pop-up version of the authorization window by settingdisplaytopopup. For example (line breaks are for display purposes only):https://www.dailymotion.com/oauth/authorize ?response_type=token &client_id=<API_KEY> &redirect_uri=http://www.example.org/callback &display=popupAfter the user authorizes your application, Dailymotion redirects the user to the
redirect_uriyou specified with the access token in the URI fragment (line breaks are for display purposes only):http://www.example.org/callback ?access_token=<ACCESS_TOKEN> &expires_in=<EXPIRES_IN_SECONDS>- Use the access token returned above to fetch data from the Dailymotion API on behalf of the user. Read the using an access token section for more details.
Note: If the user does not authorize your application, Dailymotion redirects him to the redirect_uri you specified, and adds both error and error_description parameters to the query.
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.
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 be implemented in different ways based on their requirements and desired end-user experience. Native client applications can:
Use the end-user authorization endpoint as described in the User-Agent section by launching an external user-agent. The client application can capture the response by providing a redirection URI with a custom URI scheme (registered with the operating system to invoke the native client application), or by providing a redirection URI pointing to a server-hosted resource under the client application's control which makes the response available to the client application (e.g. using the window title or other locations accessible from outside the user-agent).
Use the end-user authorization endpoint as described in the User-Agent section by using an embedded user-agent. The client application obtains the response by directly communicating with the embedded user-agent.
- 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:
Once your application has been registered, you get an API key, which we will call your
client_idand an API secret, which is yourclient_secret.Ask the end-user for his credentials which consist of a username and a password.
Retrieve an OAuth access token by POST-ing to the token server at
https://api.dailymotion.com/oauth/token. Set thegrant_typetopassword, pass theclient_idandclient_secret(related to your application) and the user credentials inusernameandpassword(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>" }- 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)[#using-refresh-tokens] 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_videosNote: 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:
| Scope | Description |
|---|---|
email | Provides access to the user's primary email address. |
userinfo | Provides read/write access to some personal user information like address and birthday. |
manage_videos | Allows to modify or delete the user's uploaded videos and to publish new ones. |
manage_comments | Allows to publish comments on videos on behalf of the user. |
manage_playlists | Allows to create/edit/delete playlists on behalf of the user. |
manage_tiles | Allows to read/write a user's saved tiles. |
manage_subscriptions | Allows to manage a user's subscriptions. |
manage_friends | Allows to manage a user's friends. |
manage_favorites | Allows to add/remove videos from a user's favorites. |
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 value | Feature description |
|---|---|
page | Displays a full-page authorization screen (by default). |
popup | Displays a compact dialog optimized for web pop-up windows. |
mobile | Displays 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=popupNote: 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 name | Short description |
|---|---|
| channel | A channel object represents a category of videos on Dailymotion (formerly a channel), for example:
shortfilms, videogames, news, etc. |
| comment | A comment object represents a message left by a user on a video on Dailymotion. |
| 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. |
| report | A report object represents a user complaint against a video. Reports can only be created, edited
and deleted. They are automatically sorted and sent to the appropriate recipient. |
| 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
| Type | Name | Description |
|---|---|---|
string | context | 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 |
string | device_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. |
boolean | family_filter | Enable/disable the family filter. By default, the family filter is turned on. Setting this parameter to false will stop filtering-out explit 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. |
string | localization | 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. |
boolean | ssl_assets | Get secured HTTPS URLs for all assets (URLs, images, videos, etc.). By default, this option is turned off. |
string | thumbnail_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 name | Description | Sample |
|---|---|---|
id | The user identifier of the authenticated user. | "x1fz4ii" |
scope | The scope of permissions granted to the authenticated user. | ["manage_videos","userinfo"] |
roles | The list of roles associated to the API key of the authenticated user. | [] |
username | The username of the authenticated user. | "DailymotionAPI" |
screenname | The authenticated user's username or full name depending on his preferences. | "Dailymotion API" |
language | The 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.
datecreated_time- Sample value:
1287507036 stringdescription- Sample value:
"Everything about video-games!"Comprehensive localized description of this channel.
stringid- Sample value:
"xbp0xyz"Unique object identifier (unique among all channels)
stringitem_type- Sample value:
"channel"Graph type of this object (hopefully
channel) stringname- Sample value:
"Video Games"Localized short name of this channel.
stringslug- Sample value:
"video-games"Slug name of this channel.
dateupdated_time- Sample value:
1404129540Date 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- Sample value:
popularChange 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. Follow our API ChangeLog regularly to stay informed about deprecations and upcoming end of life dates.
language- This filter was deprecated on December 29, 2011.Use the
localizationglobal parameter instead.End of support: December 29, 2014.Sample value:itLanguage 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.
[user]usersList of the top users of this channel.
This connection joins an object of typechannelwith a list ofuserobjects.Read the channel's users connection
You can retrieve the list of users connected to a
channelobject by issuing a GET request to/channel/<CHANNEL_ID>/users. You can specify the list of fields from theuserobjects to be returned using thefieldsparameter.
Test it with the API Explorer.[video]videosList of videos of this channel.
This connection joins an object of typechannelwith a list ofvideoobjects.Read the channel's videos connection
You can retrieve the list of videos connected to a
channelobject by issuing a GET request to/channel/<CHANNEL_ID>/videos. You can specify the list of fields from thevideoobjects to be returned using thefieldsparameter.
Test it with the API Explorer.
Comment
A comment object represents a message left by a user on a video on Dailymotion.
Manipulating comments
To retrieve a specific comment object, perform a GET request on /comment/<COMMENT_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 comment, perform a POST request on the 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.
To edit an object of type comment, perform a POST request on /comment/<COMMENT_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 comment, perform a DELETE request on /comment/<COMMENT_ID>.
If you do not receive any error (empty result set), it means that the deletion was successful.
Sample comment API call: /comment/xqqa62
Test it further with the API Explorer.
Comment fields
Here is the list of fields you can retrieve on every comment object.
You can retrieve these using the fields query-string parameter on any graph object request.
See the fields selection section for more information.
datecreated_time- Sample value:
1287507036Date and time when this comment was posted.
stringid- Sample value:
"x2ab7vs"Unique object identifier (unique among all comments)
stringitem_type- Sample value:
"comment"Graph type of this object (hopefully
comment) booleanlocked- Sample value:
falseDefines if this comment is still editable or not (a comment is locked a few minutes after it is posted).
stringmessage- Sample value:
"Love this video, you should post more!"Message body of this comment.
userowner- Sample value:
"x5hsn50"Author of this comment. You can retrieve sub-fields of this
userobject using the dot-notation (e.g.:owner.id). dateupdated_time- Sample value:
1404129540Date and time when this comment was last updated.
videovideo- Sample value:
"x5hsn50"Video object this comment is attached to. You can retrieve sub-fields of this
videoobject using the dot-notation (e.g.:video.id).
Comment 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. Follow our API ChangeLog regularly to stay informed about deprecations and upcoming end of life dates.
stringlanguage- This field was deprecated on March 21, 2016.This feature is now deprecated.End of support: March 21, 2017.Sample value:
"fr"Language in which this comment was written.
Comment filters
Here is the list of filters you can use to limit a result set of comment objects.
You can use these by passing them as query-string parameters with your request.
sort- Sample value:
oldChange the default result set ordering.
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:
| Type | Parameter | Required | Description |
|---|---|---|---|
string | message | Yes | The 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 name | Description | Sample |
|---|---|---|
message | The 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.
| Type | Parameter | Required | Description |
|---|---|---|---|
string | callback_url | No | The 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 name | Description | Sample |
|---|---|---|
upload_url | The URL you will be able to upload your video to. | http://upload-XX.dailymotion.com/upload?uuid=<UUID>&seal=<SEAL> |
progress_url | An URL to poll the progress of the current upload. A GET request to this URL returns a JSON object with size, received, progress, percent, elapsed and remaining fields. | http://upload-XX.dailymotion.com/progress?uuid=<UUID> |
Languages
The languages endpoint is used to retrieve the list of ISO-639-1 2 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-1 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 name | Description | Sample |
|---|---|---|
code | The language alpha-2 code as specified by the ISO-639-1 standard. | "ja" |
name | The name of the language. | "Japanese" |
native_name | The native name of the language, or null if unknown. | "日本語" |
localized_name | The name of the language in the locale of the request, or null if unknown. | "Japonais" |
display_name | The 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 name | Description | Sample |
|---|---|---|
locale | The locale code. | "ja_JP" |
site_code | The site version code associated to the locale. This code is to be used in the API wherever a "localization" parameter is requested | "jp" |
language | The name of the language in English. | "Japanese" |
localized_language | The name of the language in the current API request locale. | "Japonais" |
locally_localized_language | The name of the language in the locale's language. | "日本語" |
country | The name of the country in English | "Japan" |
localized_country | The name of the country in the current API request locale. | "Japon" |
locally_localized_country | The name of the country in the locale's language. | "日本" |
currency | The 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 one of the several connections available through the user and video 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 playlist, perform a POST request on the 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.
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.
datecreated_time- Sample value:
1287507036Date and time when this playlist was created.
stringdescription- Sample value:
"Check out the top 10 best goals of this year's championship!"Comprehensive description of this playlist.
stringevent_playlist_add- Sample value:
"playlist.videoAdd.x3ecgj"Name of the Pushd event sent when a video is added to this playlist.
stringid- Sample value:
"x6clkth"Unique object identifier (unique among all playlists)
stringitem_type- Sample value:
"playlist"Graph type of this object (hopefully
playlist) stringname- Sample value:
"Best goals of the championship"Short descriptive name of this playlist.
userowner- Sample value:
"xgitplb"Author of this playlist. You can retrieve sub-fields of this
userobject using the dot-notation (e.g.:owner.id). urlthumbnail_60_url- Sample value:
"http:\/\/s2.dmcdn.net\/3CQ3\/x60-epG.jpg"URL of this playlist's first video thumbnail image (60px height).
urlthumbnail_120_url- Sample value:
"http:\/\/s2.dmcdn.net\/3CQ3\/x120-lbT.jpg"URL of this playlist's first video's thumbnail image (120px height).
urlthumbnail_180_url- Sample value:
"http:\/\/s2.dmcdn.net\/3CQ3\/x180-Pe8.jpg"URL of this playlist's first video's thumbnail image (180px height).
urlthumbnail_240_url- Sample value:
"http:\/\/s2.dmcdn.net\/3CQ3\/x240-bP7.jpg"URL of this playlist's first video's thumbnail image (240px height).
urlthumbnail_360_url- Sample value:
"http:\/\/s2.dmcdn.net\/3CQ3\/x360-AdG.jpg"URL of this playlist's first video's thumbnail image (360px height).
urlthumbnail_480_url- Sample value:
"http:\/\/s2.dmcdn.net\/3CQ3\/x480-kEp.jpg"URL of this playlist's first video's thumbnail image (480px height).
urlthumbnail_720_url- Sample value:
"http:\/\/s2.dmcdn.net\/3CQ3\/x720-LZe.jpg"URL of this playlist's first video's thumbnail image (720px height).
urlthumbnail_url- Sample value:
"https:\/\/s1-ssl.dmcdn.net\/3CQ3.jpg"URL of the thumbnail of this playlist's first video (raw, respecting full size ratio).
dateupdated_time- Sample value:
1404129540Date and time when this playlist was last updated.
numbervideos_total- Sample value:
14Total 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. Follow our API ChangeLog regularly to stay informed about deprecations and upcoming end of life dates.
stringrelative_updated_time- This field was deprecated on November 24, 2014.Use the
updated_timefield and format the result client-side instead.End of support: November 24, 2015.Sample value:"42 minutes ago"Localized date and time when this playlist was last updated (formatted).
urlthumbnail_large_url- This field was deprecated on July 31, 2014.Use the
thumbnail_360_urlfield instead.End of support: July 31, 2015.Sample value:"https:\/\/s2-ssl.dmcdn.net\/3CQ3\/x240-bP7.jpg"URL of the thumbnail of this playlist's first video (320px by 240px).
urlthumbnail_medium_url- This field was deprecated on July 31, 2014.Use the
thumbnail_240_urlfield instead.End of support: July 31, 2015.Sample value:"https:\/\/s2-ssl.dmcdn.net\/3CQ3\/160x120-9HK.jpg"URL of the thumbnail of this playlist's first video (160px by 120px).
urlthumbnail_small_url- This field was deprecated on July 31, 2014.Use the
thumbnail_60_urlfield instead.End of support: July 31, 2015.Sample value:"https:\/\/s2-ssl.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.
owner- Sample value:
xgitplbLimit the result set to playlists of this user.
search- Sample value:
footballLimit the result set to this full text search.
sort- Sample value:
relevanceChange the default result set ordering.
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.
[video]videosList of videos contained in this playlist (in the order defined by its owner).
This connection joins an object of typeplaylistwith a list ofvideoobjects.Read the playlist's videos connection
You can retrieve the list of videos connected to a
playlistobject by issuing a GET request to/playlist/<PLAYLIST_ID>/videos. You can specify the list of fields from thevideoobjects to be returned using thefieldsparameter.
Test it with the API Explorer.You can also see if any video is connected to an existing
playlistobject by issuing a GET request to/playlist/<PLAYLIST_ID>/videos/<VIDEO_ID>. This will return a list containing only the connectedvideoobject or an empty list if it is not connected.Create a playlist's videos connection
You can connect videos to an existing
playlistobject one by one by issuing multiple POST requests to/playlist/<PLAYLIST_ID>/videos/<VIDEO_ID>.You can connect multiple videos to an existing
playlistobject at once by issuing one POST request to/playlist/<PLAYLIST_ID>/videos?ids=<VIDEO_ID_1>,...,<VIDEO_ID_N>. Note that the order of the identifiers is saved.Delete a playlist's videos connection
You can disconnect videos from a
playlistobject 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>/videoswith an emptyidsquery-string parameter.
Test it with the API Explorer.
Report
A report object represents a user complaint against a video. Reports can only be created, edited
and deleted. They are automatically sorted and sent to the appropriate recipient.
Manipulating reports
To create an object of type report, perform a POST request on the 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.
| Type | Parameter | Required | Description |
|---|---|---|---|
string | message | No | Message body of this report. |
email | sender_email | No | Email address of the reporter. |
string | type | No | Type of this report. |
user | user | No | Author of this report. |
To edit an object of type report, perform a POST request on /report/<REPORT_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 report, perform a DELETE request on /report/<REPORT_ID>.
If you do not receive any error (empty result set), it means that the deletion was successful.
Sample report API call: /video/x26m1j4/reports
Test it further with the API Explorer.
Report fields
Here is the list of fields you can retrieve on every report object.
You can retrieve these using the fields query-string parameter on any graph object request.
See the fields selection section for more information.
stringid- Sample value:
"xhj72s2"Unique object identifier (unique among all reports)
Report filters
Here is the list of filters you can use to limit a result set of report objects.
You can use these by passing them as query-string parameters with your request.
type- Sample value:
copyrightedLimit the result set to reports of this type.
user- Sample value:
xstj68cLimit the result set to reports of this user.
video- Sample value:
xstj68cLimit the result set to reports of this video.
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 on the 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.
| Type | Parameter | Required | Description |
|---|---|---|---|
string | format | Yes | Data format, either SRT, STL (EBU style) or Time Text (TT) with all the following variants (W3C, SMTPE-TT, EBU-TT) |
string | language | Yes | Language of these subtitles. |
url | url | Yes | 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. |
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.
stringid- Sample value:
"x5qgfkp"Unique object identifier (unique among all subtitles)
stringitem_type- Sample value:
"subtitle"Graph type of this object (hopefully
subtitle) stringlanguage- Sample value:
"en"Language of these subtitles.
stringlanguage_label- Sample value:
"Fran\u00e7ais"Subtitles's language in its own language.
urlurl- Sample value:
"http:\/\/static2.dmcdn.net\/static\/video\/354\/170\/120453:subtitle_en.srt?22"On
GET, the URL pointing to the latest version of the subtitles. OnPOST, URL pointing to the subtitle data in on of the valid formats. You don't need to host the file, you can use theGET /file/uploadAPI 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- Sample value:
enLimit 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 channel and user 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.
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.
stringaddress- Sample value:
"715 5th Avenue"Postal address of this user.
urlavatar_25_url- Sample value:
"http:\/\/s1.dmcdn.net\/AVM\/25x25--w1.png"URL of this user's avatar image (25px wide square).
urlavatar_60_url- Sample value:
"http:\/\/s1.dmcdn.net\/AVM\/60x60-As1.png"URL of this user's avatar image (60px wide square).
urlavatar_80_url- Sample value:
"http:\/\/s1.dmcdn.net\/AVM\/80x80-Rf1.png"URL of this user's avatar image (80px wide square).
urlavatar_120_url- Sample value:
"http:\/\/s1.dmcdn.net\/AVM\/120x120-bn1.png"URL of this user's avatar image (120px wide square).
urlavatar_190_url- Sample value:
"http:\/\/s1.dmcdn.net\/AVM\/190x190-ma1.png"URL of this user's avatar image (190px wide square).
urlavatar_240_url- Sample value:
"http:\/\/s1.dmcdn.net\/AVM\/240x240-sU1.png"URL of this user's avatar image (240px wide square).
urlavatar_360_url- Sample value:
"http:\/\/s1.dmcdn.net\/AVM\/360x360-PM1.png"URL of this user's avatar image (360px wide square).
urlavatar_480_url- Sample value:
"http:\/\/s1.dmcdn.net\/AVM\/480x480-CD1.png"URL of this user's avatar image (480px wide square).
urlavatar_720_url- Sample value:
"http:\/\/s1.dmcdn.net\/AVM\/720x720-Gr1.png"URL of this user's avatar image (720px wide square).
urlavatar_url- Sample value:
"http:\/\/www.example.org"URL of an image to change this user's avatar.
datebirthday- Sample value:
532652400Birthday date of this user.
booleancan_create_live- Sample value:
falseTrue if this user can live stream.
booleancan_invite_users- Sample value:
falseTrue if this user can invite users to be a part of their MCN.
numberchildren_total- Sample value:
10Total number of user children.
stringcity- Sample value:
"New York City"City of residence of this user.
stringcountry- Sample value:
"US"Country of residence of this user.
urlcover_100_url- Sample value:
"https:\/\/s2-ssl.dmcdn.net\/GJCWj\/x100-qZJ.jpg"URL of this user's cover image (height = 100px).
urlcover_150_url- Sample value:
"https:\/\/s2-ssl.dmcdn.net\/GJCWj\/x150-KrI.jpg"URL of this user's cover image (height = 150px).
urlcover_200_url- Sample value:
"https:\/\/s2-ssl.dmcdn.net\/GJCWj\/x200--y5.jpg"URL of this user's cover image (height = 200px).
urlcover_250_url- Sample value:
"https:\/\/s2-ssl.dmcdn.net\/GJCWj\/x250-u-x.jpg"URL of this user's cover image (height = 250px).
urlcover_url- Sample value:
"http:\/\/www.example.org"URL of this user's cover image (original size).
datecreated_time- Sample value:
1287507036Date and time when this user joined the site.
stringdescription- Sample value:
"Hi, I'm <i>John<\/i> and I'm here to break <b>everything<\/b>!"Comprehensive description of this user.
stringdonation_url- Sample value:
"https:\/\/www.paypal.com\/johndoe424"Donation URL of this user.
emailemail- Sample value:
"[email protected]"Email address of this user.
booleanemail_notification- Sample value:
falseTrue if this user can receive email notifications, false otherwise.
stringevent_delete- Sample value:
"user.x1fz4ii.profile.delete"Name of the Pushd event sent on user deletion.
stringevent_modify- Sample value:
"user.x1fz4ii.profile.edit"Name of the Pushd event sent on user update.
stringevent_video_delete- Sample value:
"user.x1fz4ii.video.delete"Name of the Pushd event sent when this user deletes a video.
stringevent_video_live_offair- Sample value:
"user.x1fz4ii.video.live.offAir"Name of the Pushd event sent when this user stops live streaming.
stringevent_video_live_onair- Sample value:
"user.x1fz4ii.video.live.onAir"Name of the Pushd event sent when this user starts live streaming.
stringevent_video_modify- Sample value:
"user.x1fz4ii.video.modify"Name of the Pushd event sent when this user updates a video.
stringevent_video_publish- Sample value:
"user.postVideo.x1fz4ii"Name of the Pushd event sent when this user post a video.
dictevents- Sample value:
{"video.publish":"user.postVideo.x1fz4ii","video.modify":"user.x1fz4ii.video.modify","video.live.offair":"user.x1fz4ii.video.live.offAir"}List of Pushd events sent when this user do something.
numberfacebook_id- Sample value:
1000983487930Numeric Facebook account identifier for this user. Use this to link and unlink a Dailymotion account to a Facebook account. Set the value to
nullto unlink the accounts. stringfacebook_url- Sample value:
"https:\/\/www.facebook.com\/johndoe424"Facebook profile URL of this user.
stringfirst_name- Sample value:
"John"First name of this user.
numberfollowers_total- Sample value:
42Total amount of followers of this user.
stringfullname- Sample value:
"John Doe"Full name of this user.
stringgender- Sample value:
"male"Gender of this user.
stringid- Sample value:
"x7tacpu"Unique object identifier (unique among all users)
booleanis_following- Sample value:
falseTrue if the authenticated user is following this user. If no user is authentified, it will always return false
stringitem_type- Sample value:
"user"Graph type of this object (hopefully
user) stringlanguage- Sample value:
"en"Language used by this user.
stringlast_name- Sample value:
"Doe"Last name of this user.
dictlimits- 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.
booleanlive_notification_followed_onair- Sample value:
falseTrue if this user has authorized live notifications, false otherwise.
userparent- Sample value:
"xtvxjk1"Identifier of this user's parent (use
parent.screennameto access its user name). You can retrieve sub-fields of thisuserobject using the dot-notation (e.g.:parent.id). booleanpartner- Sample value:
falseWhen the partner field is set, the user auto-accepts the T&Cs (http://www.dailymotion.com/legal/partner) and becomes a partner. Returns True if this user is a partner.
stringpassword- Sample value:
"TrickyPasswd13!"User account credentials password.
booleanpaywall- Sample value:
falseTrue if this user has an SVOD offer defined.
booleanpaywall_content- Sample value:
falseIf enabled, then the content from this user can only be access by subscribers
booleanpaywall_noads_live- Sample value:
falseIf enabled, then the subscribers won't have any ads on live from this user
booleanpaywall_noads_vod- Sample value:
falseIf enabled, then the subscribers won't have any ads on vod from this user
numberpaywall_price- Sample value:
2.95Subscription VOD price set on the user, as a float in the current currency or
null. See thecurrencyfield of the/localeendpoint to retrieve the current currency. stringpaywall_subscription_type- Sample value:
"monthly"Subscription recurrence (monthly/weekly).
stringphone- Sample value:
"555-535-2475"Phone number of this user.
numberplaylists_total- Sample value:
5Total amount of playlists of this user.
stringpost_code- Sample value:
"10022"Postal zip code of this user.
numberreposts_total- Sample value:
5The number of videos reposted by the user.
numberrevenues_claim_last_day- Sample value:
12Total amount of net revenues in USD generated through claim the last day.
numberrevenues_claim_last_month- Sample value:
310.2Total amount of net revenues in USD generated through claim the last month.
numberrevenues_claim_last_week- Sample value:
80.7Total amount of net revenues in USD generated through claim in the last 7 sliding days.
numberrevenues_claim_total- Sample value:
2502.37Total amount of net revenues in USD generated through claim since the beginning.
numberrevenues_paidcontent_last_day- Sample value:
12Total amount of net revenues in USD generated through the paid content the last day.
numberrevenues_paidcontent_last_month- Sample value:
310.2Total amount of net revenues in USD generated through the paid content the last month.
numberrevenues_paidcontent_last_week- Sample value:
80.7Total amount of net revenues in USD generated through the paid content in the last 7 sliding days.
numberrevenues_paidcontent_total- Sample value:
2502.37Total amount of net revenues in USD generated through the paid content since the beginning.
numberrevenues_video_last_day- Sample value:
12Total amount of net revenues in USD generated through the video monetization the last day.
numberrevenues_video_last_month- Sample value:
310.2Total amount of net revenues in USD generated through the video monetization the last month.
numberrevenues_video_last_week- Sample value:
80.7Total amount of net revenues in USD generated through the video monetization in the last 7 sliding days.
numberrevenues_video_total- Sample value:
2502.37Total amount of net revenues in USD generated through the video monetization since the beginning.
numberrevenues_website_last_day- Sample value:
12Total amount of net revenues in USD generated through the website monetization the last day.
numberrevenues_website_last_month- Sample value:
310.2Total amount of net revenues in USD generated through the website monetization the last month.
numberrevenues_website_last_week- Sample value:
80.7Total amount of net revenues in USD generated through the website monetization in the last 7 sliding days.
numberrevenues_website_total- Sample value:
2502.37Total amount of net revenues in USD generated through the website monetization since the beginning.
stringscreenname- Sample value:
"johndoe424"Returns this user's full name or login depending on the user's preferences.
stringstatus- Sample value:
"active"Current user account status.
stringtwitter_url- Sample value:
"https:\/\/twitter.com\/johndoe424"Twitter profile URL of this user.
dateupdated_time- Sample value:
1404129540Date and time when this user was last updated.
urlurl- Sample value:
"http:\/\/www.dailymotion.com\/johndoe424"URL of this user's profile on Dailymotion.
stringusername- Sample value:
"johndoe424"User account credentials login.
booleanverified- Sample value:
falseTrue if this user is a verified partner.
numbervideos_total- Sample value:
27Total amount of public videos of this user.
videovideostar- Sample value:
"xtvxjk1"Showcased video of this user. You can retrieve sub-fields of this
videoobject using the dot-notation (e.g.:videostar.id). numberviews_total- Sample value:
1239873Total aggregated number of views on all of this user's videos.
stringwebhook_events- Sample value:
"video.published,video.format.processing"The events you want to subscribe to.
urlwebhook_url- Sample value:
"http:\/\/183.111.158.48\/dailymotion-ytn\/resultChk.php"Callback URL called when events are triggered.
stringwebsite_url- Sample value:
"http:\/\/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. Follow our API ChangeLog regularly to stay informed about deprecations and upcoming end of life dates.
urlavatar_large_url- This field was deprecated on September 3, 2013.Use the `avatar_480_url`` field instead.End of support: September 3, 2014.Sample value:
"http:\/\/www.example.org"URL of this user's avatar image (160px wide square).
urlavatar_medium_url- This field was deprecated on September 3, 2013.Use the
avatar_240_urlfield instead.End of support: September 3, 2014.Sample value:"http:\/\/www.example.org"URL of this user's avatar image (80px wide square).
urlavatar_small_url- This field was deprecated on September 3, 2013.Use the
avatar_60_urlfield instead.End of support: September 3, 2014.Sample value:"http:\/\/www.example.org"URL of this user's avatar image (40px wide square).
urlbackground_url- This field was deprecated on July 21, 2014.The custom skin feature has been discontinued.End of support: July 21, 2015.Sample value:
"http:\/\/www.example.org"URL of this user's background image (Max 1680px by 2000px).
urlbanner_url- This field was deprecated on July 21, 2014.The custom skin feature has been discontinued.End of support: July 21, 2015.Sample value:
"http:\/\/www.example.org"URL of this user's banner image (Max 970px by 120px).
numberfans_total- This field was deprecated on February 23, 2016.Use the
followers_totalfield instead.End of support: August 23, 2016.Sample value:42Total amount of fans of this user.
stringmini_banner_url- This field was deprecated on July 10, 2013.The minibanner feature has been discontinued.End of support: July 10, 2014.Sample value:
"string example"URL of this user's minibanner image (Max 215px by 30px).
stringtype- This field was deprecated on December 5, 2014.Use the
partnerandverifiedfields instead.End of support: December 5, 2015.Sample value:"ugc"Type of user account.
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.
flags- Sample value:
mostpopular,partnerList of simple boolean flags available to reduce the result set.
ids- Sample value:
xk2k3,x1fz4ii,xw83x45Limit the result set to this list of user identifiers.
language- Sample value:
enLimit the result set to users using this language.
list- Sample value:
recommendedLimit the result set to this user list.
mostpopular- Sample value:
n/aLimit the result set to the most popular users.
parent- Sample value:
xtvxjk1Limit the result set to children of this user.
partner- Sample value:
n/aLimit the result set to partner users.
recommended- Sample value:
n/aLimit the result set to recommended users.
recommendedforchannel- Sample value:
newsLimit the result set to this channel's top users.
search- Sample value:
johnLimit the result set to this full text search.
sort- Sample value:
popularChange the default result set ordering. Notes:
- Deprecated sorts (
recent,daily,weekly,monthly,rated,commented,random,alpha,alphaZA,alphaZAFullname)
- Deprecated sorts (
usernames- Sample value:
rs,spi0nLimit the results set to users with a list of usernames
verified- Sample value:
n/aLimit 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. Follow our API ChangeLog regularly to stay informed about deprecations and upcoming end of life dates.
filters- This filter was deprecated on January 5, 2015.The
filtersshortcut has been deprecated. From now on, if you need to use a simple boolean filter, either use the newflagssystem or look for an equivalent in the filters list (e.g.:?filters=featured,creativebecomes?flags=featured,creativeor simply?featured&creative).End of support: January 5, 2017.Sample value:mostpopularList of simple boolean filters available to reduce the result set.
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.
[user]blacklistedusersList of blacklisted users that this user doesn't want to see in his recommendations anymore.
This connection joins an object of typeuserwith a list ofuserobjects.Read the user's blacklistedusers connection
You can retrieve the list of blacklistedusers connected to a
userobject by issuing a GET request to/user/<USER_ID>/blacklistedusers. You can specify the list of fields from theuserobjects to be returned using thefieldsparameter.
Test it with the API Explorer.You can also see if any blacklisteduser is connected to an existing
userobject by issuing a GET request to/user/<USER_ID>/blacklistedusers/<USER_ID>. This will return a list containing only the connecteduserobject or an empty list if it is not connected.Create a user's blacklistedusers connection
You can connect blacklistedusers to an existing
userobject one by one by issuing multiple POST requests to/me/blacklistedusers/<USER_ID>.Delete a user's blacklistedusers connection
You can disconnect blacklistedusers from a
userobject by issuing DELETE requests to/me/blacklistedusers/<USER_ID>. You can also disconnect all blacklistedusers at once by issuing a POST request to/me/blacklisteduserswith an emptyidsquery-string parameter.
Test it with the API Explorer.[video]blacklistedvideosList of blacklisted videos that this user doesn't want to see in his recommendations anymore.
This connection joins an object of typeuserwith a list ofvideoobjects.Read the user's blacklistedvideos connection
You can retrieve the list of blacklistedvideos connected to a
userobject by issuing a GET request to/user/<USER_ID>/blacklistedvideos. You can specify the list of fields from thevideoobjects to be returned using thefieldsparameter.
Test it with the API Explorer.You can also see if any blacklistedvideo is connected to an existing
userobject by issuing a GET request to/user/<USER_ID>/blacklistedvideos/<VIDEO_ID>. This will return a list containing only the connectedvideoobject or an empty list if it is not connected.Create a user's blacklistedvideos connection
You can connect blacklistedvideos to an existing
userobject one by one by issuing multiple POST requests to/me/blacklistedvideos/<VIDEO_ID>.Delete a user's blacklistedvideos connection
You can disconnect blacklistedvideos from a
userobject by issuing DELETE requests to/me/blacklistedvideos/<VIDEO_ID>. You can also disconnect all blacklistedvideos at once by issuing a POST request to/me/blacklistedvideoswith an emptyidsquery-string parameter.
Test it with the API Explorer.[user]childrenList of this user's children.
This connection joins an object of typeuserwith a list ofuserobjects.Read the user's children connection
You can retrieve the list of children connected to a
userobject by issuing a GET request to/user/<USER_ID>/children. You can specify the list of fields from theuserobjects to be returned using thefieldsparameter.
Test it with the API Explorer.You can also see if any children is connected to an existing
userobject by issuing a GET request to/user/<USER_ID>/children/<USER_ID>. This will return a list containing only the connecteduserobject or an empty list if it is not connected.Create a user's children connection
You can connect children to an existing
userobject 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
userobject by issuing DELETE requests to/me/children/<USER_ID>. You can also disconnect all children at once by issuing a POST request to/me/childrenwith an emptyidsquery-string parameter.
Test it with the API Explorer.[comment]commentsList of comments posted by this user.
This connection joins an object of typeuserwith a list ofcommentobjects.Read the user's comments connection
You can retrieve the list of comments connected to a
userobject by issuing a GET request to/user/<USER_ID>/comments. You can specify the list of fields from thecommentobjects to be returned using thefieldsparameter.
Test it with the API Explorer.[video]favoritesList of videos favorited by this user.
This connection joins an object of typeuserwith a list ofvideoobjects.Read the user's favorites connection
You can retrieve the list of favorites connected to a
userobject by issuing a GET request to/user/<USER_ID>/favorites. You can specify the list of fields from thevideoobjects to be returned using thefieldsparameter.
Test it with the API Explorer.You can also see if any favorite is connected to an existing
userobject by issuing a GET request to/user/<USER_ID>/favorites/<VIDEO_ID>. This will return a list containing only the connectedvideoobject or an empty list if it is not connected.Create a user's favorites connection
You can connect favorites to an existing
userobject 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
userobject by issuing DELETE requests to/me/favorites/<VIDEO_ID>. You can also disconnect all favorites at once by issuing a POST request to/me/favoriteswith an emptyidsquery-string parameter.
Test it with the API Explorer.[video]featuresList of videos featured by this user.
This connection joins an object of typeuserwith a list ofvideoobjects.Read the user's features connection
You can retrieve the list of features connected to a
userobject by issuing a GET request to/user/<USER_ID>/features. You can specify the list of fields from thevideoobjects to be returned using thefieldsparameter.
Test it with the API Explorer.You can also see if any feature is connected to an existing
userobject by issuing a GET request to/user/<USER_ID>/features/<VIDEO_ID>. This will return a list containing only the connectedvideoobject or an empty list if it is not connected.Create a user's features connection
You can connect features to an existing
userobject 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
userobject by issuing DELETE requests to/me/features/<VIDEO_ID>. You can also disconnect all features at once by issuing a POST request to/me/featureswith an emptyidsquery-string parameter.
Test it with the API Explorer.[user]followersList of this user's followers.
This connection joins an object of typeuserwith a list ofuserobjects.Read the user's followers connection
You can retrieve the list of followers connected to a
userobject by issuing a GET request to/user/<USER_ID>/followers. You can specify the list of fields from theuserobjects to be returned using thefieldsparameter.
Test it with the API Explorer.[user]followingList of users followed by this user.
This connection joins an object of typeuserwith a list ofuserobjects.Read the user's following connection
You can retrieve the list of following connected to a
userobject by issuing a GET request to/user/<USER_ID>/following. You can specify the list of fields from theuserobjects to be returned using thefieldsparameter.
Test it with the API Explorer.You can also see if any following is connected to an existing
userobject by issuing a GET request to/user/<USER_ID>/following/<USER_ID>. This will return a list containing only the connecteduserobject or an empty list if it is not connected.Create a user's following connection
You can connect following to an existing
userobject 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
userobject by issuing DELETE requests to/me/following/<USER_ID>. You can also disconnect all following at once by issuing a POST request to/me/followingwith an emptyidsquery-string parameter.
Test it with the API Explorer.[video]historyList of recently watched videos
This connection joins an object of typeuserwith a list ofvideoobjects.Read the user's history connection
You can retrieve the list of history connected to a
userobject by issuing a GET request to/user/<USER_ID>/history. You can specify the list of fields from thevideoobjects to be returned using thefieldsparameter.
Test it with the API Explorer.You can also see if any history is connected to an existing
userobject by issuing a GET request to/user/<USER_ID>/history/<VIDEO_ID>. This will return a list containing only the connectedvideoobject or an empty list if it is not connected.Create a user's history connection
You can connect history to an existing
userobject 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
userobject by issuing DELETE requests to/me/history/<VIDEO_ID>. You can also disconnect all history at once by issuing a POST request to/me/historywith an emptyidsquery-string parameter.
Test it with the API Explorer.[user]offersList of offers this user has paid to access.
This connection joins an object of typeuserwith a list ofuserobjects.Read the user's offers connection
You can retrieve the list of offers connected to a
userobject by issuing a GET request to/user/<USER_ID>/offers. You can specify the list of fields from theuserobjects to be returned using thefieldsparameter.
Test it with the API Explorer.You can also see if any offer is connected to an existing
userobject by issuing a GET request to/user/<USER_ID>/offers/<USER_ID>. This will return a list containing only the connecteduserobject or an empty list if it is not connected.Create a user's offers connection
You can connect offers to an existing
userobject one by one by issuing multiple POST requests to/me/offers/<USER_ID>.Delete a user's offers connection
You can disconnect offers from a
userobject by issuing DELETE requests to/me/offers/<USER_ID>. You can also disconnect all offers at once by issuing a POST request to/me/offerswith an emptyidsquery-string parameter.
Test it with the API Explorer.[user]parentsList of this user's parents.
This connection joins an object of typeuserwith a list ofuserobjects.Read the user's parents connection
You can retrieve the list of parents connected to a
userobject by issuing a GET request to/user/<USER_ID>/parents. You can specify the list of fields from theuserobjects to be returned using thefieldsparameter.
Test it with the API Explorer.You can also see if any parent is connected to an existing
userobject by issuing a GET request to/user/<USER_ID>/parents/<USER_ID>. This will return a list containing only the connecteduserobject or an empty list if it is not connected.Create a user's parents connection
You can connect parents to an existing
userobject 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
userobject by issuing DELETE requests to/me/parents/<USER_ID>. You can also disconnect all parents at once by issuing a POST request to/me/parentswith an emptyidsquery-string parameter.
Test it with the API Explorer.[playlist]playlistsList of playlists created by this user.
This connection joins an object of typeuserwith a list ofplaylistobjects.Read the user's playlists connection
You can retrieve the list of playlists connected to a
userobject by issuing a GET request to/user/<USER_ID>/playlists. You can specify the list of fields from theplaylistobjects to be returned using thefieldsparameter.
Test it with the API Explorer.Create a user's playlists connection
You can create a new
playlistobject and automatically connect it to an existinguserobject by issuing a POST request to/me/playlists.In return, you will receive a
dictvalue containing the newly created object, including its identifier.
Test it with the API Explorer.Delete a user's playlists connection
You can delete a
playlistobject connected to auserobject the same way you would if it wasn't attached, that is by issuing a DELETE request to/playlist/<PLAYLIST_ID>.
Test it with the API Explorer.[user]recommendedList of users recommended to this user.
This connection joins an object of typeuserwith a list ofuserobjects.Read the user's recommended connection
You can retrieve the list of recommended connected to a
userobject by issuing a GET request to/user/<USER_ID>/recommended. You can specify the list of fields from theuserobjects to be returned using thefieldsparameter.
Test it with the API Explorer.[user]relationsList of user accounts related to this user through their parents.
This connection joins an object of typeuserwith a list ofuserobjects.Read the user's relations connection
You can retrieve the list of relations connected to a
userobject by issuing a GET request to/user/<USER_ID>/relations. You can specify the list of fields from theuserobjects to be returned using thefieldsparameter.
Test it with the API Explorer.[video]subscriptionsList of videos from this user's subscriptions.
This connection joins an object of typeuserwith a list ofvideoobjects.Read the user's subscriptions connection
You can retrieve the list of subscriptions connected to a
userobject by issuing a GET request to/user/<USER_ID>/subscriptions. You can specify the list of fields from thevideoobjects to be returned using thefieldsparameter.
Test it with the API Explorer.[video]videosList of videos uploaded by this user.
This connection joins an object of typeuserwith a list ofvideoobjects.Read the user's videos connection
You can retrieve the list of videos connected to a
userobject by issuing a GET request to/user/<USER_ID>/videos. You can specify the list of fields from thevideoobjects to be returned using thefieldsparameter.
Test it with the API Explorer.Create a user's videos connection
You can create a new
videoobject and automatically connect it to an existinguserobject by issuing a POST request to/me/videos.In return, you will receive a
dictvalue containing the newly created object, including its identifier.
Test it with the API Explorer.Delete a user's videos connection
You can delete a
videoobject connected to auserobject 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.[video]watchlaterList of watch later videos.
This connection joins an object of typeuserwith a list ofvideoobjects.Read the user's watchlater connection
You can retrieve the list of watchlater connected to a
userobject by issuing a GET request to/user/<USER_ID>/watchlater. You can specify the list of fields from thevideoobjects to be returned using thefieldsparameter.
Test it with the API Explorer.You can also see if any watchlater is connected to an existing
userobject by issuing a GET request to/user/<USER_ID>/watchlater/<VIDEO_ID>. This will return a list containing only the connectedvideoobject or an empty list if it is not connected.Create a user's watchlater connection
You can connect watchlater to an existing
userobject 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
userobject by issuing DELETE requests to/me/watchlater/<VIDEO_ID>. You can also disconnect all watchlater at once by issuing a POST request to/me/watchlaterwith an emptyidsquery-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. Follow our API ChangeLog regularly to stay informed about deprecations and upcoming end of life dates.
[user]fans- This filter was deprecated on February 23, 2016.Use the
followersendpoint instead.End of support: August 23, 2016.List of this user's fans.
This connection joins an object of typeuserwith a list ofuserobjects.Read the user's fans connection
You can retrieve the list of fans connected to a
userobject by issuing a GET request to/user/<USER_ID>/fans. You can specify the list of fields from theuserobjects to be returned using thefieldsparameter.
Test it with the API Explorer. [user]friends- This filter was deprecated on December 29, 2015.friends feature have been discontinued.End of support: February 29, 2016.
List of this user's friends.
This connection joins an object of typeuserwith a list ofuserobjects.Read the user's friends connection
You can retrieve the list of friends connected to a
userobject by issuing a GET request to/user/<USER_ID>/friends. You can specify the list of fields from theuserobjects to be returned using thefieldsparameter.
Test it with the API Explorer.You can also see if any friend is connected to an existing
userobject by issuing a GET request to/user/<USER_ID>/friends/<USER_ID>. This will return a list containing only the connecteduserobject or an empty list if it is not connected.Create a user's friends connection
You can connect friends to an existing
userobject one by one by issuing multiple POST requests to/me/friends/<USER_ID>.Delete a user's friends connection
You can disconnect friends from a
userobject by issuing DELETE requests to/me/friends/<USER_ID>. You can also disconnect all friends at once by issuing a POST request to/me/friendswith an emptyidsquery-string 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 channel, playlist, user and video 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 on
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.
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.
dictaccess_error- Sample value:
{"title":"Error occured","message":"An <b>error<\/b> occured!","raw_message":"An error occured!","code":"DMXXX"}Error message explaining why the access to this video can't be granted.
titlecontains a short formatting-free description of the problem.messagecontains a long and possibly HTML-formatted description of the problem.raw_messagecontains a long formatting-free description of the problem.codecontains the error code associated with the error (see the description of error codes).Reading and/or editing this field requires some contextual information. Please refer to the API global parameters list for more information about
context.Context Description Required For reading For writing embedder_urlURL of the page that embeds the video. NoYesNoexplicitwhether or not an explicit video can be shown on an embedded player. NoYesNourlbackthe URL to show the user if the video is not accessible. NoYesNo dateadded_in_playlist_at- Sample value:
1287507036Date and time when this video was added in one of the current user's playlists.
booleanads- Sample value:
falseDefines if this video accepts associated ads.
booleanadvertising_instream_blocked- Sample value:
falseTrue if the owner blocked instream ads on this video.
booleanallow_comments- Sample value:
falseTrue if posting comments on this video is allowed.
booleanallow_embed- Sample value:
falseTrue if this video can be embedded outside of Dailymotion.
booleanallowed_in_playlists- Sample value:
falseTrue if this video can be added to playlists.
numberaspect_ratio- Sample value:
1.7777777Aspect ratio of this video (i.e.: 1.33333 for 4/3, 1.77777 for 16/9...).
numberaudience- Sample value:
450Current live stream audience.
nullif the audience shouldn't be taken into consideration. numberaudience_total- Sample value:
2457Total live stream audience since stream creation.
nullif the audience shouldn't be taken into account. arrayavailable_formats- Sample value:
["ld","sd","hq","hd720","hd1080"]List of available stream formats for this video.
numberbookmarks_total- Sample value:
102Total amount of times this video has been added to a user's favorites.
channelchannel- Sample value:
"news"Channel of this video. You can retrieve sub-fields of this
channelobject using the dot-notation (e.g.:channel.id). stringchat_embed_html- Sample value:
"<iframe frameborder=\"0\" width=\"380\" height=\"240\" src=\"http:\/\/live-chat.dmcdn.net\/#DailymotionAPI\/x26m1j4\" allowfullscreen ><\/iframe>"HTML embedding code of the chat.
Reading and/or editing this field requires some contextual information. Please refer to the API global parameters list for more information about
context.Context Description Required For reading For writing skinApply skin to the chat, possible values:
- dailymotion_games: DM GamesNoYesNo urlchat_embed_url- Sample value:
"http:\/\/live-chat.dmcdn.net\/#DailymotionAPI\/x26m1j4"URL to embed chat for this video.
Reading and/or editing this field requires some contextual information. Please refer to the API global parameters list for more information about
context.Context Description Required For reading For writing skinApply skin to the chat, possible values:
- dailymotion_games: DM GamesNoYesNo userclaimer- Sample value:
"x7gdobi"User claiming revenue sharing on this video. You can retrieve sub-fields of this
userobject using the dot-notation (e.g.:claimer.id). stringcleeng_svod_offer_id- Sample value:
"S920651383_B1"SVOD offer identifier of this video.
stringcleeng_tvod_offer_id- Sample value:
"S9219823783_C1"TVOD offer idendifier of this video.
numbercomments_total- Sample value:
93Total amount of comments on this video.
stringcountry- Sample value:
"US"Country of this video (declarative, may be null).
datecreated_time- Sample value:
1287507036Date and time when this video was uploaded.
numberdelay- Sample value:
120Delay to add to the broadcast on the ingest (set to 0 for no delay).
stringdescription- Sample value:
"This is a sample description for my video."Comprehensive description of this video. Maximumm length is set to 3000 (5000 for partners).
stringdetected_language- Sample value:
"en"Detected language of this video.
This value is computed internaly by analyzing metadatas such as title and description.
numberduration- Sample value:
423Duration of this video in seconds.
stringembed_html- Sample value:
"<iframe frameborder=\"0\" src=\"http:\/\/www.dailymotion.com\/embed\/video\/x26m1j4\" width=\"480\" height=\"270\""HTML embedding code.
urlembed_url- Sample value:
"http:\/\/www.dailymotion.com\/embed\/video\/x26m1j4"URL to embed this video.
numberencoding_progress- Sample value:
22When this video
statusfield is set toprocessing, 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. dateend_time- Sample value:
1404129540End date and time of this live stream.
stringevent_delete- Sample value:
"live.x26m1j4.delete"Name of the Pushd event sent on video deletion.
stringevent_live_offair- Sample value:
"live.x26m1j4.offAir"Name of the Pushd event sent on video deletion.
stringevent_live_onair- Sample value:
"live.x26m1j4.onAir"Name of the Pushd event sent when the live goes on air.
stringevent_modify- Sample value:
"live.x26m1j4.modify"Name of the Pushd event sent on live stream modification.
dictevents- Sample value:
{"modify":"video.xrevd9.edit","delete":"video.xrevd9.delete","offair":"live.xrevd9.offAir"}List of Pushd events sent when something happen with this video.
booleanexplicit- Sample value:
falseTrue if this video is explicit.
datefavorited_at- Sample value:
1287507036Date and time when this video was bookmarked by the current user.
urlfilmstrip_60_url- Sample value:
"http:\/\/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.
stringgenre- Sample value:
"Comedy"Genre (extended data) of this video.
arraygeoblocking- 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
denyorallow(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. arraygeoloc- 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).
stringid- Sample value:
"x5qsb92"Unique object identifier (unique among all videos)
stringitem_type- Sample value:
"video"Graph type of this object (hopefully
video) stringlanguage- Sample value:
"en"Language of this video. This value is declarative and corresponds to the user-declared spoken language of the video.
booleanlive_ad_break- Sample value:
falseReturns true if the owner of the live stream can launch an ad break.
datelive_ad_break_end_time- Sample value:
1287507036Estimated time for the end of the commercial ad break.
numberlive_ad_break_launch- Sample value:
2Launches a given number of ad breaks for this live stream.
numberlive_ad_break_remaining- Sample value:
2Returns the number of remaining ad break for this live stream.
datelive_airing_time- Sample value:
1287507036Date and time when this live stream went on-air for the last time
numberlive_audio_bitrate- Sample value:
125928Live stream information: audio bitrate (b/s)
booleanlive_auto_record- Sample value:
falseTrue if this live stream is automatically recorded.
booleanlive_auto_record_as_public- Sample value:
falseTrue if this live's automatically recorded videos are public.
booleanlive_broadcasting- Sample value:
falseFalse if this live stream is only visible by his owner.
urllive_frag_publish_url- Sample value:
"http:\/\/upload-03.dailymotion.com\/live?seal=..."URL to publish the fragmented live stream on. The current logged in user need to own this video in order to retrieve this field.
dictlive_ingests- Sample value:
{"Default":"publish.dailymotion.com"}List of available live ingests.
urllive_publish_url- 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.Context Description Required For reading For writing refreshPass this context value (refresh=true) if you need to refresh the stream key for the publish URL. NoYesNo booleanlive_thumbnail_auto_refresh- Sample value:
falseToggles the automatic refresh of the thumbnail for the given live stream video.
numberlive_video_bitrate- Sample value:
2764424Live stream information: video bitrate (b/s)
numberlive_video_fps- Sample value:
30Live stream information: frame(s) per second
numberlive_video_height- Sample value:
720Live stream information: height (px)
numberlive_video_keyframe_interval- Sample value:
2000Live stream information: keyframe interval (ms)
numberlive_video_width- Sample value:
1280Live stream information: width (px)
stringmedia_type- Sample value:
"video"Media type of this content.
arraymediablocking- Sample value:
["country\/fr\/media\/iptv","country\/fr\/media\/mobile"]List of blocking rules per country and device to be applied on this video. Each rule has the following format : country/[country code]/media/[media id]. Available country codes are:
ar,at,br,ca,ch,cn,de,dk,es,fr,gb,gr,ie,in,it,js,jp,kr,mx,nl,pl,pr,pt,ro,ru,se,tr,us,allandother. Available medias identifiers are:iptv,mobile,tvhz,webandother. stringmetadata_credit_actors- Sample value:
"Michael J. Fox, Christopher Lloyd"Actors playing in this video.
stringmetadata_credit_director- Sample value:
"Robert Zemeckis"Director of this video.
stringmetadata_genre- Sample value:
"action"Genre of this video.
stringmetadata_original_language- Sample value:
"en"Original language code (ISO-3166) of this video.
stringmetadata_original_title- Sample value:
"Back to the Future"Original title of this video.
stringmetadata_released- Sample value:
"1985-07-03"Date of release or production of this video (RFC-822).
stringmetadata_show_episode- Sample value:
"10"Number or name of the episode of this video.
stringmetadata_show_season- Sample value:
"Season 3"Number or name of the season of this video.
stringmetadata_visa- Sample value:
"60261"Visa number of this video.
stringmode- Sample value:
"vod"Stream mode.
booleanmoderated- Sample value:
falseTrue if this live stream is moderated.
booleanonair- Sample value:
falseTrue if this live stream is broadcasting and watchable in the player.
userowner- Sample value:
"x7gdobi"Owner of this video. You can retrieve sub-fields of this
userobject using the dot-notation (e.g.:owner.id). booleanpartner- Sample value:
falseTrue if the video is owned by a partner.
stringpassword- Sample value:
"hdI76FGhwo3n"If a video is protected by a password, this field contains the password. 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".
booleanpaywall- Sample value:
falseTrue if the access to this video is subject to conditions.
booleanpersonal- Sample value:
trueTrue if this video is personal (not indexed in search engine and recommendations).
dateplayback_availability_time- Sample value:
1549806444Date and time when this video should be available for playback in the player.
booleanposter- Sample value:
falseTrue if this video has a poster image.
urlposter_45x60_url- Sample value:
"http:\/\/ak.dailymotion.com\/thumbnail\/x26m1j4\/45x60-abc.jpg"URL of this video's poster image (45x60).
urlposter_90x120_url- Sample value:
"http:\/\/ak.dailymotion.com\/thumbnail\/x26m1j4\/95x120-abc.jpg"URL of this video's poster image (95x120).
urlposter_135x180_url- Sample value:
"http:\/\/ak.dailymotion.com\/thumbnail\/x26m1j4\/135x180-abc.jpg"URL of this video's poster image (135x180).
urlposter_180x240_url- Sample value:
"http:\/\/ak.dailymotion.com\/thumbnail\/x26m1j4\/180x240-abc.jpg"URL of this video's poster image (180x240).
urlposter_270x360_url- Sample value:
"http:\/\/ak.dailymotion.com\/thumbnail\/x26m1j4\/270x360-abc.jpg"URL of this video's poster image (270x360).
urlposter_360x480_url- Sample value:
"http:\/\/ak.dailymotion.com\/thumbnail\/x26m1j4\/360x480-abc.jpg"URL of this video's poster image (360x480).
urlposter_url- Sample value:
"http:\/\/www.myserver.com\/path\/to\/file.jpeg"URL of this video's poster image (540x720).
stringprice_details- Sample value:
"$2.95 per week"Price and duration for a TVOD or SVOD video.
booleanprivate- Sample value:
trueTrue if this video is private.
stringprivate_id- 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.
booleanpublished- Sample value:
falseTrue if this video is published (may still be waiting for encoding, see the
statusfield for more information). numberpublishing_progress- Sample value:
22When this video
statusfield is set toprocessing, this parameter indicates a number between 0 and 100 corresponding to the percentage of progress from the statuswaitingtoready. Unlikeencoding_progressthat can reach 100 well before the switch fromprocessingtoready, this value will not. daterecord_end_time- Sample value:
1287507036Date and time when the video record was stopped.
daterecord_start_time- Sample value:
1287507036Date and time when the video record started.
stringrecord_status- 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
- starting: Recording video is going to start
videorecorded_from- Sample value:
"x7gdobi"Parent live stream video of a video recording. You can retrieve sub-fields of this
videoobject using the dot-notation (e.g.:recorded_from.id). stringrecurrence- Sample value:
"daily"Recurrence of this live stream.
stringrental_duration- Sample value:
"24"Standard rental duration of this video in hours. Will be
nullif this video is not behind a paywall stringrental_price- Sample value:
"1.95"Price of renting this video as a float in the current currency or
nullif this video is not behind a paywall. See thecurrencyfield of the/localeendpoint to retrieve the current currency. numberrental_start_time- Sample value:
3Timelapse of this video free preview, in seconds.
dictsharing_urls- Sample value:
{"facebookURL":"...","twitterURL":"..."}URLs to share this video on social networks.
Reading and/or editing this field requires some contextual information. Please refer to the API global parameters list for more information about
context.Context Description Required For reading For writing embedder_urlURL of the page that embeds the current video player. NoYesNo stringsoundtrack_album- Sample value:
"Holcyon Days"The name of the soundtrack album.
stringsoundtrack_album_id- Sample value:
"1234-32131"Identify the album from where the soundtrack come from.
stringsoundtrack_artist- Sample value:
"Ellie Goulding"The name of the artist
stringsoundtrack_artist_id- Sample value:
"id323234343"The ID of the artist given by the label.
stringsoundtrack_genre- Sample value:
"Pop"The genre of the soundtrack
stringsoundtrack_isrc- Sample value:
"FR-6V8-21-83311"The International Standard Recording Code of the soundtrack associated to this video.
stringsoundtrack_iswc- Sample value:
"T-034.524.680-1"The International Standard Musical Work Code of the soundtrack associated to this video.
stringsoundtrack_itunes_id- Sample value:
"id483555052"The ID provided by itunes for this soundtrack.
stringsoundtrack_label- Sample value:
"Sony"The name of the record label.
stringsoundtrack_muyap- Sample value:
"BXjVm33LBNCIGfS6GBNw4A=="The MUYAP ID (Turkish Phonographic Industry Society Identifier) of the soundtrack.
stringsoundtrack_track_id- Sample value:
"4234234-23"The ID of the track/clip given by the label.
stringsoundtrack_upc- Sample value:
"3610154759952"The Universal Product Code of the soundtrack.
arraysources- Sample value:
["featured","subscription"]Sources from where this video is coming in the 'What to Watch' context. If the
list=what-to-watchparameter isn't set, this field is always null. urlsprite_320x_url- Sample value:
"http:\/\/www.example.org"URL of the sprite of this video, width:320px
datestart_time- Sample value:
1287507036Start date and time of this live stream.
stringstatus- Sample value:
"processing"Status of this video. A video requires the
publishedstatus to be set to true to be watchable. urlstream_h264_hd1080_url- 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. urlstream_h264_hd_url- 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. urlstream_h264_hq_url- Sample value:
"http:\/\/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. urlstream_h264_qhd_url- Sample value:
"http:\/\/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. urlstream_h264_uhd_url- 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. urlstream_h264_url- Sample value:
"http:\/\/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. booleansvod- Sample value:
falseTrue if this video is behind an SVOD paywall.
arraytags- Sample value:
["party","John Doe"]List of tags attached to this video.
datetaken_time- Sample value:
1287446400Date when this video was recorded (declarative). This value will be rounded to midnight of the given day.
urlthumbnail_60_url- Sample value:
"http:\/\/s2.dmcdn.net\/F83Oh\/x60-sjB.jpg"URL of this video's thumbnail image (60px height).
urlthumbnail_120_url- Sample value:
"http:\/\/s2.dmcdn.net\/CTrg1\/x120-Zfs.jpg"URL of this video's thumbnail image (120px height).
urlthumbnail_180_url- Sample value:
"http:\/\/s2.dmcdn.net\/CTrg1\/x180-o-x.jpg"URL of this video's thumbnail image (180px height).
urlthumbnail_240_url- Sample value:
"http:\/\/s2.dmcdn.net\/CTrg1\/x240-tGY.jpg"URL of this video's thumbnail image (240px height).
urlthumbnail_360_url- Sample value:
"http:\/\/s2.dmcdn.net\/CTrg1\/x360-KuJ.jpg"URL of this video's thumbnail image (360px height).
urlthumbnail_480_url- Sample value:
"http:\/\/s2.dmcdn.net\/CTrg1\/x480-hw4.jpg"URL of this video's thumbnail image (480px height).
urlthumbnail_720_url- Sample value:
"http:\/\/s2.dmcdn.net\/CTrg1\/x720-Ec7.jpg"URL of this video's thumbnail image (720px height).
urlthumbnail_url- Sample value:
"http:\/\/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. Note: for live streams, the thumbnail is automatically generated every 5 mn by default; it is not possible anymore to manually refresh the preview.
urltiny_url- Sample value:
"http:\/\/dai.ly\/sk2k3jd"Tiny URL of this video.
stringtitle- Sample value:
"My video title"Title of this video.
booleantvod- Sample value:
falseTrue if this video is behind a TVOD paywall.
dateupdated_time- Sample value:
1404129540Date and time when this video was last updated.
urlurl- Sample value:
"http:\/\/www.dailymotion.com\/video\/x26m1j4_wildlife_animals"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/uploadAPI 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. booleanverified- Sample value:
falseTrue if the video is owned by a verified partner.
numberviews_last_day- Sample value:
203Total number of views on this video in the last 24 sliding hours.
numberviews_last_hour- Sample value:
102Total number of views on this video in the last sliding hour.
numberviews_last_month- Sample value:
4023Total number of views on this video in the last 30 sliding days.
numberviews_last_week- Sample value:
1030Total number of views on this video in the last 7 sliding days.
numberviews_reposted_last_day- Sample value:
203Total number of views made on reposts of this video in the last 24 sliding hours.
numberviews_reposted_last_hour- Sample value:
102Total number of views made on reposts of this video in the last sliding hour.
numberviews_reposted_last_month- Sample value:
4023Total number of views made on reposts of this video in the last 30 sliding days.
numberviews_reposted_last_week- Sample value:
1030Total number of views made on reposts of this video in the last 7 sliding days.
numberviews_reposted_total- Sample value:
10203Total number of views made on reposts of this video since its publication.
numberviews_total- Sample value:
10203Total amount of views on this video since its publication.
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. Follow our API ChangeLog regularly to stay informed about deprecations and upcoming end of life dates.
boolean3d- This field was deprecated on August 14, 2015.This feature is now deprecatedEnd of support: February 14, 2016.Sample value:
falseTrue if this video is in 3D format.
booleanallowed_in_groups- This field was deprecated on June 18, 2015.The group feature have been discontinued, please use playlists.End of support: August 18, 2015.Sample value:
falseTrue if this video can be added to groups.
booleanbroadcasting- This field was deprecated on January 5, 2016.Use
live_broadcastinginstead ofbroadcastingEnd of support: January 5, 2017.Sample value:falseTrue if this live stream is ready for delivery.
stringduration_formatted- This field was deprecated on January 20, 2016.Use the
durationfield instead.End of support: July 20, 2016.Sample value:"07:03"Duration of this video (human readable).
urlfilmstrip_small_url- This field was deprecated on August 26, 2014.This field returns the sprite URL, please use the
filmstrip_60_urlfield to retrieve the real filmstrip URL.End of support: August 26, 2015.Sample value:"http:\/\/static2.dmcdn.net\/static\/video\/265\/246\/128642562:jpeg_preview_sprite.jpg?20140826113227"Sprite URL of snapshots of this video if it exists.
stringisrc- This field was deprecated on July 14, 2015.Use the
soundtrack_isrcfield instead.End of support: July 14, 2016.Sample value:"FR-6V8-21-83311"Detected ISRC (International Standard Recording Code) of the soundtrack.
booleanlive_can_ad_break- This field was deprecated on December 29, 2015.Use
live_ad_breakinstead oflive_can_ad_breakEnd of support: December 29, 2016.Sample value:falseReturns true if the owner of the live stream can launch an ad break.
numberlive_launch_ad_break- This field was deprecated on December 29, 2015.Use
live_ad_break_launchinstead oflive_launch_ad_breakEnd of support: December 29, 2016.Sample value:2Launches a given number of ad breaks for this live stream.
datemodified_time- This field was deprecated on July 2, 2014.Use the
updated_timefield instead.End of support: July 2, 2015.Sample value:1287507036Date and time when this video was last modified.
stringmuyap- This field was deprecated on July 14, 2015.Use the
soundtrack_muyapfield instead.End of support: July 14, 2016.Sample value:"BXjVm33LBNCIGfS6GBNw4A=="Detected MUYAP (Turkish Phonographic Industry Society Identifier) of the soundtrack.
urlowner_avatar_large_url- This field was deprecated on June 4, 2013.Use the
owner.avatar_large_urlsyntax instead.End of support: June 4, 2015.Sample value:"http:\/\/www.example.org"URL of the avatar image of the owner of this video (160px by 160px).
urlowner_avatar_medium_url- This field was deprecated on June 4, 2013.Use the
owner.avatar_medium_urlsyntax instead.End of support: June 4, 2015.Sample value:"http:\/\/www.example.org"URL of the avatar image of the owner of this video (80px by 80px).
urlowner_avatar_small_url- This field was deprecated on June 4, 2013.Use the
owner.avatar_small_urlsyntax instead.End of support: June 4, 2015.Sample value:"http:\/\/www.example.org"URL of the avatar image of the owner of this video (40px by 40px).
stringowner_fullname- This field was deprecated on June 4, 2013.Use the
owner.fullnamesyntax instead.End of support: June 4, 2015.Sample value:"John Doe"Full name of the owner of this video.
stringowner_screenname- This field was deprecated on June 4, 2013.Use the
owner.screennamesyntax instead.End of support: June 4, 2015.Sample value:"johndoe424"Username or fullname of the owner of this video, depending on user preference.
urlowner_url- This field was deprecated on June 4, 2013.Use the
owner.urlsyntax instead.End of support: June 4, 2015.Sample value:"http:\/\/www.dailymotion.com\/johndoe424"URL of the owner of this video.
stringowner_username- This field was deprecated on June 4, 2013.Use the
owner.usernamesyntax instead.End of support: June 4, 2015.Sample value:"johndoe424"Username of the owner of this video.
numberrating- This field was deprecated on November 26, 2014.The
ratingfeature has been discontinued.End of support: November 26, 2015.Sample value:3.4Average number of stars this video has received as a float.
numberratings_total- This field was deprecated on November 26, 2014.The
ratingfeature has been discontinued.End of support: November 26, 2015.Sample value:124Total amount of users who voted for this video.
stringrental_price_formatted- This field was deprecated on January 20, 2016.Use the
rental_pricefield instead.End of support: July 20, 2016.Sample value:"$1.95"Price of renting this video, formatted with currency according to the request localization. Will be
nullif this video is not behind a paywall. dictsoundtrack_info- This field was deprecated on July 14, 2015.Use the soundtrack related fields (
soundtrack_isrc,soundtrack_album...)End of support: July 14, 2016.Sample value:{"artist":"Mickael Jackson"}Available information about the soundtrack.
arraystrongtags- This field was deprecated on July 24, 2014.Use the
strongtagsconnection instead.End of support: July 24, 2015.Sample value:["John Doe","United States of America"]List of strong tags attached to this video.
urlswf_url- This field was deprecated on November 30, 2015.Used by the legacy player v4, not supported by the new video player.End of support: November 30, 2016.Sample value:
"http:\/\/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). urlthumbnail_large_url- This field was deprecated on June 11, 2013.Use the
thumbnail_240_urlfield instead.End of support: June 11, 2015.Sample value:"http:\/\/ak.dailymotion.com\/thumbnail\/x26m1j4\/large.jpg"URL of this video thumbnail image (320px by 240px).
urlthumbnail_medium_url- This field was deprecated on June 11, 2013.Use the
thumbnail_120_urlfield instead.End of support: June 11, 2015.Sample value:"http:\/\/ak.dailymotion.com\/thumbnail\/x26m1j4\/medium.jpg"URL of this video thumbnail image (160px by 120px).
urlthumbnail_small_url- This field was deprecated on June 11, 2013.Use the
thumbnail_60_urlfield instead.End of support: June 11, 2015.Sample value:"http:\/\/s2.dmcdn.net\/CTrg1\/small.jpg"URL of this video thumbnail image (80px by 60px).
stringtype- This field was deprecated on February 20, 2015.Use the
partnerorverifiedfields insteadEnd of support: February 20, 2016.Sample value:"ugc"Content type of this video (can be
official,creativeornull). stringupc- This field was deprecated on July 14, 2015.Use the
soundtrack_upcfield instead.End of support: July 14, 2016.Sample value:"3610154759952"Detected UPC (Universal Product Code) of the soundtrack.
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.
channel- Sample value:
newsLimit the result set to this channel.
country- Sample value:
USLimit the result set to this country (declarative).
created_after- Sample value:
1287507036Limit the result set to videos created after this date and time.
created_before- Sample value:
1287507036Limit the result set to videos created before this date and time.
detected_language- Sample value:
enLimit the result set to this language.
exclude_ids- Sample value:
xk2k3,x26m1j4,xkeg4List of video ids to exclude from the result set.
featured- Sample value:
n/aLimit the result set to featured videos.
flags- Sample value:
featured,hdList of simple boolean flags available to reduce the result set.
genre- Sample value:
ComedyLimit the result set to this genre of videos.
has_game- Sample value:
n/aLimit the result set to videos related to a video-game.
hd- Sample value:
n/aLimit the result set to high definition videos (vertical resolution greater than or equal to 720p).
ids- Sample value:
xk2k3,x26m1j4,xkeg4Limit the result set to this list of video identifiers (works only with xids).
in_history- Sample value:
n/aLimit the result set to videos in your watch history.
languages- Sample value:
fr,en,itLimit 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
localizationglobal parameter instead. list- Sample value:
what-to-watchLimit the result set to this video list.
live- Sample value:
n/aLimit the result set to live streaming videos.
live_offair- Sample value:
n/aLimit the result set to off-air live streaming videos.
live_onair- Sample value:
n/aLimit the result set to on-air live streaming videos.
live_upcoming- Sample value:
n/aLimit the result set to upcoming live streaming videos.
longer_than- Sample value:
3600Limit the results to videos with a duration longer than or equal to the specified number of minutes.
no_live- Sample value:
n/aLimit the result set to non-live streaming videos.
- Sample value:
n/aLimit the result set to free video content.
nogenre- Sample value:
ComedyLimit the result set by excluding this genre.
owners- Sample value:
user1,user2,user3Limit the result set to this list of user identifiers or logins.
partner- Sample value:
n/aLimit the result set to partner videos.
poster- Sample value:
n/aLimit the result set to videos with an existing poster.
- Sample value:
n/aLimit the result set to premium SVOD and TVOD video content.
private- Sample value:
trueLimit the result set to private videos.
search- Sample value:
footballLimit the result set to this full text search.
shorter_than- Sample value:
60Limit the results to videos with a duration shorter than or equal to the specified number of minutes.
sort- Sample value:
visitedChange the default result set ordering. Notes:
- the
relevancefilter can only be used in conjunction with thesearchfilter. - Deprecated sorts (
rated,rated-hour,rated-today,rated-week,rated-month)
- the
strongtags- Sample value:
John Doe,United States of AmericaLimit the result set to this strong tag.
svod- Sample value:
n/aLimit the result set to premium SVOD video content.
tags- Sample value:
party,John DoeLimit the result set to this full text search of video tags.
tvod- Sample value:
n/aLimit the result set to premium TVOD video content.
ugc- Sample value:
n/aLimit the result set to user generated video content (no partner content).
verified- Sample value:
n/aLimit 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. Follow our API ChangeLog regularly to stay informed about deprecations and upcoming end of life dates.
3d- This filter was deprecated on August 14, 2015.This feature is now deprecatedEnd of support: February 14, 2016.Sample value:
n/aLimit the result set to 3D videos.
filters- This filter was deprecated on January 5, 2015.The
filtersshortcut has been deprecated. From now on, if you need to use a simple boolean filter, either use the newflagssystem or look for an equivalent in the filters list (e.g.:?filters=featured,hdbecomes?flags=featured,hdor simply?featured&hd).End of support: January 5, 2017.Sample value:featured,hdList of simple boolean filters available to reduce the result set.
language- This filter was deprecated on July 2, 2014.Use the
languagesfilter instead (supports multiple languages).End of support: July 2, 2015.Sample value:enLimit the result set to this language. This value 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
localizationglobal parameter instead. modified_after- This filter was deprecated on January 22, 2015.The
modified_afterfeature has been discontinued. See thecreated_afterfield for a workaround.End of support: January 22, 2016.Sample value:1287507036Limit the result set to videos updated after this date and time.
modified_before- This filter was deprecated on January 22, 2015.The
modified_beforefeature has been discontinued. See thecreated_beforefield for a workaround.End of support: January 22, 2016.Sample value:1287507036Limit the result set to videos updated before this date and time.
owner- This filter was deprecated on July 3, 2014.Use the
ownersfilter instead (supports multiple owners).End of support: July 3, 2015.Sample value:x7gdobiLimit the result set to videos of this user.
personal- This filter was deprecated on January 22, 2015.The
personalfeature has been removed from the public API.End of support: January 22, 2016.Sample value:trueLimit the result set to personal videos.
playlist- This filter was deprecated on August 26, 2011.Use the
videosconnection on theplaylistobject instead.End of support: August 26, 2012.Sample value:x7gdobiLimits the result set to videos from this playlist.
Video 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 video object.
[comment]commentsList of comments posted on this video.
This connection joins an object of typevideowith a list ofcommentobjects.Read the video's comments connection
You can retrieve the list of comments connected to a
videoobject by issuing a GET request to/video/<VIDEO_ID>/comments. You can specify the list of fields from thecommentobjects to be returned using thefieldsparameter.
Test it with the API Explorer.Create a video's comments connection
You can create a new
commentobject and automatically connect it to an existingvideoobject by issuing a POST request to/video/<VIDEO_ID>/comments.In return, you will receive a
dictvalue containing the newly created object, including its identifier.
Test it with the API Explorer.Delete a video's comments connection
You can delete a
commentobject connected to avideoobject the same way you would if it wasn't attached, that is by issuing a DELETE request to/comment/<COMMENT_ID>.
Test it with the API Explorer.[playlist]playlistsList of playlists containing this video.
This connection joins an object of typevideowith a list ofplaylistobjects.Read the video's playlists connection
You can retrieve the list of playlists connected to a
videoobject by issuing a GET request to/video/<VIDEO_ID>/playlists. You can specify the list of fields from theplaylistobjects to be returned using thefieldsparameter.
Test it with the API Explorer.You can also see if any playlist is connected to an existing
videoobject by issuing a GET request to/video/<VIDEO_ID>/playlists/<PLAYLIST_ID>. This will return a list containing only the connectedplaylistobject or an empty list if it is not connected.Create a video's playlists connection
You can connect playlists to an existing
videoobject one by one by issuing multiple POST requests to/video/<VIDEO_ID>/playlists/<PLAYLIST_ID>.Delete a video's playlists connection
You can disconnect playlists from a
videoobject by issuing DELETE requests to/video/<VIDEO_ID>/playlists/<PLAYLIST_ID>. You can also disconnect all playlists at once by issuing a POST request to/video/<VIDEO_ID>/playlistswith an emptyidsquery-string parameter.
Test it with the API Explorer.[video]recordingsList of videos recorded from this video live.
This connection joins an object of typevideowith a list ofvideoobjects.Read the video's recordings connection
You can retrieve the list of recordings connected to a
videoobject by issuing a GET request to/video/<VIDEO_ID>/recordings. You can specify the list of fields from thevideoobjects to be returned using thefieldsparameter.
Test it with the API Explorer.List of videos related to this video.
This connection joins an object of typevideowith a list ofvideoobjects.Read the video's related connection
You can retrieve the list of related connected to a
videoobject by issuing a GET request to/video/<VIDEO_ID>/related. You can specify the list of fields from thevideoobjects to be returned using thefieldsparameter.
Test it with the API Explorer.[report]reportsList of reports associated with this video.
This connection joins an object of typevideowith a list ofreportobjects.Create a video's reports connection
You can create a new
reportobject and automatically connect it to an existingvideoobject by issuing a POST request to/video/<VIDEO_ID>/reportswith the following parameters.Type Parameter Required Description stringmessageNoMessage body of this report. emailsender_emailNoEmail address of the reporter. stringtypeNoType of this report. useruserNoAuthor of this report. In return, you will receive a
dictvalue containing the newly created object, including its identifier.
Test it with the API Explorer.Delete a video's reports connection
You can delete a
reportobject connected to avideoobject the same way you would if it wasn't attached, that is by issuing a DELETE request to/report/<REPORT_ID>.
Test it with the API Explorer.[video]repost_sourceThe video source of this repost.
This connection joins an object of typevideowith a list ofvideoobjects.Read the video's repost_source connection
You can retrieve the list of repost_source connected to a
videoobject by issuing a GET request to/video/<VIDEO_ID>/repost_source. You can specify the list of fields from thevideoobjects to be returned using thefieldsparameter.
Test it with the API Explorer.[subtitle]subtitlesList of subtitles available for this video.
This connection joins an object of typevideowith a list ofsubtitleobjects.Read the video's subtitles connection
You can retrieve the list of subtitles connected to a
videoobject by issuing a GET request to/video/<VIDEO_ID>/subtitles. You can specify the list of fields from thesubtitleobjects to be returned using thefieldsparameter.
Test it with the API Explorer.Create a video's subtitles connection
You can create a new
subtitleobject and automatically connect it to an existingvideoobject by issuing a POST request to/video/<VIDEO_ID>/subtitleswith the following parameters.Type Parameter Required Description stringformatYesData format, either SRT, STL (EBU style) or Time Text (TT) with all the following variants (W3C, SMTPE-TT, EBU-TT) stringlanguageYesLanguage of these subtitles. urlurlYesOn GET, the URL pointing to the latest version of the subtitles. OnPOST, URL pointing to the subtitle data in on of the valid formats. You don't need to host the file, you can use theGET /file/uploadAPI 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.In return, you will receive a
dictvalue containing the newly created object, including its identifier.
Test it with the API Explorer.Delete a video's subtitles connection
You can delete a
subtitleobject connected to avideoobject the same way you would if it wasn't attached, that is by issuing a DELETE request to/subtitle/<SUBTITLE_ID>.
Test it with the API Explorer.
Date and time when this channel was created.