Skip to content

Start typing. Errors match on their exact yt-dlp output.

to move, to open esc to close

Fix "Unable to extract player response" in yt-dlp

Tested on yt-dlp 2026.07.28 Updated Increasingly common
What yt-dlp prints
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:

bash
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:

bash
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:

bash
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:

bash
yt-dlp --update-to nightly
pip installs
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:

bash
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:

bash
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:

bash
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?
Almost never. This error means the site changed its page structure and the extractor has not caught up. The only thing on your side worth checking is whether you are running a build old enough to be missing a fix that already exists.
How fast do these get fixed?
For YouTube, usually hours to a couple of days — it affects everyone at once and gets immediate attention. For a small site with few users, it can be weeks, and occasionally the extractor is retired instead.
What is the difference between nightly and master?
Nightly is built once a day from whatever is on master, and is the channel to use. Master is the branch itself and can contain a change from ten minutes ago that has not been tested against anything.
Should I open an issue?
Search first — site-wide breakage always has a thread within the hour, and a duplicate slows the fix down. If nothing exists, the full -v output from a public video is what makes a report actionable.