← ClaudeAtlas

yt-dlp-troubleshootinglisted

Diagnose and fix yt-dlp failures on YouTube, TikTok, Instagram and generic sites in 2026. Use when a download or metadata fetch fails with errors like "Sign in to confirm you're not a bot", "HTTP Error 403/429", "Requested format is not available", "Signature solving failed" / "nsig extraction failed", "No supported JavaScript runtime", "Unable to extract webpage video data", "empty media response", "There is no video in this post", "Unsupported URL", or when it works on a laptop but not in Docker/CI/cloud. Explains PO tokens, the JS runtime requirement, TLS impersonation, cookies, proxies, rate limits, and when the honest answer is "this IP will never work".
franciscobmacedo/postreef-skills · ★ 0 · AI & Automation · score 73
Install: claude install-skill franciscobmacedo/postreef-skills
# yt-dlp troubleshooting (2026) Most yt-dlp "bugs" are one of five things: an old build, no JavaScript runtime, a missing PO token, a missing TLS-impersonation dependency, or an IP that the platform has decided is a bot. Work through §1 before touching anything else, then match the exact error text in §2. Sources: the yt-dlp README and wiki (Extractors, FAQ, PO-Token-Guide, EJS pages), maintainer statements on GitHub issues, the bgutil provider README, and the author's experience running yt-dlp at volume. Quotes are verbatim where marked. Open `references/error-table.md` whenever a version number, a client name, or a flag matters (the user's build is old, you're recommending a runtime or provider version); it carries the sources and the date each fact was checked. This area changes monthly. ## 1. Always do this first (fixes most reports) ```bash yt-dlp --version # stable is dated YYYY.MM.DD; anything >90 days old is suspect pip install -U "yt-dlp[default,curl-cffi]" # pip users. [default] = yt-dlp-ejs + deps; curl-cffi = impersonation yt-dlp --update-to nightly # binary users. "-U" stays on your channel; nightly is the maintainers' recommended channel yt-dlp -v "URL" 2>&1 | head -40 # verbose header: version, runtimes found, PO-token providers, impersonate targets ``` Read the verbose header. You want to see a JS runtime (`deno` or `node`), and for YouTube on a server, a PO Token Provider line. If a maintainer asks for a bug report th