YouTube transcript API reliability: measured results
Measured success rates for YouTube transcript extraction across residential, datacenter and unproxied egress. 150 videos, 2 September 2026.
Reliability is decided almost entirely by where the request leaves from. Running the same extraction against the same videos, we measured 150/150 successful from residential egress, 7/12 from datacenter egress, and 0/12 with no proxy at all, on 2 September 2026.
That is the whole finding in one line. The rest of this page explains what was measured, what each failure actually means, and where the numbers stop being useful.
What success rate should you expect?
From residential egress, expect the ceiling to be set by the videos, not by the network. In our run every video that had captions published returned a transcript with millisecond timings.
From a cloud host without residential egress, expect roughly half of requests to fail, and expect the failures to be intermittent rather than clean. That is the worst kind of failure to build on: it passes a smoke test and then loses a third of a production batch.
| Environment | Videos attempted | Transcripts returned | Success rate |
|---|---|---|---|
| Residential egress | 150 | 150 | 100% |
| Datacenter egress | 12 | 7 | 58% |
| No proxy (cloud host IP) | 12 | 0 | 0% |
| Developer laptop, home connection | 5 | 5 | 100% |
The three cloud arms ran the same code against the same video set on the same infrastructure within the same session. The only variable was egress.
Why datacenter IPs fail
YouTube treats requests from known cloud address ranges differently from requests that appear to come from consumer connections. The block is applied before anything about the request content matters — headers, user agent and TLS fingerprint make no difference, because the decision is made on IP reputation.
We confirmed this by holding the request identical and changing only the exit IP. Success moved with the address, not with the request.
This is not a new or private observation. It is documented across the issue tracker of the widely used youtube-transcript-api Python library and repeated on every competitor’s engineering blog. It is worth restating because it is the single largest determinant of the number at the top of this page.
What each failure mode means for you
Failures do not arrive labelled. Three distinct causes produce similar-looking errors, and they need completely different responses.
| Symptom | Underlying cause | What it means for you |
|---|---|---|
| Video reported as unavailable, but it plays fine in a browser | Egress IP reputation | Retrying changes nothing. The environment has to change. |
| HTTP 200 with an empty response body | Caption delivery gated rather than refused | Not a network fault. Byte count is not a success signal; assert on content. |
| No caption tracks listed at all | The video genuinely has no captions | Permanent. No tool, proxy or budget changes this. |
| Errors appearing only after a burst of requests | Rate limiting on the source address | Throughput problem, not a correctness problem. Slow down or spread the load. |
The first row is the expensive one. A blocked video and a deleted video report the same thing, so a naive integration silently records “this video has no transcript” for videos that are perfectly fine. If your pipeline stores that result, the error becomes permanent in your data even after you fix the network.
Videos that can never return a transcript
Some proportion of any real video set has no captions to extract. Nothing recovers these.
- Captions disabled by the uploader. Automatic captions can be switched off at channel or video level.
- No automatic captions generated. Music, very short clips, poor audio quality and some languages do not get an automatic track.
- Private, deleted or region-restricted videos. The video itself is not retrievable.
- Live streams still in progress. Captions may only settle once the stream has ended and been processed.
An honest reliability number separates these from network failures. A tool reporting 100% by silently dropping caption-free videos from the denominator is reporting nothing.
Method
We measured how often a transcript request returns usable text, across egress environments. We did not measure extraction speed, transcript accuracy, or translation quality.
- Video selection. 150 video IDs collected fresh from channel RSS feeds across a spread of channels, languages and upload dates. Famous videos were deliberately excluded — high-traffic videos behave differently from ordinary ones and make a test set optimistic.
- Environments. Four: a developer laptop on a home connection, and three cloud runs differing only in egress (none, datacenter, residential).
- Sample sizes. 150 videos on residential; 12 on each of the two failing cloud arms; 5 on the laptop. The failing arms were stopped early once the pattern was unambiguous — see Limitations.
- Success criterion. A transcript returned with per-cue timings and non-empty text. HTTP status was not treated as success; a 200 with an empty body counts as a failure.
- Date. All figures measured 2 September 2026 and re-measured monthly.
This page reports what came out. It does not describe how the extraction is performed.
Limitations
The failing arms have small samples. 7/12 and 0/12 are directional, not precise. A 12-video sample gives a wide confidence interval; read them as “roughly half” and “essentially none”, not as 58.3% and 0.0%.
One run, one day. These are point-in-time measurements. YouTube’s behaviour changes without notice, and a residential result that held in September is not a guarantee for December. That is why the figures carry a date and get re-measured.
150 videos is not the whole platform. The set spans several channels and languages but cannot represent every content type. Age-restricted, members-only and unlisted videos were not included.
100% is a ceiling, not a promise. Every video in the residential set had captions published. A real workload contains videos that do not, and those reduce your observed rate through no fault of the extraction.
No accuracy measurement. We measured whether a transcript came back, not whether the automatic captions were correct. Automatic caption quality varies considerably with audio quality and language, and we make no claim about it.
We do not offer speech-to-text fallback. If a video has no captions, we return a structured “no captions” result rather than transcribing the audio. Some competitors do transcribe. If that matters for your workload, that is a genuine reason to choose one of them.
FAQ
How reliable is the YouTube transcript API in production?
Reliable from residential egress, unreliable from anywhere else. Our 2 September 2026 run returned 150/150 through residential egress and 0/12 from a cloud host’s own IP. If your production reliability is poor, egress is the first thing to check.
Why does my transcript extraction work locally but fail on the server?
Your laptop sits on a residential connection and your server does not. The request is identical; the address is not. This is the most common cause of a working prototype that fails on deployment.
Do datacenter proxies fix YouTube transcript failures?
Not dependably. In our measurements datacenter egress returned 7 of 12, which is worse than useless for a batch job because it fails unpredictably rather than consistently.
What percentage of YouTube videos have no transcript available?
It depends entirely on the videos you pick. Music, short clips and low-audio-quality uploads frequently have no automatic captions; talks, lectures and podcasts almost always do. Measure it on your own set rather than trusting a global figure.
Is an empty response body the same as a video having no captions?
No, and conflating the two corrupts your data. An empty body means the request was gated. No caption tracks means there is nothing to fetch. The first is fixable; the second is not.
How often are these numbers updated?
Monthly. Every figure on this page carries the date it was measured, and the run is repeated against a freshly collected video set each time rather than the same fixed list.
This page describes the problem. The hosted tool solves it at scale — bulk input, structured output, and no charge for videos that return nothing.
Run it on Apify