Install yt-dlp on Windows 10 and 11
Quick answer
Two commands in PowerShell, then a fresh terminal. yt-dlp on its own is capped at 360p, so install ffmpeg at the same time rather than discovering the problem later:
winget install yt-dlp.yt-dlp
winget install Gyan.FFmpeg
Close the terminal, open a new one, and check both are visible:
yt-dlp --version
ffmpeg -version
Four routes, and which one to take
| Method | Updates by | Best when |
|---|---|---|
| winget | winget upgrade | Windows 10 1809+; nothing to install first |
| Scoop | scoop update * | You already use Scoop |
| Chocolatey | choco upgrade | A managed or corporate machine |
| Bare exe | yt-dlp -U | You want fixes the day they ship |
That last column matters more than it looks. How you install decides how fast extractor fixes reach you, and on a tool chasing YouTube's changes that is most of the experience.
winget
Built into Windows 10 1809 and later. Nothing to install first:
winget install yt-dlp.yt-dlp
winget upgrade yt-dlp.yt-dlp
Scoop
Installs to your user profile, so no administrator prompt, and it handles PATH:
scoop install yt-dlp ffmpeg
scoop update *
Chocolatey
Needs an elevated prompt. Common on machines already managed with it:
choco install yt-dlp ffmpeg
choco upgrade yt-dlp
The bare exe
Download yt-dlp.exe from
the project's release
page — not from a mirror, not from a site offering an "installer". Put it somewhere
permanent, then add that folder to PATH:
New-Item -ItemType Directory -Force "$env:LOCALAPPDATA\Programs\yt-dlp"
# move yt-dlp.exe into that folder, then:
[Environment]::SetEnvironmentVariable(
"Path",
[Environment]::GetEnvironmentVariable("Path", "User") + ";$env:LOCALAPPDATA\Programs\yt-dlp",
"User"
)
PATH, and why a new terminal is not optional
Windows reads PATH when a process starts. A terminal opened before the change keeps the old value for its whole life, and so does anything launched from it. This is the single most common reason for "I installed it and it says not recognized" — the install worked, the window is stale.
To check what the current window can see:
where.exe yt-dlp
$env:Path -split ';'
Windows Defender
Defender and several third-party scanners flag yt-dlp.exe periodically. It is a
false positive with a mundane cause: yt-dlp is a Python program packed into one executable, and
that packaging is also how a lot of malware is shipped, so heuristics fire on the shape rather
than the contents.
Add an exclusion for the folder if it keeps happening. What matters far more is where the file came from — sites advertising a "yt-dlp installer" or a bundled GUI have shipped real malware. The GitHub release page is the only source worth using.
Where downloads land
In whatever directory the terminal is in, which after opening PowerShell is your user folder. Set it explicitly instead:
yt-dlp -P "D:\Downloads\Video" -o "%(title)s.%(ext)s" "URL"
Better still, put it in a config file so it applies
every time. On Windows that file goes in
%APPDATA%\yt-dlp\config.
PowerShell quoting
Most commands you find online are written for bash. Two differences bite on Windows:
-
Line continuations. bash uses a trailing
\; PowerShell 7 accepts it, Windows PowerShell 5 andcmd.exedo not. Paste long commands as one line, or use a backtick. -
Quotes. Always quote format selectors and output templates.
bv*+ba/bunquoted lets PowerShell expand the*, and the failure is baffling.
If it still fails
- Recognised in PowerShell, not in cmd. Different PATH scope. Sign out and back in.
- Everything downloads at 360p. ffmpeg is missing or not visible — the 360p page narrows it down in one command.
-
Works for you, not for a scheduled task. Scheduled tasks run with a minimal
environment. Use absolute paths for both yt-dlp and
--ffmpeg-location. -
"Access is denied" on update.
-Ureplaces the exe in place, and cannot if it sits underProgram Files. Install to your user profile instead.
Frequently asked
'yt-dlp' is not recognized as an internal or external command
Which install method should I pick?
Windows Defender flagged yt-dlp.exe.
Do I need Python?
Related
- Install ffmpeg for yt-dlp on Windows, macOS and Linux Without ffmpeg yt-dlp is capped at whatever single file a site offers — usually 360p. How to install it on eac...
- 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 "ffmpeg not found" and "You have requested merging" in yt-dlp yt-dlp downloads video and audio separately and needs ffmpeg to join them. How to install it on each OS, why "...