Documentation Python quickstart Blog Free tools Enterprise solutions hello@quanticdata.ioLog in
All collectors

YouTube video data API

Social & communities · v1.1.0 · youtube_video

$0.005 / video

$5.00 / 1K · pay per delivered video

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.005 per delivered video · $2 free every month · Failed runs never billed

What it does

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.

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.

Outputs — 31 fields, one row per video

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.
rankinteger1-based delivery order.
description_fullstring · nullableDescription with line breaks kept (up to 5 000 chars).
hashtagsstring[]Hashtags used in the description.
channel_subscribersinteger · nullableChannel subscribers (4.55M → 4550000).
is_shortbooleanEligible as a Short.
is_unlistedbooleanUnlisted video.
is_privatebooleanPrivate video.
allow_ratingsbooleanLikes enabled.
live_started_atstring · nullableLive broadcast start (ISO 8601).
live_ended_atstring · nullableLive broadcast end (ISO 8601).
embed_urlstring · nullableEmbed player URL.
available_countriesinteger · nullableNumber of countries where the video is available.

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}'

Example response

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.005 }
# 1 video × $0.005 · nothing delivered, nothing charged

Try it

YouTube video details, running now

Change the input and run it against the live collector — nothing to install, no sign-up.

Run it from your own code, on your own inputs

Same collector, same rows — $2 of free API credit every month, no card.

Get my free API key
YouTube video data API: from videos, QuanticData reads the YouTube video page and returns one row per video with title, channel and views, at $0.005 per delivered video.
You send videos and country; the run goes out through a residential exit and comes back as videos with video_id, title and channel — 31 fields on every row — and you are billed $0.005 for each video actually delivered, nothing for a run that delivers none.
$0.005 / video400 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

Pricing

YouTube video data API pricing

$0.005 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 400 videos before you spend anything.

$0.005per delivered video$5 per 1,000 delivered videos
400 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

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.

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

What people search for

Live autocomplete demand around YouTube video details, pulled with our own Keyword ideas collector.

YouTube video data API: the POST to the youtube_video collector, 1 video delivered and the bill, 1 × $0.005 = $0.005 in usage.cost_usd; zero videos would cost $0.
The same call you would paste into a terminal: a Bearer key, videos and country in the body, and back the envelope every QuanticData endpoint returns — type, message, payload — where count is how many videos arrived and usage.cost_usd is $0.005, which is 1 × $0.005. A run that delivers nothing costs nothing. The key is good for 60 req/min on the free tier.

Sources and standards

The platform documentation and standards this collector is built against — check any claim on this page against the primary source:

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 400 delivered videos on this endpoint at $0.005 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.005. A run capped at 20 videos — the maximum for this collector — costs $0.1 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.

Run in dashboard
Illustration: three coloured zones of the page that is read (YouTube video page) turn into clean JSON with the fields title, channel and views; 31 fields on every row.