Almost everyone who builds something on top of YouTube starts the same way: get a Data API key, wire up a few calls, and feel clever for an afternoon. Then a quota error shows up, and the project stalls. The official YouTube Data API v3 is genuinely good for light use, but its cost model is unintuitive, and the day you scale past "a hobby" is the day you start fighting it. So before you write a line of code, do the arithmetic.
The unit budget, and why it disappears so fast
Every Google Cloud project gets 10,000 quota units per day for the YouTube Data API by default. The trap is that "units" are not "requests." Each endpoint has a wildly different price, and the ones you actually want are the expensive ones.
| Endpoint | Cost per call (units) | What you get | Calls/day at full quota |
|---|---|---|---|
search.list | 100 | Up to 50 video/channel references (IDs + snippet) | 100 |
videos.list | 1 | Full stats for up to 50 video IDs | 10,000 |
channels.list | 1 | Channel metadata + subscriber/view counts | 10,000 |
playlistItems.list | 1 | Up to 50 video IDs from a playlist (incl. uploads) | 10,000 |
commentThreads.list | 1 | Up to 100 top-level comments | 10,000 |
captions.download | 200 | Transcript — your own videos only | 50 |
Look at the gap. A metadata lookup costs 1 unit; a search costs 100. That single fact dictates how every efficient YouTube pipeline is built: you avoid search and lean on the cheap list endpoints.
search.list calls (50 results each) to reach 1,000 videos. That's 20 keywords × 20 pages × 100 units = 40,000 units — four full days of quota for one report. And you've spent it all on shallow snippets; you haven't pulled a single comment or full description yet.The cheaper-than-search trick (and where it dead-ends)
Seasoned API users sidestep the 100-unit search almost entirely:
- Channel uploads via playlist. Every channel has a hidden "uploads" playlist whose ID is the channel ID with the second character flipped from
CtoU. Page throughplaylistItems.list(1 unit each) to enumerate a channel's entire catalog without ever touching search. - Batch the hydration. Collect 50 video IDs, then call
videos.listonce for all 50 at 1 unit. Resist the urge to fetch them one at a time.
This gets you a long way — for known channels. It falls apart the moment your job is discovery ("what's ranking for this query right now") or depth ("every comment on these 200 videos," "the transcript of a competitor's video"). Those are exactly the jobs that matter for research, and they are exactly where the Data API's economics and permissions stop cooperating.
Three walls the official API won't let you past
1. Search depth is capped, hard
Beyond the per-unit cost, search.list will not page past roughly 500 results for any single query, no matter how much quota you throw at it. If you need the long tail of results for a term, the API physically cannot hand it to you.
2. Comments at scale bleed quota and hit walls
Comments are cheap per call (1 unit per 100), but a viral video has hundreds of thousands of them, and replies require a second pass per thread. The unit cost stays low, yet the request count explodes and you start hitting per-minute rate limits long before the daily quota. And if a creator has disabled comments via the API while leaving them visible on the page, you simply get nothing back.
3. Transcripts of other people's videos: flat no
This is the one that surprises people most. captions.download checks channel ownership through OAuth, so you can only pull captions for videos you uploaded. There is no sanctioned way to get the transcript of an arbitrary public video from the Data API. Transcript-driven products — summarizers, search-over-video, content analysis — cannot be built on the official API at all.
What scraping adds over the API
A maintained YouTube actor reads the public pages the way a visitor's browser does, which sidesteps both the unit budget and the permission walls:
- Unbounded search. Page past the 500-result wall; you're reading the same infinite-scroll results a human sees.
- Full transcripts for any public video with captions (auto-generated or uploaded), with timestamps — the thing the API flatly refuses.
- Comments and replies as deep as you ask, billed per item extracted instead of per opaque unit.
- Fields the API omits or buries — rendered view/like counts, channel handle, chapter markers, and the description's expanded links.
Driving it over HTTP
A run that searches a keyword, then returns each video with its stats, top comments and transcript, looks like this. No OAuth, no Cloud project, no quota dashboard:
curl -X POST "https://api.apify.com/v2/acts/renzomacar~youtube-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"searchKeywords": ["faceless youtube automation"],
"maxResults": 200,
"includeComments": true,
"maxComments": 100,
"includeTranscript": true,
"sortBy": "viewCount"
}'
You get one JSON object per video — id, title, channel, views, likes, publish date, description, an array of comments and the full transcript when captions exist. Append &format=csv to the dataset URL and it arrives as a spreadsheet instead. To track channels over time, swap searchKeywords for a list of channel URLs and run it on a schedule.
So which one should you reach for?
Be honest about the job:
- Light, metadata-only, on channels you already know — stay on the official Data API. It's free up to 10,000 units and the cheap list endpoints go a long way if you avoid search.
- Discovery, deep comments, transcripts, or anything above a few thousand records a day — the quota math stops working and the permission walls stop you cold. Scrape the public pages instead.
The mistake isn't picking one; it's not noticing when you've crossed from the first world into the second. The day a quotaExceeded error costs you a report is the day to switch.
Skip the quota dashboard entirely
Our maintained YouTube Scraper returns videos, channels, search results, comments and full transcripts as clean JSON — no Cloud project, no 10,000-unit ceiling, no OAuth on captions. Free Apify credits to start.
Get the YouTube Scraper → Or get done-for-you leadsDisclosure: the links to Apify on this page are affiliate links. If you create a paid account through them we may earn a commission, at no extra cost to you. We recommend Apify because we build and ship the YouTube Scraper on it ourselves.