Files
GhiVideo_v4/docs/history/2026-07-07_1524_AI영상요약-자막429오류-음성인식폴백-수정.md
T
b23042andClaude Fable 5 d38b842e8d GhiVideo 소스 복제 — v4 작업 시작 기준
기존 GhiVideo 저장소 HEAD의 트래킹 소스 362개 파일을 복제.
(node_modules·storage·빌드 산출물·대용량 미디어는 .gitignore 규칙대로 제외)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-09 14:32:51 +09:00

1.8 KiB

AI Video Brief — 자막 다운로드 429 오류 시 요약 실패 문제 수정

소요 시간: 6분 Context 사용량: input 650k / output 45k tokens (추정값)

문제

요약 버튼 클릭 시 ERROR: Unable to download video subtitles for 'en': HTTP Error 429: Too Many Requests 로 작업 전체가 실패.

  • 원인 1: 유튜브가 자막을 자주 요청하는 IP를 일시 차단(429). 기존 코드는 언어 4개(ko/ko-KR/en/en-US)의 수동+자동 자막을 한꺼번에 요청해서 차단에 걸리기 쉬웠음.
  • 원인 2: 자막 다운로드 예외가 그대로 전파되어, Whisper 음성인식 폴백이 있는데도 작업이 죽음.

수정 (ai_video_brief)

app/services/downloader.pyfetch_subtitles() 재작성:

  1. 자막 목록만 먼저 조회(다운로드 아님) → 우선순위에 맞는 언어 딱 1개만 선택해 다운로드 (요청 수 최소화, sleep_interval_subtitles: 1 추가)
  2. 함수 전체를 try/except로 감싸 어떤 오류든 None 반환 → 호출부(main.py)가 자동으로 Whisper 음성인식으로 진행
  3. 수동 자막 우선, 없으면 자동 생성 자막 (기존 우선순위 유지)

app/main.py — 진행 메시지를 "자막을 못 가져와 소리를 내려받는 중 (음성인식으로 진행)"으로 명확화.

테스트

  • 강제 재요약(force) 전 과정 통과: 자막 1개 선택 다운로드 → 요약 완료 (16초)
  • 예외 시 None 폴백 경로는 코드 보장 (Whisper 경로는 이전 세션에서 검증 완료)

다음 에이전트 참고

  • 429는 시간이 지나면 자동으로 풀림. 앞으로 자막 실패는 사용자에게 오류로 보이지 않고 음성인식으로 조용히 전환됨 (원문 출처 표시로 구분 가능: "자막" vs "음성인식(Whisper)").