If you've ever needed text from a YouTube video, you've had two real options: download the captions YouTube already generated, or run the audio through a speech-to-text AI like OpenAI's Whisper. Both work. Both are free. They produce different transcripts.
Here's the honest tradeoff, with examples.
When a caption track exists, it is the better default. It is instant (no inference latency), free at any scale, and it is the text somebody or something already committed to rather than a fresh guess at the audio. Whisper makes more sense when there is no caption track to pull from.
We have not published a word error rate comparing the two, because we have not measured one. What we can count is how often each path gets used, and that number is further down under what 145 real transcripts actually did.
YouTube captions: ~2 seconds to download via yt-dlp --write-auto-sub. The transcript is already sitting on YouTube's CDN as a VTT file.
Whisper-based transcription: 10-60 seconds depending on model size, audio length, and where you're running inference. Even fast services need to download the audio and process it through a neural net.
On a 10-minute video the difference is 2 seconds vs. 60 seconds. On a 1-hour podcast it's 2 seconds vs. 5+ minutes.
On clear English speech the two are close enough that the choice is usually made on other grounds. We have not run a word error rate comparison and do not publish one. What is worth knowing is where each one is structurally different:
Both produce word-level timestamps. A caption track's timings are tied to the actual playback, synced precisely with the video. Whisper's are inferred from the audio, usually accurate within 100ms but occasionally drifting.
Whisper has a well-documented failure mode where it gets stuck in a loop and repeats the same phrase 20+ times. We've seen it spit "you're mad at me, you're mad at me, you're mad at me…" on a 30-second song clip. YouTube's auto-captioner doesn't do this. When it can't transcribe a segment, it just leaves a gap.
Whisper-large-v3-turbo dramatically reduces this issue compared to base Whisper, but it's not eliminated.
From a tech-creator TikTok where the speaker says "Claude code" and "Cloudflare Tunnel":
"Whatever you do, don't try to make money with cloth. Definitely don't ask it to convert your own desktops or laptops laying around your house into 24-7 servers that run web services or APIs to public using a cloud flared tone."
"Whatever you do, don't try to make money with Claude. Definitely don't ask it to convert your old desktops or laptops laying around your house into 24-7 servers that run web services or APIs to the public using Cloudflare or Tunnel."
The proper-noun delta (cloth → Claude, cloud flared tone → Cloudflare) is the kind of error you'll catch glancing at a transcript. The model upgrade fixes it directly.
Speech to text is trained on people talking, not people singing. On a music clip it returns words that sound right and mean nothing, and it returns them fluently. A real pair out of our own pipeline:
"Do you see the man on the screen, just a puppet but you never see the strings"
"Play a scene of man on the screen, just above the plane never seen strange"
Every word is a plausible English word. The sentence is grammatical. It is completely wrong, and no accuracy percentage would have warned you, because the model was not uncertain. This is the case where an accuracy figure is least useful and a provenance label is most useful: you want to know that these words came from the audio rather than from a track, so you know to distrust them.
It is also the case where neither option is right. When our pipeline recognises the track, it looks the official lyrics up and shows those instead of the garbled version, aligned to where the clip sits inside the song.
These are counted off our own transcript cache on July 31, 2026, not modelled and not estimated. They are the kind of numbers nobody publishes, because publishing them means running a gate and logging what it catches.
| Where the words came from | Transcripts |
|---|---|
| A caption track published with the video | 137 of 145 |
| Speech to text on the extracted audio | 8 of 145 |
That split surprised us, and it is worth stating the limit on it out loud. A published track is not proof a human typed it, because platforms generate tracks too, and our cache is all TikTok, collected for our own research rather than sampled at random. What the ledger records is which path produced the words, not who wrote them. Read it as evidence that the caption track is worth trying first, not as a claim about how many creators write their own captions.
Speech to text fails quietly rather than loudly. It returns fluent, confident, wrong text, and a fast response time only proves the GPU was busy. So every transcript passes a gate before it is used for anything, and the gate checks in both directions, because a check written against the failure you already saw passes the next one.
| Check | What it catches | Caught in 145 |
|---|---|---|
| Known null output | The confident one-line answer to a sixty second video. "Thank you." and "Thanks for watching" are the classics, and the match is on the whole transcript so a video that genuinely ends that way is untouched. | 3 |
| Repeated-phrase loop | The hallucination loop, measured as unique words over total words, plus a second check for one whole sentence repeating. | 2 |
| Too short for the clip | Below a ten word floor, unless the clip itself is under twenty seconds, in which case terse is plausible. | 1 |
139 of 145 passed. 6 did not. The 6 are named as failed in the output rather than averaged in and handed over looking finished. A transcript that fails the gate stays in the cache and is excluded from every analysis section, so a report is never built on top of a sentence the model invented.
Measured across a separate ledger of 213 completed videos, end to end and including fetching the media: a median of 25.6 seconds per video, a mean of 27.9 seconds, and 41.8 seconds at the 90th percentile. That is the real distribution rather than a best case, which is why the 90th percentile is printed next to the median.
Our tool tries the native caption track first via yt-dlp, preferring a manual track over an auto-generated one, English only for now. If a usable track exists we parse the VTT and return it, which takes about 2 seconds. If there is no track we extract the audio and run Whisper-large-v3-turbo via Cloudflare Workers AI.
The response records which path produced the words as transcript_source, with one of three values: native_manual, native_auto or whisper_v3_turbo. In the bulk transcript files that value is printed per video, so you can sort a hundred videos by how much to trust them. On the free web tool it is in the API response but not shown on the page. An earlier version of this post said a badge was displayed. It is not, and this paragraph is the correction.
Paste any TikTok, YouTube, Reel, X or Twitch link in the box on the HookFindr home page. Three a month with no signup, five a day signed in. Already-done videos stay free. Transcribe one video
Give one creator's handle and their videos come back as text: $10 for their 25 newest, $20 for 50, $35 for 100. Three files every time. A readable text file with a [mm:ss] stamp on every line, a spreadsheet with one row per video, and a spreadsheet with one row per timed line for hunting a phrase across a hundred videos. Each row says whether the words came from a caption track or from speech to text, and anything the gate failed is listed by name rather than hidden. Order bulk transcripts
The same transcripts, read for what repeats. $15 at the launch price for 25 videos, $35 for 50, and $65 for the version that also blanks their opening scaffolds so you can fit your own subject into them. Every claim carries the video id it came from, so you can open the video and check it. Order a teardown
Counted numbers on this page: the 137 and 8 split, and the 139 passed and 6 failed, are off our own transcript cache on July 31, 2026, n=145. The 25.6s median, 27.9s mean and 41.8s 90th percentile are off a separate ledger of 213 completed videos. No word error rate appears on this page because none was measured. Found something here that disagrees with what you see? Email us.
Related: can Otter.ai or Descript transcribe a TikTok · 5 ways to repurpose video content using transcripts