- 발표자료(좌표투영·측점기반재생) 갱신 + 그림/PDF - 특허 출원 초안 및 도면 - AI 영상요약 서비스 작업기록(docs/history) - 관련 scripts 추가 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1.8 KiB
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.py — fetch_subtitles() 재작성:
- 자막 목록만 먼저 조회(다운로드 아님) → 우선순위에 맞는 언어 딱 1개만 선택해 다운로드 (요청 수 최소화,
sleep_interval_subtitles: 1추가) - 함수 전체를 try/except로 감싸 어떤 오류든 None 반환 → 호출부(main.py)가 자동으로 Whisper 음성인식으로 진행
- 수동 자막 우선, 없으면 자동 생성 자막 (기존 우선순위 유지)
app/main.py — 진행 메시지를 "자막을 못 가져와 소리를 내려받는 중 (음성인식으로 진행)"으로 명확화.
테스트
- ✅ 강제 재요약(force) 전 과정 통과: 자막 1개 선택 다운로드 → 요약 완료 (16초)
- ✅ 예외 시 None 폴백 경로는 코드 보장 (Whisper 경로는 이전 세션에서 검증 완료)
다음 에이전트 참고
- 429는 시간이 지나면 자동으로 풀림. 앞으로 자막 실패는 사용자에게 오류로 보이지 않고 음성인식으로 조용히 전환됨 (원문 출처 표시로 구분 가능: "자막" vs "음성인식(Whisper)").