Whisper vs YouTube 자막: 유료 전사가 필요한 순간은 언제인가

Whisper vs YouTube 자막은 대부분의 사람들이 잘못된 틀로 접근하는 문제입니다. 어느 쪽 전사기가 "더 나은가"라는 품질 대결로 다뤄지지만, 실제로는 스크립트가 이미 존재하는지에 대한 질문입니다. YouTube 영상의 대다수는 이미 존재합니다. YouTube가 자막을 자동 생성하고, 이를 가져오는 것은 HTTP 호출 한 번입니다. 그런 영상에 Whisper를 돌린다는 것은 오디오를 다운로드하고, 컴퓨팅 비용을 내고, 기다리면서, 처음부터 거기 있던 텍스트를 다시 만들어 내는 일입니다.
그렇다고 Whisper가 과대평가라는 뜻은 아닙니다. Whisper가 명백히 옳은 선택인 특정 상황들이 있고, 파이프라인을 만들다 보면 결국 그 상황을 만나게 됩니다. 숫자와 함께 공정하게 나눠 보겠습니다.
각각이 실제로 주는 것
YouTube 자막 — 대부분의 공개 영상에서 즉시 사용 가능합니다. 사람이 업로드한 자막 트랙은 훌륭하고, 자동 생성 자막은 쓸 만한 수준에서 해마다 개선되고 있지만 고전적인 약점이 있습니다. 빈약한 문장 부호, 뭉개지는 고유명사와 전문 용어, 가끔씩의 동음이의어 교체. 가져오는 비용: 사실상 0.
Whisper (또는 faster-whisper) — 오디오 자체를 전사합니다. 제대로 된 문장 부호와 대소문자, (특히 initial prompt를 주면) 더 나은 기술 어휘 처리, 탄탄한 단어 단위 타임스탬프, 그리고 자막이 아예 없는 영상에서도 동작합니다. 비용: OpenAI API 기준 오디오 1분당 약 $0.006. 자체 호스팅에는 GPU 또는 상당한 CPU 인내심이 필요합니다. 그리고 먼저 오디오를 확보해야 하는데(보통 yt-dlp 이용), 이는 서버 환경에서 고유의 문제들(데이터센터 IP 차단, 바이너리 유지보수)을 끌고 옵니다.
영상 100개 백로그의 계산
한 채널의 과거 카탈로그를 처리한다고 합시다. 영상 100개, 평균 15분.
Whisper 경로: 100 × 15분 × $0.006 = API 요금 약 $9. 저렴해 보이고 실제로도 저렴하지만, 그게 청구서의 전부가 아닙니다. yt-dlp로 오디오 파일 약 100개를 다운로드해야 하고(클라우드 IP에서는 "Sign in to confirm you're not a bot" 실패와 프록시 비용을 각오하세요), 저장하고, 작업을 큐에 넣고, 기다려야 합니다. 현실적으로 파이프라인 작업에 한나절, 실제 처리 시간으로 한 시간 이상이 듭니다.
자막 경로: GET 요청 100번. 몇 분이면 끝나고, 오디오가 디스크에 닿을 일이 없습니다:
curl -s "https://youtube2text.org/api/transcribe?url=VIDEO_ID" \
-H "x-api-key: yt_YOUR_KEY"
youtube2text.org 요금 기준으로 영상 100개는 월 $9.99 플랜(영상 500개)에 들어갑니다. Whisper의 API 요금과 비슷한 금액이지만 인프라는 전무하고, 결과는 깔끔한 JSON으로 즉시 도착합니다. 요약이나 채널 규모 RAG를 위해 스크립트를 LLM에 넣을 때는 매번 이 경로를 택합니다. 언어 모델은 자동 자막의 사소한 전사 오류쯤은 대수롭지 않게 넘깁니다.
Whisper가 진짜로 이기는 곳
여기서는 냉정하게 짚고 싶습니다. 자막이 완패하는 작업들이 분명 있으니까요:
- 자막이 존재하지 않는 경우. 일부 영상 — 미등록 업로드, 특정 음악 콘텐츠, 일부 비영어 영상 — 은
TRANSCRIPT_UNAVAILABLE을 반환합니다. Whisper가 유일한 선택지입니다. - 정확도가 곧 제품인 경우. 인용문 게재, 법률·의료 검토, 자기 콘텐츠의 자막 제작 — 자동 자막의 오류율은 용납되지 않고 Whisper의 출력이 확연히 깨끗합니다.
- 신뢰할 수 있는 단어 단위 타임스탬프가 필요한 경우. 클리핑, 노래방식 하이라이트, 정렬 작업에는 필수인데, 자막 타이밍은 구간 단위이고 근사치입니다.
- 어려운 오디오. 심한 억양, 겹치는 발화, 열악한 녹음 — Whisper의 대형 모델이 YouTube의 ASR을 이기는 경우가 많습니다.
다만 강의 노트나 팟캐스트 요약에는 자막이 거의 항상 충분합니다. 다운스트림의 LLM이 노이즈를 덮어 주니까요.
결정 목록
- LLM에 입력(요약, RAG, 리서치)? → 자막. 오류는 씻겨 나갑니다.
- 스크립트를 그대로 게재? → Whisper, 그다음 사람이 검토.
- 단어 단위 타임스탬프 필요? → Whisper.
- 예산과 마감이 있는 대량 백로그? → 자막 우선.
- 영상이
TRANSCRIPT_UNAVAILABLE(404)을 반환? → Whisper로 폴백. 제가 실제로 돌리는 패턴입니다. 자막 호출을 먼저 시도하고, 실패한 것만 Whisper 큐로 보냅니다. 실전에서 폴백이 발동하는 영상은 소수라서, 자막 수준의 비용으로 Whisper 수준의 커버리지를 얻습니다.
클라우드 서버에서 자막 가져오기가 결과 없이 계속 실패한다면, 그건 다른 문제입니다. 자막이 없는 게 아니라 IP 차단이며, youtube-transcript-api가 차단되는 이유에서 다룹니다.
자막 우선 절반을 연결하려면: youtube2text.org/app/keys에서 Google 로그인만으로 무료 키를 받을 수 있고(월 5개 영상 무료, 카드 불필요), 전체 API 레퍼런스는 youtube2text.org/api.md에 있습니다.