Skip to content

Video API

GEThttps://api.diffbot.com/v3/video

The Video API automatically extracts detailed video information—including most metadata, thumbnail images, direct video URL and embed code from nearly any video page or video platform on the web.

Test drive Video API without a token at diffbot.com/testdrive.

Run In Postman

Example

bash
curl --request GET \
  --url 'https://api.diffbot.com/v3/video?url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DhFZFjoX2cGg&token=<DIFFBOT_TOKEN>' \
  --header 'Accept: application/json'
json
{
  "request": {
    "pageUrl": "https://www.youtube.com/watch?v=hFZFjoX2cGg",
    "api": "video",
    "version": 3
  },
  "objects": [
    {
      "date": "Sun, 24 May 2020 07:00:00 GMT",
      "images": [
        {
          "diffbotUri": "image|3|231854607",
          "title": "Backyard Squirrel Maze 1.0- Ninja Warrior Course",
          "url": "https://i.ytimg.com/vi/hFZFjoX2cGg/maxresdefault.jpg",
          "primary": true
        }
      ],
      "author": "Mark Rober",
      "mime": "video/mp4",
      "naturalHeight": 720,
      "diffbotUri": "video|3|1870173316",
      "type": "video",
      "title": "Backyard Squirrel Maze 1.0- Ninja Warrior Course",
      "url": "https://rr6---sn-5uaeznks.googlevideo.com/videoplayback?expire=1649742262&ei=Vr1UYoLhFpDm8wTUt76wAQ&ip=23.229.39.25&id=o-AOUTPxsk0l8eAnvqC6G9PtYnkFK4S-lYoQ1G-mt8W40U&itag=399&aitags=133%2C134%2C135%2C136%2C137%2C160%2C242%2C243%2C244%2C247%2C248%2C278%2C394%2C395%2C396%2C397%2C398%2C399&source=youtube&requiressl=yes&mh=s4&mm=31%2C29&mn=sn-5uaeznks%2Csn-5ualdnl7&ms=au%2Crdu&mv=u&mvi=6&pl=23&spc=4ocVC0JfKoZvX0FSPklAcHZ7LBTF&vprv=1&mime=video%2Fmp4&ns=ZSXKPHKFPvaGHi2sm3qErYcG&gir=yes&clen=246339629&dur=1220.093&lmt=1637823031873234&mt=1649720229&fvip=3&keepalive=yes&fexp=24001373%2C24007246&c=WEB&txp=5531432&n=b2VCd9pxXsFyoV_m&sparams=expire%2Cei%2Cip%2Cid%2Caitags%2Csource%2Crequiressl%2Cspc%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cdur%2Clmt&sig=AOq0QJ8wRgIhAKiKoHk2DfvaKA3Adu0CkNNF_lOavT4Mk0CYkQvbG0wpAiEAgiAc4h_1GqjzjGXgdiKdgdWZXWM0M9ubY-ns1qhGyns%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl&lsig=AG3C_xAwRQIhAM5DsCeq2RzEblNQ3qRq-3xEydeAidszCKAg8PvahEK1AiAzkjRXQQmDItpKWMxLq1TTb_32NWjPxiTDIVeOrBvxLw%3D%3D",
      "naturalWidth": 1280,
      "duration": 1220,
      "provider": "YouTube",
      "humanLanguage": "en",
      "html": "<iframe src=\"https://www.youtube.com/embed/hFZFjoX2cGg\" frameborder=\"0\" allowfullscreen></iframe>",
      "pageUrl": "https://www.youtube.com/watch?v=hFZFjoX2cGg",
      "text": "Squirrels were stealing my bird seed so I solved the problem with mechanical engineering :)\n\nHere is an explanation of the illusion dish thing!- https://demos.smu.ca/index.php/demos/optics/69-mirage-mirror\n\nHere is a link to the illusion dish (not sponsored :) https://www.amazon.com/dp/B0718XCG7F/ref=cm_sw_em_r_mt_dp_U_D9PYEbC85X14F\n\n*MUSIC*\n0:02 - Arrow (Instrumental) - Andrew Applepie http://andrewapplepie.com/\n0:27 - Kalimba Jam - Blue Wednesday https://soundcloud.com/bluewednesday/\n3:21 - Zambo - Devil in Disguise https://danijel-zambo.bandcamp.com/track/devil-in-disguise-2 \n3:47 - Cereal Killa - Blue Wednesday https://soundcloud.com/bluewednesday/\n5:28 - J. Thompson - Real Quick Lovin' https://www.amazon.com/Real-Quick-Lovin/dp/B0010YGE3W\n5:39 - New Shoes - Blue Wednesday https://soundcloud.com/bluewednesday/\n7:51- Chi- Ponder- https://www.prodbyponder.com/5-free-beats32029775\n8:31 - Marimba Idea - Blue Wednesday https://soundcloud.com/bluewednesday/ \n9:25 - Josef Falkenskold - Tiny Tumble https://www.epidemicsound.com/artists/josef-falkenskold\n19:07 - Nik- Ponder- https://www.prodbyponder.com/5-free-beats32029775",
      "viewCount": 92199455
    }
  ]
}

