Documentation Blog Free tools [email protected]Log in

YouTube video data API

A YouTube video data API that returns one row per video from the watch page itself: title, channel with its id and URL, the exact view and like counts, length in seconds, publish and upload dates, category, keywords, description, thumbnail, the live flag and which caption languages the video carries. Pass video ids or watch, Shorts or youtu.be URLs — up to twenty at a time.

$0.001 per delivered video · $2 free every month · Failed runs never billed

POST /v1/scraper/collectors/youtube_video/run
$ curl $QD/youtube_video/run \
    -H "Authorization: Bearer $QD_API_KEY" \
    -d '{"videos": ["dQw4w9WgXcQ"], "max_results": 1}'
{ "status": "done", "count": 1,
  "results": [
    {
      "video_id": "…",
      "url": "…",
      "title": "…",
      "channel": "…" } ],
  "cost": 0.001 }
# 1 video × $0.001 · nothing delivered, nothing charged
$0.001 / video2,000 videos on the free $2 every month
Semantic inputvideos, country, max_results — no URL lists
Up to 20videos per run, pagination handled for you
No browserread over HTTP/TLS — cheaper and faster than rendering

What a YouTube video data API does

The public watch page shows you "1.2M views"; the number underneath it is exact, and so is the like count. This collector reads the player payload the page ships with and returns those exact integers, along with the channel id, the category, the keyword tags and the list of caption languages — the structured record most people reach for the YouTube Data API to get.

The difference is the quota. The Data API meters every call against a daily unit budget that a few thousand videos will exhaust; this reads the page directly, so there is no key to register and no quota to ration — you size a run by how many videos you pass, not by how many units you have left. Videos that are private or removed come back under failed and are never billed.

What one video looks like

Every delivered video carries these fields. Nullable means the source did not publish it — the field stays empty instead of being guessed.

FieldTypeWhat it holds
video_idstring11-char video id.
urlstringCanonical watch URL.
titlestringVideo title.
channelstring · nullableChannel name.
channel_idstring · nullableChannel id (UC…).
channel_urlstring · nullableChannel URL.
viewsinteger · nullableExact view count.
likesinteger · nullableExact like count (when public).
length_secondsinteger · nullableDuration in seconds.
publish_datestring · nullablePublish date.
upload_datestring · nullableUpload date.
categorystring · nullableYouTube category.
keywordsstring[]Video keywords/tags.
descriptionstring · nullableDescription (first 1500 chars).
thumbnailstring · nullableLargest thumbnail URL.
is_livebooleanLive content flag.
family_safebooleanFamily-safe flag.
captions_availablebooleanWhether captions exist.
caption_languagesstring[]Caption language codes.

Inputs

The whole request. Anything you leave out falls back to the default shown in the catalog.

InputTypeRequiredWhat it does
videosarrayyesVideo ids or watch/shorts/youtu.be URLs.
countrystringnoISO 3166-1 alpha-2 code — proxy exit geo and Google locale (gl). Omit for the default pool.
max_resultsintegernoHow many videos to deliver at most (1–20). You pay only for delivered videos.

Pricing

YouTube video data API pricing

$0.001 per delivered video. A run that delivers nothing costs nothing: blocked pages, challenges and retries are on us, and the $2 monthly allowance covers about 2,000 videos before you spend anything.

$0.001per delivered video$0.8 per 1,000 delivered videos
2,000 videoson the free allowance$2 every month, no card
Zero rowszero chargeblocks, captchas and retries are on us
−30%on volume tiersthe catalog returns your key's price

Pay as you go

$0/mo
  • $2 free credit / month
  • 60 requests / min
  • List unit prices

Starter

$19/mo
  • $15 free credit / month
  • 300 requests / min
  • 10% off unit prices

Scale

$299/mo
  • $250 free credit / month
  • 1,200 requests / min
  • 30% off unit prices

Same wallet, same key and same $2 monthly allowance as every other Data API. Prices are launch pricing read live from the billing config — GET /v1/scraper/collectors returns the price your key actually pays.

Integration

One POST, typed rows

Base URL https://api.quanticdata.io/v1, Bearer auth, the same key as every other Data API. Endpoint: POST /v1/scraper/collectors/youtube_video/run.

curl -X POST https://api.quanticdata.io/v1/scraper/collectors/youtube_video/run \
  -H "Authorization: Bearer $QD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"videos":["dQw4w9WgXcQ"],"max_results":1}'

What people build with the YouTube video data API

Three shapes of work this endpoint was designed around.

Creator and competitor analytics

Pull exact views and likes for a set of videos on a schedule and you have the real engagement curve, not the rounded figure the page prints, for every title you track.

Content metadata enrichment

Resolve a list of video ids to title, channel, category, length and keyword tags in one pass, filling the columns a media dataset needs without a per-video visit.

Caption-language discovery

Read which caption languages each video declares to find what is already subtitled and what is missing, before you commission transcription or localization.

YouTube video data API versus rolling your own

The differences that actually cost time when you build this in-house.

DIY scraperThis collector
QuotaDaily Data API unit budgetNone — pay per video returned
View countRounded on the page ("1.2M")Exact integer from the player payload
AuthAPI key and a Google projectNo key, ids or URLs straight in

FAQ

Questions we get about the YouTube video data API.

Something else? Ask us →

How is this different from the YouTube Data API?

It returns much of the same per-video record — title, channel, exact views and likes, length, category, keywords, captions — but reads it from the watch page's player payload instead of the API. So there is no API key and no daily unit quota to manage; a large batch is a question of how many ids you send, not how much quota is left.

Are the view and like counts exact?

Yes. The visible page rounds to "1.2M", but the payload behind it carries the precise numbers, and that is what lands in views and likes — the like count whenever the creator keeps it public.

Do I get the transcript or just the languages?

Just the caption languages the video declares, in caption_languages, plus a captions_available flag. The collector reports which subtitle tracks exist; it does not return the transcript text itself.

Can I pass full URLs, or only video ids?

Either. It accepts bare eleven-character ids and watch, Shorts and youtu.be URLs, up to twenty per run, and normalizes them to the canonical watch URL on the way out.

Is there a free YouTube video data API?

Every account gets $2 of credit every month with no card, which is about 2,000 delivered videos on this endpoint at $0.001 each. It renews monthly, and a run that delivers nothing is never billed — so a failed or blocked attempt does not eat the allowance.

How much does one run cost?

Multiply the rows you actually receive by $0.001. A run capped at 20 videos — the maximum for this collector — costs $0.02 if every row comes back, and less when the source has fewer. Volume tiers take up to 30% off, and GET /v1/scraper/collectors returns the price your key actually pays.

Run the YouTube video data API now

$2 of free credit every month, no card. Your key returns its own prices from GET /v1/scraper/collectors.

Get my free API key
Get my free API key