Fix "Unable to extract player response" in yt-dlp
ERROR: [youtube] dQw4w9WgXcQ: Unable to extract player response; please report this issue on https://github.com/yt-dlp/yt-dlp/issues?q= , filling out the appropriate issue template. Confirm you are on the latest version using yt-dlp -U
Quick answer
This one is genuinely not your fault. The site changed its page and yt-dlp's extractor cannot find what it expects. There is no flag that fixes it — only a newer build, and the nightly channel carries the fix days before a numbered release does:
yt-dlp --update-to nightly && yt-dlp --rm-cache-dir
What the extractor was doing
yt-dlp downloads the watch page and looks for a large blob of JSON — the player response — containing the video's metadata and its format list. That blob is embedded in the page, and its shape is entirely up to YouTube.
When YouTube moves it, renames it, splits it, or serves it only under conditions yt-dlp does not meet, the extractor finds nothing and says so. That is why the message asks you to report it: it is the extractor admitting the page no longer looks the way it was written for.
No local configuration influences this. The fix is code, written by someone else, and your only real decision is how quickly you receive it.
Confirming it in thirty seconds
Try a video that has existed since 2005 and is public everywhere. If that fails, nothing about your URL is the problem:
yt-dlp --simulate "https://www.youtube.com/watch?v=jNQXAC9IVRw"
Failing there means site-wide breakage, and there will already be an issue open. Succeeding means the problem is narrower — a particular video, or a particular kind of video.
What to do
1. Update properly
"I updated last month" is not current in this niche. Check the version and compare it against the release page:
yt-dlp --version
yt-dlp -U
If -U says the binary cannot update itself, yt-dlp came from a package manager and
may be months behind —
which is the whole argument for the standalone
binary.
2. Switch to nightly
Extractor fixes are merged as soon as they work and released on a schedule. Nightly closes that gap:
yt-dlp --update-to nightly
python -m pip install -U --pre "yt-dlp[default]"
For anyone using yt-dlp regularly, nightly is the sensible default channel. The instability it is supposed to carry is mostly theoretical; the staleness of the stable channel is not.
3. Clear the cache
A new extractor plus a cached parse of the old player is its own failure mode:
yt-dlp --rm-cache-dir
4. Try a different client
Different clients get different page structures, and a break rarely affects all of them at once:
yt-dlp --extractor-args "youtube:player_client=tv,web_safari,android" "URL"
Reporting it usefully
If nightly still fails and no issue exists, one command produces everything a maintainer needs:
yt-dlp -vU "URL" 2>&1 | tee ytdlp-report.txt
Include the whole output, and use a public video — a report against a private URL cannot be reproduced, and will be closed for that reason alone. Search the tracker first; duplicates slow the fix down rather than speeding it up.
While you wait
For a break that affects a site broadly, waiting is genuinely the answer — a day for YouTube, longer for a small site. There is no configuration that substitutes for the code that has not been written yet.
What is worth doing meanwhile is making sure you receive the fix the moment it lands: nightly channel, self-updating install, and the cache cleared.
If it still fails
- Only one video, everything else fine. Something unusual about that upload — a premiere, a members-only stream, region-specific handling. Try video unavailable.
- Only from one machine. Something is rewriting the page before yt-dlp sees it — a proxy, a filtering DNS, an antivirus module. See certificate verify failed, which usually accompanies it.
- Nightly is older than stable. The nightly build failed. Wait a day, or reinstall from the release page.
- A site other than YouTube, broken for months. Check whether the extractor was removed. Some are retired when the site changes faster than anyone is willing to follow.
Frequently asked
Is this my fault?
How fast do these get fixed?
What is the difference between nightly and master?
Should I open an issue?
Related
- yt-dlp: pip, pipx, Binary or Nightly — Which to Install The install method decides how fast you get extractor fixes, and extractor fixes are the whole game. A straigh...
- Fix "nsig extraction failed" and 50 KiB/s Downloads in yt-dlp The nsig warning is why your download crawls at dial-up speed instead of failing outright. What the n-paramete...
- Fix "Video unavailable" in yt-dlp Six different situations print the same two words. How to tell a geo-block from a takedown from a broken extra...