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

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

## 테스트

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

## 다음 에이전트 참고

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