Skip to content
scrapeatlas.Dashboard

Get a video or Short

Try in Playground

Retrieve a YouTube video with title, description, engagement, publication date, uploader, chapters, recommendations, genre, duration, caption tracks, format metadata, replay graph and paid-promotion information.

GET/v1/youtube/videox-api-key
x-api-keystringrequiredheader

Your ScrapeAtlas customer key. Create one on /account/ and set SCRAPEATLAS_API_KEY.

Query parameters
2
urlstringrequiredquery

YouTube video or Short URL (youtube.com/watch?v=…, youtu.be/…, /shorts/…, /embed/…, /live/…; www, m and music subdomains) or a bare 11-character video ID.

max 2048 chars

Examplehttps://www.youtube.com/watch?v=Vid0000001a
languagestringquery

Optional language code (en, es, pt-BR) sent as the page's Accept-Language; YouTube may still localise differently.

Response fields
116
requestIdstring

Operation identifier for correlation.

Upstream HTTP attempts, decoded bytes and duration.

accounting.upstreamRequestsinteger

Always included.

≥ 0

accounting.responseBytesinteger

Always included.

≥ 0

accounting.durationMsnumber

Always included.

≥ 0

successboolean

True when usable data was returned; inspect status and coverage.

statusenum

success, partial (coverage.warnings names the omission), failed or challenged.

one of: success, partial

typestring

Always video, for Shorts too.

idstring

Video ID from the player response, checked against the request.

titlestring

Video title.

descriptionstringnullable

The description as YouTube renders it (long links shortened with an ellipsis), with line breaks; the raw player description when the rendered text is absent; null when empty.

descriptionLinksstring[]

Every link in the description in text order: external links unwrapped from YouTube's redirect, hashtag pages, channel links and timestamp links as youtube.com URLs.

up to 200 items

commentCountTextstringnullable

Displayed comment count from the comments panel ("2.4M"); null when comments are off.

commentCountIntintegernullable

Comment count parsed from commentCountText.

likeCountTextstringnullable

Exact like count as YouTube publishes it in the page metadata; null when hidden.

likeCountIntintegernullable

Like count as an integer.

viewCountTextstringnullable

Exact view count with thousands separators.

viewCountIntintegernullable

Exact view count.

publishDateTextstringnullable

Displayed date text ("Oct 24, 2009", "Premiered …", "Streamed live on …").

Collaborating channels when YouTube lists them on the watch page.

up to 20 items

collaborators.idstringnullable

Always included.

collaborators.urlstringnullable

Always included.

collaborators.handlestringnullable

Always included.

collaborators.titlestringnullable

Always included.

collaborators.thumbnailstringnullable

Always included.

Uploader: id, url (canonical channel URL), handle ("Name", or "channel/UC…" for channels without a handle), title and 48 px thumbnail.

channel.idstringnullable

Always included.

channel.urlstringnullable

Always included.

channel.handlestringnullable

Always included.

channel.titlestringnullable

Always included.

channel.thumbnailstringnullable

Always included.

Description chapters (auto chapters when none are written): title, timeDescription ("3:54") and startSeconds. Empty when the video has none.

up to 500 items

chapters.titlestring

Always included.

chapters.timeDescriptionstringnullable

Always included.

chapters.startSecondsintegernullable

Always included.

Recommended videos shown next to the video (up to 100): id, title, thumbnail, channel {title, url, handle, id}, publishedTimeText, publishedTime, publishDateText, publishDate, viewCountText (present when a count is shown), viewCountInt, lengthText and lengthInSeconds (present when a duration is shown) and videoUrl. Recommendations differ between requests.

up to 100 items

watchNextVideos.idstring

Always included.

watchNextVideos.titlestring

Always included.

watchNextVideos.thumbnailstringnullable

Always included.

Always included.

watchNextVideos.channel.titlestringnullable

Always included.

watchNextVideos.channel.urlstringnullable

Always included.

watchNextVideos.channel.handlestringnullable

Always included.

watchNextVideos.channel.idstringnullable

Always included.

watchNextVideos.publishedTimeTextstringnullable

Always included.

watchNextVideos.publishedTimestringnullable

Always included.

watchNextVideos.publishDateTextstringnullable

Always included.

watchNextVideos.publishDatestringnullable

Always included.

watchNextVideos.viewCountTextstringnullableoptional

Optional.

watchNextVideos.viewCountIntintegernullable

Always included.

watchNextVideos.lengthTextstringnullableoptional

Optional.

watchNextVideos.lengthInSecondsintegernullableoptional

Optional.

watchNextVideos.videoUrlstring

Always included.

absolute HTTPS URL

thumbnailstring

https://img.youtube.com/vi/<id>/maxresdefault.jpg.

absolute HTTPS URL

publishDatestringnullable

Publish timestamp with the channel's UTC offset, from the page metadata.

keywordsstring[]

Video keywords (tags) as published; empty when none.

up to 500 items

genrestringnullable

YouTube category ("Music", "Entertainment").

durationMsintegernullable

Published duration in milliseconds (the microformat length).

durationFormattedstringnullable

Duration as HH:MM:SS.

Caption tracks the web player lists: baseUrl, name.simpleText, vssId, languageCode, kind (asr for auto-generated), isTranslatable, trackName. URLs are returned as data and expire; use the transcript operation to read one.

