fix(rp): yt-dlp 403(Forbidden) 간헐 실패에 내부 재시도 추가
증상: 첫 곡은 정상인데 두 번째 곡부터 "HTTP Error 403: Forbidden — unable to download video data" 로 노래 다운로드 실패(재시도하면 됨). 유튜브가 미디어 스트림에 간헐적 403 을 주는 케이스. - yt-dlp 인자에 --retries 10 / --fragment-retries 10 / --extractor-retries 3 / --retry-sleep http:exp=1:30 / --socket-timeout 30 추가 → yt-dlp 가 스스로 재시도·재추출해 한 번의 403 으로 곡이 실패하지 않게 함. - 인자 유효성은 실제 yt-dlp 로 파싱 검증. 0.4.11→0.4.12. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -38,6 +38,14 @@ export function downloadMusicTrack(opts: DownloadMusicOptions): Promise<string>
|
||||
// 단일 파일이 아니라 HLS/DASH fragmented 스트림일 때 청크를 병렬로.
|
||||
// 일반 progressive 다운로드에는 영향 없음.
|
||||
'--concurrent-fragments', '5',
|
||||
// 유튜브가 미디어 스트림에 간헐적으로 403(Forbidden) 을 준다(특히 두 번째 곡부터
|
||||
// throttle/클라이언트 이슈). yt-dlp 가 스스로 재시도·재추출하도록 해서 한 번의
|
||||
// 403 으로 곡 전체가 실패하지 않게 한다.
|
||||
'--retries', '10',
|
||||
'--fragment-retries', '10',
|
||||
'--extractor-retries', '3',
|
||||
'--retry-sleep', 'http:exp=1:30',
|
||||
'--socket-timeout', '30',
|
||||
// 진행률 표시 안정화 (yt-dlp 가 \r 대신 새 줄로 출력).
|
||||
'--newline',
|
||||
'--extract-audio',
|
||||
|
||||
Reference in New Issue
Block a user