cc1aa9a269a28651b1ad9a6b1a12ee85987ebca9
yt-dlp messages are matched against a regex table kept as data, so the classification is unit-testable without the network and can be amended when YouTube changes its wording. Only network failures and aria2 process failures retry; a private video will still be private on the third attempt, and disk exhaustion is fatal rather than per-job. The retry loop is ours because it has to be: ExternalFD.real_download calls the downloader exactly once and turns a nonzero exit into report_error(), so yt-dlp's own `retries` never covers aria2c. Since --lowest-speed-limit deliberately makes aria2c exit nonzero on a stall, without this loop that stall would end the job instead of resuming it -- the .aria2 control file survives, so each attempt picks up where the last stopped. A missing aria2c downgrades to the native downloader with a warning rather than failing the run. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Description
No description provided
280 KiB
Languages
Python
99.7%
Shell
0.3%