The Video API returns data in JSON format.

Each response includes a request object (which returns request-specific metadata), and an objects array, which will include the extracted information for all objects on a submitted page.

Objects in the Video API's objects array will include the following fields:

FieldDescription
typeType of object (always video).
pageUrlURL of submitted page / page from which the video is extracted.
resolvedPageUrlReturned if the pageUrl redirects to another URL.
titleTitle of the video.
textText description, if available, of the video.
urlDirect link to source video file, if available.
htmlEmbeddable HTML of the video (if available), typically an IFRAME or VIDEO object.
embedUrlEmbeddable URL, if available.
authorVideo uploader or creator, if available.
dateDate of extracted video, normalized in most cases to RFC 1123 (HTTP/1.1).
durationDuration in seconds of the Video.
viewCountNumber of Video views, if available on the page.
naturalHeightRaw video height, if available, in pixels.
naturalWidthRaw video width, if available, in pixels.
imagesArray of images, if present within the video.
urlFully resolved link to image. If the image SRC is encoded as base64 data, the complete data URI will be returned.
titleDescription or caption of the image.
mimeMIME type, if available, as specified by the Video's "Content-Type."
humanLanguageReturns the (spoken/human) language of the submitted page, using two-letter ISO 639-1 nomenclature.
diffbotUriUnique object ID. The diffbotUri is generated from the values of various Video fields and uniquely identifies the object. This can be used for deduplication.
Optional fields, available using fields= argument
linksReturns a top-level object (links) containing all hyperlinks found on the page.
metaReturns a top-level object (meta) containing the full contents of page meta tags, including sub-arrays for OpenGraph tags, Twitter Card metadata, schema.org microdata, and -- if available -- oEmbed metadata.
querystringReturns any key/value pairs present in the URL querystring. Items without a discrete value will be returned as true.
breadcrumbReturns a top-level array (breadcrumb) of URLs and link text from page breadcrumbs.

Optional Fields

Video API may also return some optional fields if specified. (comma delimited) in the &fields= argument.

Already have the source HTML? POST it to Video API.

Video API supports a POST option that allows you to upload HTML or plain text for extraction. See Extract Raw HTML.

API Definition

Generated from v1.1.0 of the Extract APIs OpenAPI specification.

The Video API automatically extracts detailed video information—including most metadata, thumbnail images, direct video URL and embed code from nearly any video page or video platform on the web.

Request

Authentication
tokenquery
Cache and insert token into example requests (15d expiry)
Query parameters
urlstring required

Target URL to extract

fieldsstring

Specify optional fields to be returned from any fully-extracted pages (e.g. fields=querystring,links)

One of: linksextlinksmetaquerystringbreadcrumb

timeoutinteger (int32)

Sets a value in milliseconds to wait for the retrieval/fetch of content from the requested URL. The default timeout for the third-party response is 30 seconds (30000).

callbackstring

Use for jsonp requests. Needed for cross-domain ajax.

proxystring

Specify an IP address of a custom proxy that will be used to fetch the target page. (Ex: &proxy or &proxy=0.0.0.0)

proxyAuthstring

Used to specify the authentication parameters that will be used with a custom proxy specified in the &proxy parameter. (Ex: proxyAuth=username:password)

useProxystring

Set to default to use Diffbot’s datacenter proxy for this request. none will instruct Extract to not use proxies, even if proxies have been enabled for this particular URL globally.

Example request

bash
curl --request GET \
  --url 'https://api.diffbot.com/v3/video?url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DhFZFjoX2cGg&token=<DIFFBOT_TOKEN>' \
  --header 'Accept: application/json'

Response

