Skip to content

Add "pull YT subs before Whisper" step + footgun - #4

Draft
evnchn wants to merge 1 commit into
mainfrom
feat/pull-yt-subs-before-whisper
Draft

Add "pull YT subs before Whisper" step + footgun#4
evnchn wants to merge 1 commit into
mainfrom
feat/pull-yt-subs-before-whisper

Conversation

@evnchn

@evnchn evnchn commented Jul 18, 2026

Copy link
Copy Markdown
Contributor

TL;DR

Add "pull YouTube's own subs before Whisper" to the pipeline (step-2 prelude + one footgun row). yt-dlp --list-subs costs ~5s and pays three ways — most importantly it catches a video that's already in the target language before you download + transcribe it for nothing.

Verdict from a live run: on youtube.com/watch?v=ohCAPyqlJpo (a 16-min English talk), the en-orig tag alone would have short-circuited the whole "localize to English" pipeline. And YouTube's auto-caption vs Whisper large-v3-turbo agreed on 98.2% of words — but the 1.8% delta is exactly where a human is needed, and each engine was right where the other was wrong.

Diff is +2 / −1 lines, matching the skill's dense-footgun house style. Doc-only.


The three payoffs (why this earns a line)
  1. Language tripwire. --list-subs shows a <lang>-orig track = the video's true source-caption language. If that's already your target (e.g. en-orig), the localize job is a no-op — stop before downloading/whispering. This skill previously had no such tripwire; the trigger video is literally already English.
  2. A free, often-better transcript. A manual/creator track in the source language beats Whisper for free: real punctuation, correct proper nouns, no injected [music] tokens.
  3. A free second ASR to cross-check. An -orig auto-caption is another ASR — diffing it against Whisper surfaces exactly the lines that need a human fix.

Trap folded into the row: the 100+ other languages in --list-subs (incl. zh-Hant, ja, ko) are YouTube auto-translations, not creator tracks — don't mistake a zh-Hant row for a real Chinese source.

Evidence — YT auto-caption vs Whisper large-v3-turbo (same English audio)
YouTube auto-cap Whisper turbo
cues 493 254
words 3006 3010
[music] tokens 58 0
normalized word-seq similarity 0.9820
  • Segmentation: Whisper's 254 sentence-ish segments are far more dub-ready than YT's 493 rolling display cues (and YT injects 58 mid-sentence [music] tokens). → Whisper is the better base transcript.
  • Proper nouns (the 1.8% that matters):
    • Arthur AndersenYT correct, Whisper wrong (Anderson). Context confirms the Enron-era auditor ("one of the big five", "$25 million in audit fees"), spelled Andersen.
    • Sponsor eSIM brand — both wrong: YT Saylite/Sayle, Whisper Saley. Ground truth is Saily (Nord Security's eSIM, saily.com/invisiblegame, code INVISIBLEGAME) — verified against saily.com.
    • auditsorders — disagree both directions (context-dependent mishear).
  • Remaining delta is ~US/UK spelling (penalized/penalised, color/colour) and number formatting ($95 vs "95 dollars") — cosmetic, not substance.

Takeaway baked into the wording: don't pick one engine blindly — cross-check them; the disagreements are a free proper-noun error detector. Neither engine alone catches "Andersen", and neither gets "Saily".

Repro: yt-dlp --list-subs, pull en-orig, run whisper --model large-v3-turbo --language en, diff normalized word sequences.

🤖 Generated with Claude Code

`yt-dlp --list-subs` before transcribing pays three ways: the `<lang>-orig`
tag reveals the true source language (tripwire for a video already in the
target language — a whole-pipeline no-op), a manual/creator track can beat
Whisper for free, and an `-orig` auto-caption is a free second ASR to
cross-check Whisper against. Adds a step-2 prelude + one footgun row.

Grounded in a live run (yt=ohCAPyqlJpo): en-orig present -> already English;
YT-vs-Whisper 98.2% word-agreement but split on Arthur Andersen (YT right,
Whisper "Anderson" wrong) and both botched the brand "Saily".

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant