Whisper vs sottotitoli di YouTube: quando vale la pena pagare la trascrizione

Whisper vs sottotitoli di YouTube è una decisione che quasi tutti impostano male. Viene trattata come una sfida di qualità — quale trascrittore è "migliore" — quando in realtà la domanda è se la trascrizione esista già. Per la grande maggioranza dei video YouTube, esiste: YouTube genera automaticamente i sottotitoli, e recuperarli è una singola chiamata HTTP. Eseguire Whisper su quei video significa scaricare l'audio, pagare per il calcolo e aspettare, per ricreare un testo che era lì da sempre.
Ma nemmeno Whisper è solo hype. Ci sono situazioni specifiche in cui è chiaramente la scelta giusta, e se stai costruendo una pipeline prima o poi le incontrerai. Ecco la ripartizione onesta, numeri alla mano.
Cosa offre davvero ciascuno dei due
Sottotitoli di YouTube — disponibili all'istante per la maggior parte dei video pubblici. Le tracce caricate da umani sono eccellenti; quelle generate automaticamente sono decenti e migliorano di anno in anno, con le debolezze classiche: punteggiatura scarna, nomi propri e gergo tecnico storpiati, occasionali scambi di omofoni. Costo di recupero: praticamente zero.
Whisper (o faster-whisper) — trascrive direttamente l'audio. Punteggiatura e maiuscole vere, migliore gestione del vocabolario tecnico (soprattutto con un prompt iniziale), timestamp a livello di parola solidi, e funziona su video del tutto privi di sottotitoli. Costo: la API di OpenAI viaggia intorno a 0,006 $ per minuto di audio; il self-hosting richiede una GPU o molta pazienza su CPU. E prima devi procurarti l'audio — tipicamente via yt-dlp — che sui server si porta dietro i suoi problemi (blocco degli IP dei datacenter, manutenzione del binario).
I conti su un arretrato di 100 video
Supponiamo che tu stia elaborando il catalogo storico di un canale: 100 video, in media 15 minuti.
Via Whisper: 100 × 15 min × 0,006 $ = circa 9 $ di costi API. Sembra economico — e lo è — ma il conto non finisce lì. Devi anche scaricare circa 100 file audio con yt-dlp (da un IP cloud, aspettati errori "Sign in to confirm you're not a bot" e costi di proxy), archiviarli, mettere in coda i job e aspettare. Realisticamente è un pomeriggio di lavoro sulla pipeline più oltre un'ora di elaborazione effettiva.
Via sottotitoli: 100 richieste GET. Finito in un paio di minuti, senza che un solo file audio tocchi il tuo disco:
curl -s "https://youtube2text.org/api/transcribe?url=VIDEO_ID" \
-H "x-api-key: yt_YOUR_KEY"
Con i prezzi di youtube2text.org, 100 video rientrano nel piano da 9,99 $ al mese (500 video). Cifra simile in dollari al costo API di Whisper — ma zero infrastruttura, e i risultati arrivano subito come JSON pulito. Quando devo dare in pasto le trascrizioni a un LLM per riassunti o per una RAG su scala di canale, questa è la strada ogni volta; i modelli linguistici digeriscono senza problemi i piccoli errori di trascrizione dei sottotitoli automatici.
Dove Whisper vince davvero
Voglio essere lucido su questo punto, perché ci sono lavori in cui i sottotitoli perdono nettamente:
- I sottotitoli non esistono. Alcuni video — upload non in elenco, certi contenuti musicali, alcuni video non in inglese — restituiscono
TRANSCRIPT_UNAVAILABLE. Whisper è l'unica opzione. - L'accuratezza è il prodotto. Pubblicazione di citazioni, revisione legale o medica, sottotitolazione dei tuoi contenuti — il tasso di errore dei sottotitoli automatici è inaccettabile e l'output di Whisper è nettamente più pulito.
- Ti servono timestamp affidabili a livello di parola per il clipping, l'evidenziazione in stile karaoke o lavori di allineamento. Il timing dei sottotitoli è a livello di segmento e approssimativo.
- Audio difficile. Accenti marcati, voci sovrapposte, registrazioni scadenti — i modelli large di Whisper spesso battono l'ASR di YouTube.
Per gli appunti dalle lezioni e i riassunti di podcast, però, i sottotitoli sono quasi sempre sufficienti — l'LLM a valle appiana il rumore.
La lista per decidere
- Dai in pasto a un LLM (riassunti, RAG, ricerca)? → Sottotitoli. Gli errori si diluiscono.
- Pubblichi la trascrizione parola per parola? → Whisper, poi revisione umana.
- Ti servono timestamp a livello di parola? → Whisper.
- Arretrato in blocco con budget e scadenza? → Prima i sottotitoli.
- Il video restituisce
TRANSCRIPT_UNAVAILABLE(404)? → Ripiega su Whisper. È il pattern che eseguo davvero: provo la chiamata ai sottotitoli e instrado verso una coda Whisper solo i buchi. In pratica il fallback scatta su una piccola minoranza di video, quindi ottieni copertura da Whisper a costo da sottotitoli.
Se il recupero dei sottotitoli continua a fallire da un server cloud invece di restituire risultati, è un problema diverso — un blocco dell'IP, non sottotitoli mancanti — trattato in perché youtube-transcript-api viene bloccata.
Per mettere in piedi la metà "prima i sottotitoli": una chiave gratuita è a un accesso Google di distanza su youtube2text.org/app/keys (5 video al mese gratis, senza carta), e il riferimento completo della API è su youtube2text.org/api.md.