up to 100 items

captionTracks.baseUrlstring

Always included.

absolute HTTPS URL

Always included.

captionTracks.name.simpleTextstring

Always included.

captionTracks.vssIdstring

Always included.

captionTracks.languageCodestring

Always included.

captionTracks.kindstringoptional

Optional.

captionTracks.isTranslatablebooleanoptional

Optional.

captionTracks.trackNamestringoptional

Optional.

Muxed audio+video formats the web player exposes, or null: expiresInSeconds, hlsManifestUrl, dashManifestUrl, formats (itag, url, cdnUrl, expiresAt, mimeType, codecs, bitrate, width, height, quality, qualityLabel, fps, audioQuality, audioSampleRate, audioChannels, approxDurationMs, projectionType, hasVideo, hasAudio, requiresSignatureDecipher and signatureCipher {url, signature, signatureParameter, expiresAt} when the URL is ciphered) and a note. Nothing is downloaded.

downloadOptions.expiresInSecondsstringnullable

Always included.

downloadOptions.hlsManifestUrlstringnullable

Always included.

downloadOptions.dashManifestUrlstringnullable

Always included.

Always included.

up to 50 items

downloadOptions.formats.itaginteger

Always included.

downloadOptions.formats.urlstringnullable

Always included.

downloadOptions.formats.cdnUrlstringnullable

Always included.

downloadOptions.formats.expiresAtstringnullable

Always included.

downloadOptions.formats.mimeTypestringnullable

Always included.

downloadOptions.formats.codecsstringnullable

Always included.

downloadOptions.formats.bitrateintegernullable

Always included.

downloadOptions.formats.widthintegernullable

Always included.

downloadOptions.formats.heightintegernullable

Always included.

downloadOptions.formats.qualitystringnullable

Always included.

downloadOptions.formats.qualityLabelstringnullable

Always included.

downloadOptions.formats.fpsintegernullable

Always included.

downloadOptions.formats.audioQualitystringnullable

Always included.

downloadOptions.formats.audioSampleRatestringnullable

Always included.

downloadOptions.formats.audioChannelsintegernullable

Always included.

downloadOptions.formats.approxDurationMsstringnullable

Always included.

downloadOptions.formats.projectionTypestringnullable

Always included.

downloadOptions.formats.hasVideoboolean

Always included.

downloadOptions.formats.hasAudioboolean

Always included.

downloadOptions.formats.requiresSignatureDecipherboolean

Always included.

Optional.

downloadOptions.formats.signatureCipher.urlstringnullable

Always included.

downloadOptions.formats.signatureCipher.signaturestringnullable

Always included.

downloadOptions.formats.signatureCipher.signatureParameterstringnullable

Always included.

downloadOptions.formats.signatureCipher.expiresAtstringnullable

Always included.

downloadOptions.notestring

Always included.

YouTube's public Most replayed graph, or null: markers (startMillis, durationMillis, intensityScoreNormalized) and ranges (visibleTimeRangeStartMillis, visibleTimeRangeEndMillis, decorationTimeMillis, label).

Always included.

up to 1000 items

most_replayed.markers.startMillisinteger

Always included.

≥ 0

most_replayed.markers.durationMillisinteger

Always included.

≥ 0

most_replayed.markers.intensityScoreNormalizednumber

Always included.

Always included.

up to 100 items

most_replayed.ranges.visibleTimeRangeStartMillisinteger

Always included.

≥ 0

most_replayed.ranges.visibleTimeRangeEndMillisinteger

Always included.

≥ 0

most_replayed.ranges.decorationTimeMillisinteger

Always included.

≥ 0

most_replayed.ranges.labelstringnullable

Always included.

isPaidPromotionboolean

True when the player shows the "Includes paid promotion" disclosure.

sourceUrlstring

Public YouTube URL the operation represents (page or API route).

absolute HTTPS URL

fetchedAtstring

UTC retrieval timestamp.

source is public_page; no warnings are defined for this operation.

coverage.sourceenum

Always included.

one of: public_page, public_api

coverage.completeboolean

Always included.

coverage.warningsenum[]

Always included.

up to 8 items

HTTP 200 returns the success variant. Check status: partial means usable data with warnings, and failed or challenged requests carry a failure object described in Errors & responses.

Error codes
13
HTTPfailure.codeMeaning
400invalid_requestMissing, malformed, duplicate or conflicting parameters, unsupported parameters or an unsafe URL.
400invalid_continuationYouTube rejected the supplied continuation token.
401unauthorizedMissing or invalid worker API key.
403restricted_pageThe channel, video, playlist or post is terminated, private, members-only or otherwise unavailable.
403age_restrictedThe video is age restricted and cannot be read logged out.
404not_foundYouTube reports no channel, video, playlist or post for the identifier.
429upstream_rate_limitedYouTube rate limited the request; no automatic retry.
502upstream_challengedYouTube rejected or challenged the request.
502unsupported_pageThe response lacks the embedded data, the data is malformed, or the resolved identity does not match the request.
502response_too_large payload_too_complexThe response exceeded byte, depth or node limits.
502unsafe_redirect request_limit upstream_errorThe bounded request could not complete.
503busyAll worker slots are in use.
504timeoutThe total retrieval deadline expired.