Three more code paths were bypassing the _meta_lock guard and firing raw yt-dlp processes concurrently with active downloads: - Popular fetch Phase 1 (flat-playlist channel crawl): changed from ytdlp._run to ytdlp._meta_run so it waits for active downloads - download_subs_only: changed from _run to _meta_run - fetch_video_comments: returns empty list immediately if a download is active (avoids blocking a 90s call indefinitely) - Diagnostic test endpoint (settings): switched to _meta_run Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
9.0 KiB
9.0 KiB