Setup accepts an FFmpeg build nested under data/ffmpeg/bin/, the layout upstream builds unpack to (#248), and verifies it correctly. The backend then hands yt-dlp data/ffmpeg as its FFmpeg location.
That directory holds no binary. yt-dlp takes a location literally: given a directory, it runs dir/ffmpeg and dir/ffprobe and does not fall back to PATH, so it reports FFmpeg missing and carries on without it.
Who hits it
Anyone whose FFmpeg lives in the nested layout, typically because they dropped an upstream build into the data folder rather than letting setup download one. Separation works, because the backend runs the verified binary directly. YouTube imports that need a remux or an audio extraction do not.
Cause
The same one as #651. yt-dlp's location came from the data directory itself, FFMPEG_DIR, rather than from the FFmpeg setup actually verified, so it pointed one level above the binaries.
Constraints
- The location has to be a single directory holding both ffmpeg and ffprobe, because that is what yt-dlp looks for.
- The flat layout, Docker, and source checkouts with FFmpeg on PATH must keep working.
Setup accepts an FFmpeg build nested under
data/ffmpeg/bin/, the layout upstream builds unpack to (#248), and verifies it correctly. The backend then hands yt-dlpdata/ffmpegas its FFmpeg location.That directory holds no binary. yt-dlp takes a location literally: given a directory, it runs
dir/ffmpeganddir/ffprobeand does not fall back to PATH, so it reports FFmpeg missing and carries on without it.Who hits it
Anyone whose FFmpeg lives in the nested layout, typically because they dropped an upstream build into the data folder rather than letting setup download one. Separation works, because the backend runs the verified binary directly. YouTube imports that need a remux or an audio extraction do not.
Cause
The same one as #651. yt-dlp's location came from the data directory itself,
FFMPEG_DIR, rather than from the FFmpeg setup actually verified, so it pointed one level above the binaries.Constraints