The YouTube video data API turns a list of video ids into structured rows — for each id you get the title, channel with its id and URL, the exact view and like counts, length in seconds, publish and upload dates, category, tags, description, thumbnail, the live flag and the list of caption languages the video carries.
It lifts those numbers straight from the watch page's own player payload rather than the official Data API, so there is no Google Cloud project to create, no API key to provision and no daily quota to ration. The visible page rounds a count to "1.2M"; this collector returns the integer underneath it. Private, deleted or age-gated videos land under failed and are never billed.
$0.001 per delivered video, up to 20 videos per run. Nothing delivered means nothing charged.
You post a videos array — bare 11-character ids, full watch?v= links, youtu.be short links or /shorts/ URLs all normalise to the same fetch, so you can feed whatever your pipeline already stores.
Each id is fetched once over the TLS tier through a residential exit, and the player JSON embedded in the page is parsed into one flat row. Three things are worth knowing before you wire it in:
views and likes come back as integers, not the abbreviated string a human sees, which is the whole reason to read the payload instead of the rendered text.googleapis.com, there is no 10,000-unit daily budget to blow and no OAuth consent screen — your QuantumProxies key is the only credential.failed rather than as a row of nulls that would quietly drag down an average later.Need to discover ids first? Feed a query through the YouTube search collector and pipe its ids straight in.
The one required input is videos, an array of up to 20 ids or URLs. max_results caps how many the run actually fetches, so a 20-id array with max_results: 5 spends on five. country selects the residential exit, which matters for videos blocked in some regions.
Every video is one flat row. views and likes are integers — likes is null when the uploader hides it. caption_languages lists the language codes that actually exist on the video, so you can filter for, say, clips that already carry Spanish subtitles without downloading anything. keywords carries the uploader's own tags, which are invisible on the page itself.
$0.001 per delivered video (
$0.001 per delivered video —
failed and cost nothing, so a stale id list erodes your coverage rather than your invoice.The free monthly allowance is $2 of usage with no card on file, which at this price is about 2,000 videos a month. GET /v1/scraper/collectors echoes back the exact rate your key is charged.
Google's YouTube Data API v3 is the sanctioned way to read statistics for a video, and for low volumes it is free. The catch is the quota: every project starts with 10,000 units a day, a videos.list call is charged per part, and once you exhaust it you either wait for the Pacific-time reset or file for an extension that Google reviews by hand. A job that needs a million videos does not fit inside that envelope.
This collector sidesteps the quota entirely because it never calls the API — it reads the same watch page a browser would, so the ceiling is your plan's request rate, not a daily unit budget. You give up the API's channel and playlist endpoints; you gain the ability to pull video metadata at a volume the quota was designed to prevent.
Reading one watch page is a one-liner. Reading them at scale is where the work hides:
1.2M is easy and wrong; the integer lives in the payload, which is the fragile part.Handing that over gives you a published schema and a bill that only moves when rows arrive. If you would rather keep your own fetcher, the residential proxies underneath this collector are available on their own.
Pull the exact views, likes and publish_date for a list of a rival's uploads and track how each performs over time, without the rounding the public page forces on you.
Read caption_languages across a catalogue to find which videos already carry captions in a target language and which still need them commissioned.
Feed ids collected elsewhere and get category, keywords, length_seconds and description back to enrich a research or recommendation dataset.
One run takes up to 20 ids; larger lists are just more runs, and because each is independent they parallelise up to your plan's rate limit — 60 requests a minute on pay-as-you-go, up to 1,200 on the top tier. The description is truncated to its first 1,500 characters, and this collector reads metadata only: it does not return the video file, the transcript text or individual comments.
Legally: view and like counts are shown publicly to every visitor, and reading public data is generally lawful in most places, but YouTube's terms restrict automated access and the analysis differs by country and by what you do with the data. This is not legal advice — take proper advice for your specific use.
There is a free monthly allowance rather than a permanent free tier: $2 of usage each month with no card, which at $0.001 per video is about 2,000 videos. Google's own Data API is also free up to 10,000 quota units a day, but that budget disappears quickly at batch volumes and this collector has no quota at all.
No. You authenticate with your QuantumProxies key and nothing else — there is no Google Cloud project, no OAuth screen and no Data API registration, because the metadata is read from the public watch page rather than from googleapis.com.
Yes. The visible page shows a rounded "1.2M", but the player payload behind it carries the integer, and that integer is what lands in the views and likes fields. Likes come back null only when the uploader has hidden them.
It reports which caption languages exist in caption_languages, but it does not download the subtitle text or the transcript itself. That is a separate job with its own size and rights considerations.