Over the years, I keep facing this issue of upgrading yt-dlp using winget. I had to search the resolution over and over with many people pointing to different places, but only this worked for me, so I’m documenting it for myself.
Background
Winget is a pacakage manager for Windows. yt-dlp is a program to download YouTube videos. This program has an optional dependency to ffmpeg. When ffmpeg is available to use, yt-dlp gives the full feature of video/audio manipulation, like coverting from one format to another, splitting/merging, etc.
When installing yt-dlp through winget using:
winget install yt-dlp
Winget will also install this package called “Gyan.FFmpeg” and this package will make “ffmpeg” executable available for use in terminal, and therefore will make yt-dlp able to use ffmpeg too.
Problem
As documented in this GitHub issue yt-dlp.yt-dlp hard depends on Gyan.FFmpeg and no ability to use shared ffmeg, many users are facing issue with updating yt-dlp to latest version using winget upgrade yt-dlp
.
For me, the problem arise after doing the upgrade, as seen with this logs:
PowerShell 7.5.0
PS C:\PATH_TO_FOLDER> yt-dlp --version
2025.03.25
PS C:\PATH_TO_FOLDER> ffmpeg -version
ffmpeg version 7.1.1-full_build-www.gyan.dev Copyright (c) 2000-2025 the FFmpeg developers
built with gcc 14.2.0 (Rev1, Built by MSYS2 project)
[...redacted...]
PS C:\PATH_TO_FOLDER> winget upgrade yt-dlp
Found yt-dlp [yt-dlp.yt-dlp] Version 2025.03.27
This application is licensed to you by its owner.
Microsoft is not responsible for, nor does it grant any licenses to, third-party packages.
This package requires the following dependencies:
- Packages
Gyan.FFmpeg
(1/1) Found FFmpeg [Gyan.FFmpeg] Version 7.1.1
This application is licensed to you by its owner.
Microsoft is not responsible for, nor does it grant any licenses to, third-party packages.
Successfully verified installer hash
Extracting archive...
Successfully extracted archive
Starting package install...
Command line alias added: "ffmpeg"
Command line alias added: "ffplay"
Command line alias added: "ffprobe"
Successfully installed
Downloading https://github.com/yt-dlp/yt-dlp/releases/download/2025.03.27/yt-dlp.exe
██████████████████████████████ 17.2 MB / 17.2 MB
Successfully verified installer hash
Starting package install...
Command line alias added: "yt-dlp"
Successfully installed
PS C:\PATH_TO_FOLDER> yt-dlp --version
2025.03.27
PS C:\PATH_TO_FOLDER> ffmpeg -version
ffmpeg version 7.1.1-full_build-www.gyan.dev Copyright (c) 2000-2025 the FFmpeg developers
built with gcc 14.2.0 (Rev1, Built by MSYS2 project)
[...redacted...]
PS C:\PATH_TO_FOLDER>
However, if I open a new terminal:
PowerShell 7.5.0
PS C:\PATH_TO_FOLDER> ffmpeg
ffmpeg: The term 'ffmpeg' is not recognized as a name of a cmdlet, function, script file, or executable program.
Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
PS C:\PATH_TO_FOLDER> yt-dlp
yt-dlp: The term 'yt-dlp' is not recognized as a name of a cmdlet, function, script file, or executable program.
Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
PS C:\PATH_TO_FOLDER>
At this state, the following commands no longer work for me:
winget upgrade yt-dlp
winget upgrade Gyan.FFmpeg
winget uninstall yt-dlp
winget unsintall Gyan.FFmpeg
As I face the following problem or the combinations of them:
- The program is already at the latest version, or
- The program does not exist, or
- yt-dlp is available, but it cannot use ffmpeg
Solution
For me, to upgrade to latest version of yt-dlp, I have to fully uninstall yt-dlp and ffmpeg first using Control Panel.
- Windows settings > Apps > Installed apps. Search for “ffmpeg”. On the FFmpeg entry, tap the three-dot button, and click Uninstall
- Windows settings > Apps > Installed apps. Search for “yt-dlp”. On the yt-dlp entry, tap the three-dot button, and click Uninstall
After that, re-do the installation of yt-dlp again, using winget install yt-dlp
. This will make both yt-dlp and ffmpeg available again on terminal.
PS C:\PATH_TO_FOLDER> winget install yt-dlp
Found yt-dlp [yt-dlp.yt-dlp] Version 2025.03.27
This application is licensed to you by its owner.
Microsoft is not responsible for, nor does it grant any licenses to, third-party packages.
This package requires the following dependencies:
- Packages
Gyan.FFmpeg
(1/1) Found FFmpeg [Gyan.FFmpeg] Version 7.1.1
This application is licensed to you by its owner.
Microsoft is not responsible for, nor does it grant any licenses to, third-party packages.
Successfully verified installer hash
Extracting archive...
Successfully extracted archive
Starting package install...
Path environment variable modified; restart your shell to use the new value.
Command line alias added: "ffmpeg"
Command line alias added: "ffplay"
Command line alias added: "ffprobe"
Successfully installed
Downloading https://github.com/yt-dlp/yt-dlp/releases/download/2025.03.27/yt-dlp.exe
██████████████████████████████ 17.2 MB / 17.2 MB
Successfully verified installer hash
Starting package install...
Path environment variable modified; restart your shell to use the new value.
Command line alias added: "yt-dlp"
Successfully installed
Even if I open a new terminal, it will still be available:
PowerShell 7.5.0
PS C:\PATH_TO_FOLDER> ffmpeg -version
ffmpeg version 7.1.1-full_build-www.gyan.dev Copyright (c) 2000-2025 the FFmpeg developers
built with gcc 14.2.0 (Rev1, Built by MSYS2 project)
[..redacted..]
PS C:\PATH_TO_FOLDER> yt-dlp --version
2025.03.27
PS C:\PATH_TO_FOLDER>