perf(installer-rp): parallel music download (3 concurrent) + fragmented chunks

- yt-dlp 인자에 --concurrent-fragments 5 추가 (HLS/DASH 청크 병렬 다운로드)
- yt-dlp 인자에 --newline 추가 (진행률 라인 안정화)
- 음악 다운로드 루프를 단일 순차 → worker pool 3개 동시 처리로 전환
- state.currentChild (단일) → state.activeChildren (Set) 으로 확장,
  취소 시 실행 중인 모든 자식 프로세스 kill
- UI 는 카드 그리드라 병렬 진행 상태가 그대로 표시됨

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-05-13 00:19:29 +09:00
parent 9f9cffffeb
commit 861e5678fc
2 changed files with 66 additions and 40 deletions

View File

@@ -32,6 +32,11 @@ export function downloadMusicTrack(opts: DownloadMusicOptions): Promise<string>
const args = [
'--no-warnings',
'--no-playlist',
// 단일 파일이 아니라 HLS/DASH fragmented 스트림일 때 청크를 병렬로.
// 일반 progressive 다운로드에는 영향 없음.
'--concurrent-fragments', '5',
// 진행률 표시 안정화 (yt-dlp 가 \r 대신 새 줄로 출력).
'--newline',
'--extract-audio',
'--audio-format', 'vorbis',
'--audio-quality', '0',