200Successful API Response
requestobject
pageUrlstring
apistring
versioninteger
objectsobject[]
datestring
imagesobject[]
diffbotUristring
titlestring
urlstring
primaryboolean
authorstring
mimestring
naturalHeightinteger
diffbotUristring
typestring
titlestring
urlstring
naturalWidthinteger
durationinteger
providerstring
humanLanguagestring
htmlstring
pageUrlstring
textstring
viewCountinteger
json
{
  "request": {
    "pageUrl": "https://www.youtube.com/watch?v=hFZFjoX2cGg",
    "api": "video",
    "version": 3
  },
  "objects": [
    {
      "date": "Sun, 24 May 2020 07:00:00 GMT",
      "images": [
        {
          "diffbotUri": "image|3|231854607",
          "title": "Backyard Squirrel Maze 1.0- Ninja Warrior Course",
          "url": "https://i.ytimg.com/vi/hFZFjoX2cGg/maxresdefault.jpg",
          "primary": true
        }
      ],
      "author": "Mark Rober",
      "mime": "video/mp4",
      "naturalHeight": 720,
      "diffbotUri": "video|3|1870173316",
      "type": "video",
      "title": "Backyard Squirrel Maze 1.0- Ninja Warrior Course",
      "url": "https://rr6---sn-5uaeznks.googlevideo.com/videoplayback?expire=1649742262&ei=Vr1UYoLhFpDm8wTUt76wAQ&ip=23.229.39.25&id=o-AOUTPxsk0l8eAnvqC6G9PtYnkFK4S-lYoQ1G-mt8W40U&itag=399&aitags=133%2C134%2C135%2C136%2C137%2C160%2C242%2C243%2C244%2C247%2C248%2C278%2C394%2C395%2C396%2C397%2C398%2C399&source=youtube&requiressl=yes&mh=s4&mm=31%2C29&mn=sn-5uaeznks%2Csn-5ualdnl7&ms=au%2Crdu&mv=u&mvi=6&pl=23&spc=4ocVC0JfKoZvX0FSPklAcHZ7LBTF&vprv=1&mime=video%2Fmp4&ns=ZSXKPHKFPvaGHi2sm3qErYcG&gir=yes&clen=246339629&dur=1220.093&lmt=1637823031873234&mt=1649720229&fvip=3&keepalive=yes&fexp=24001373%2C24007246&c=WEB&txp=5531432&n=b2VCd9pxXsFyoV_m&sparams=expire%2Cei%2Cip%2Cid%2Caitags%2Csource%2Crequiressl%2Cspc%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cdur%2Clmt&sig=AOq0QJ8wRgIhAKiKoHk2DfvaKA3Adu0CkNNF_lOavT4Mk0CYkQvbG0wpAiEAgiAc4h_1GqjzjGXgdiKdgdWZXWM0M9ubY-ns1qhGyns%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl&lsig=AG3C_xAwRQIhAM5DsCeq2RzEblNQ3qRq-3xEydeAidszCKAg8PvahEK1AiAzkjRXQQmDItpKWMxLq1TTb_32NWjPxiTDIVeOrBvxLw%3D%3D",
      "naturalWidth": 1280,
      "duration": 1220,
      "provider": "YouTube",
      "humanLanguage": "en",
      "html": "<iframe src=\"https://www.youtube.com/embed/hFZFjoX2cGg\" frameborder=\"0\" allowfullscreen></iframe>",
      "pageUrl": "https://www.youtube.com/watch?v=hFZFjoX2cGg",
      "text": "Squirrels were stealing my bird seed so I solved the problem with mechanical engineering :)\n\nHere is an explanation of the illusion dish thing!- https://demos.smu.ca/index.php/demos/optics/69-mirage-mirror\n\nHere is a link to the illusion dish (not sponsored :) https://www.amazon.com/dp/B0718XCG7F/ref=cm_sw_em_r_mt_dp_U_D9PYEbC85X14F\n\n*MUSIC*\n0:02 - Arrow (Instrumental) - Andrew Applepie http://andrewapplepie.com/\n0:27 - Kalimba Jam - Blue Wednesday https://soundcloud.com/bluewednesday/\n3:21 - Zambo - Devil in Disguise https://danijel-zambo.bandcamp.com/track/devil-in-disguise-2 \n3:47 - Cereal Killa - Blue Wednesday https://soundcloud.com/bluewednesday/\n5:28 - J. Thompson - Real Quick Lovin' https://www.amazon.com/Real-Quick-Lovin/dp/B0010YGE3W\n5:39 - New Shoes - Blue Wednesday https://soundcloud.com/bluewednesday/\n7:51- Chi- Ponder- https://www.prodbyponder.com/5-free-beats32029775\n8:31 - Marimba Idea - Blue Wednesday https://soundcloud.com/bluewednesday/ \n9:25 - Josef Falkenskold - Tiny Tumble https://www.epidemicsound.com/artists/josef-falkenskold\n19:07 - Nik- Ponder- https://www.prodbyponder.com/5-free-beats32029775",
      "viewCount": 92199455
    }
  ]
}
500Internal Server Error
errorCodeinteger
errorstring
json
{
  "errorCode": 500,
  "error": "Internal Server Error"
}