Whisper czy napisy YouTube: kiedy płacić za transkrypcję

Whisper kontra napisy YouTube to decyzja, którą większość ludzi źle stawia. Traktuje się ją jak pojedynek jakości — który transkryber jest „lepszy" — a to tak naprawdę pytanie o to, czy transkrypcja już istnieje. Dla zdecydowanej większości filmów na YouTube istnieje: YouTube generuje napisy automatycznie, a ich pobranie to jedno wywołanie HTTP. Uruchamianie Whispera na tych filmach oznacza pobieranie audio, płacenie za moc obliczeniową i czekanie — po to, by odtworzyć tekst, który cały czas tam leżał.
Ale Whisper to też nie jest sama pompa marketingowa. Są konkretne sytuacje, w których to on jest ewidentnie właściwym wyborem, i jeśli budujesz pipeline, w końcu na nie trafisz. Oto uczciwy podział, z liczbami.
Co tak naprawdę daje każde z rozwiązań
Napisy YouTube — dostępne natychmiast dla większości publicznych filmów. Ścieżki wgrane przez ludzi są znakomite; automatycznie generowane są przyzwoite i z roku na rok coraz lepsze, z klasycznymi słabościami: uboga interpunkcja, przekręcone nazwy własne i żargon, sporadyczne pomyłki homofonów. Koszt pobrania: praktycznie zero.
Whisper (lub faster-whisper) — transkrybuje samo audio. Prawdziwa interpunkcja i wielkość liter, lepsza obsługa słownictwa technicznego (zwłaszcza z promptem początkowym), solidne znaczniki czasu na poziomie słów, a do tego działa na filmach, które w ogóle nie mają napisów. Koszt: API OpenAI to około 0,006 USD za minutę audio; self-hosting wymaga GPU albo dużej cierpliwości na CPU. I najpierw trzeba zdobyć audio — zwykle przez yt-dlp — co na serwerach ciągnie za sobą własne problemy (blokowanie IP z centrów danych, utrzymanie binarki).
Rachunek dla zaległości ze 100 filmami
Załóżmy, że przetwarzasz archiwum kanału: 100 filmów, średnio po 15 minut.
Droga przez Whisper: 100 × 15 min × 0,006 USD = około 9 USD opłat za API. Brzmi tanio — i jest tanio — ale to nie cały rachunek. Musisz też pobrać przez yt-dlp mniej więcej 100 plików audio (z chmurowego IP spodziewaj się błędów „Sign in to confirm you're not a bot" i kosztów proxy), przechować je, zakolejkować zadania i czekać. Realnie to popołudnie pracy nad pipeline'em plus ponad godzina rzeczywistego przetwarzania.
Droga przez napisy: 100 żądań GET. Gotowe w kilka minut, żadne audio nie dotyka Twojego dysku:
curl -s "https://youtube2text.org/api/transcribe?url=VIDEO_ID" \
-H "x-api-key: yt_YOUR_KEY"
W cenniku youtube2text.org 100 filmów mieści się w planie za 9,99 USD miesięcznie (500 filmów). Kwotowo podobnie do opłaty za API Whispera — ale zero infrastruktury, a wyniki przychodzą od razu jako czysty JSON. Kiedy przekazuję transkrypcje do LLM w celu streszczania albo RAG w skali całego kanału, zawsze wybieram tę drogę; modele językowe wzruszają ramionami na drobne błędy transkrypcji w automatycznych napisach.
Gdzie Whisper naprawdę wygrywa
Chcę tu zachować trzeźwość spojrzenia, bo są zadania, w których napisy przegrywają z kretesem:
- Napisy nie istnieją. Niektóre filmy — niepubliczne uploady, część treści muzycznych, niektóre filmy w językach innych niż angielski — zwracają
TRANSCRIPT_UNAVAILABLE. Whisper to jedyna opcja. - Dokładność jest produktem. Publikowanie cytatów, przegląd prawny lub medyczny, napisy do własnych treści — poziom błędów automatycznych napisów jest nieakceptowalny, a wynik Whispera jest wyraźnie czystszy.
- Potrzebujesz wiarygodnych znaczników czasu na poziomie słów do wycinania klipów, podświetlania w stylu karaoke albo prac nad wyrównaniem. Timing napisów jest segmentowy i przybliżony.
- Trudne audio. Mocne akcenty, nakładające się głosy, słabe nagrania — duże modele Whispera często biją ASR YouTube'a.
Jednak do notatek z wykładów i streszczania podcastów napisy prawie zawsze wystarczają — LLM na dalszym etapie zamazuje szum.
Lista decyzyjna
- Karmisz LLM (streszczenia, RAG, research)? → Napisy. Błędy się rozmywają.
- Publikujesz transkrypcję dosłownie? → Whisper, a potem korekta przez człowieka.
- Potrzebujesz znaczników czasu na poziomie słów? → Whisper.
- Duże archiwum, ograniczony budżet i deadline? → Najpierw napisy.
- Film zwraca
TRANSCRIPT_UNAVAILABLE(404)? → Fallback na Whisper. To wzorzec, który faktycznie stosuję: próbuj wywołania po napisy, a do kolejki Whispera kieruj tylko nietrafienia. W praktyce fallback odpala się dla niewielkiej mniejszości filmów, więc dostajesz pokrycie na poziomie Whispera przy kosztach na poziomie napisów.
Jeśli pobieranie napisów ciągle zawodzi z serwera w chmurze zamiast zwracać wyniki, to inny problem — blokada IP, a nie brak napisów — opisany w dlaczego youtube-transcript-api jest blokowane.
Żeby uruchomić połowę „najpierw napisy": darmowy klucz jest o jedno logowanie Google stąd na youtube2text.org/app/keys (5 filmów miesięcznie za darmo, bez karty), a pełna dokumentacja API znajduje się pod youtube2text.org/api.md.