Fix "ffmpeg not found" and "You have requested merging" in yt-dlp
ERROR: You have requested merging of multiple formats but ffmpeg is not installed. Aborting due to --abort-on-error
Quick answer
yt-dlp downloads high-quality video and audio as two separate files and needs ffmpeg to join them. It is a separate program, not a Python package, and installing it is the whole fix:
winget install Gyan.FFmpeg
brew install ffmpeg
sudo apt install ffmpeg
Why yt-dlp needs a second program at all
Above 720p, YouTube does not store a single file containing both picture and sound. It stores a video-only stream and an audio-only stream, and the player combines them as it plays. To end up with one file on disk, something has to do that combining, and that something is ffmpeg.
yt-dlp does not bundle it. ffmpeg is a large, platform-specific binary with its own release cadence and its own licensing considerations; shipping it inside every yt-dlp build would make the download an order of magnitude bigger for the people who do not need it.
So without ffmpeg, yt-dlp falls back to whatever pre-combined file exists — on YouTube, the 360p stream that has been there since 2010. This is by far the most common reason for "yt-dlp only downloads 360p", and it usually arrives with no error at all.
Installing it
Windows
winget install Gyan.FFmpeg handles PATH for you. If winget is unavailable, Scoop
and Chocolatey both work:
scoop install ffmpeg
choco install ffmpeg
Installing by hand means downloading a build, extracting it somewhere permanent, and adding its
bin directory to PATH — the step people skip, and the reason "I installed it and it
still does not work" is so common. Prefer the
yt-dlp project's own builds,
which are tested against yt-dlp.
macOS
Homebrew is the sane route. If brew is not installed,
the macOS install guide covers getting it. MacPorts
users: sudo port install ffmpeg.
Linux
Every distribution packages it: apt, dnf, pacman,
zypper. Unlike yt-dlp itself, the packaged ffmpeg is fine — it is not chasing a
moving target the way an extractor is.
On minimal Debian and Ubuntu images, ffmpeg may pull only part of what you need;
if extraction to mp3 then fails, install libavcodec-extra as well.
Installed, but yt-dlp cannot see it
These are two separate conditions. Check the first:
ffmpeg -version
If that prints a version, ffmpeg is on PATH and yt-dlp will find it — as long as it is on PATH in the same shell. A PATH change does not reach terminals that were already open, and on Windows it does not reach a running Explorer session either. Close everything and reopen before concluding anything.
If it prints a version and yt-dlp still complains, point at it explicitly:
yt-dlp --ffmpeg-location "C:\ffmpeg\bin" "URL"
Confirming the pairing
One command tells you what yt-dlp itself can see:
yt-dlp --verbose --simulate "https://www.youtube.com/watch?v=jNQXAC9IVRw"
The verbose header lists the detected ffmpeg and ffprobe versions. If either says
not present, yt-dlp is not finding it regardless of what your shell says — and
that mismatch is almost always PATH scope.
If it still fails
-
"ffprobe not found" specifically. A partial install — usually a single
ffmpeg.execopied out of an archive. Both binaries have to be in the same directory. - Found, but merging fails. Different error, different page: see ffmpeg exited with code 1.
-
Works from the terminal, fails from a scheduled task or cron. Those run
with a minimal environment and usually no PATH at all. Use
--ffmpeg-locationwith an absolute path. - Docker. The base image needs ffmpeg installed explicitly — the Docker guide has a working image.
-
Termux on Android.
pkg install ffmpegis a separate step from installing yt-dlp; see the Termux guide.
Full per-platform detail, including verifying the install, is in the ffmpeg install guide.
Frequently asked
Can I use yt-dlp without ffmpeg?
I installed ffmpeg and yt-dlp still cannot find it.
Does ffprobe matter too?
Which build should I download on Windows?
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...
- Fix "Postprocessing: ffmpeg exited with code 1" in yt-dlp The download finished and the conversion failed — so the fix is never in yt-dlp's flags. How to read the ffmpe...
- Extract Audio with yt-dlp: MP3, M4A and Lossless Copies Ripping to MP3 re-encodes audio that was already compressed once. When that is fine, when to keep the original...