# yt-dlp configuration file # Place this at ~/.config/yt-dlp/config # yt-dlp reads this automatically on every invocation — including ones # spawned by Flask — so no flags need to be passed in code. # ------------------------------------------------------------------ # Cache — persists the YouTube player JS and API responses to disk. # The player is re-used across all downloads until YouTube rotates it # (typically every few days), eliminating the repeated # "Downloading player / Solving JS challenges" steps. # ------------------------------------------------------------------ --cache-dir ~/.cache/yt-dlp # ------------------------------------------------------------------ # JS runtime — node for solving YouTube's JS challenges. # Avoids yt-dlp having to search PATH on every invocation. # ------------------------------------------------------------------ --js-runtimes node:/usr/bin/node # ------------------------------------------------------------------ # Network # ------------------------------------------------------------------ --socket-timeout 30 --retries 6 --fragment-retries 6