yt-dlp & FFmpeg
A complete guide to installing, configuring and using yt-dlp and FFmpeg on Windows — from the initial installation through advanced downloads, audio extraction, metadata, subtitles, playlists and media processing.
yt-dlp
A powerful command-line downloader for supported websites and media platforms.
FFmpeg
Handles media conversion, stream merging, encoding, extraction and processing.
Node.js
Provides the JavaScript runtime required by newer yt-dlp YouTube extraction workflows.
yt-dlp is the primary downloader. On a standard 64-bit Intel or AMD Windows PC, the standalone yt-dlp.exe executable is the simplest option.
Official yt-dlp Releases →
Install yt-dlp
Download the standalone Windows executable from the official yt-dlp release page.
Create the installation directory
C:\Tools\yt-dlpPlace yt-dlp.exe inside this directory.
C:\ └── Tools └── yt-dlp └── yt-dlp.exeAdd yt-dlp to PATH
Adding yt-dlp to Windows PATH allows you to run yt-dlp from any Command Prompt.
- Press Win + S.
- Search for Environment Variables.
- Open Edit the system environment variables.
- Click Environment Variables….
- Under User variables, select Path.
- Click Edit.
- Click New.
- Add:
C:\Tools\yt-dlpIncorrect: C:\Tools\yt-dlp\yt-dlp.exe
Test yt-dlp
yt-dlp --versionInstall FFmpeg
FFmpeg is used by yt-dlp for operations such as merging separate video and audio streams, converting formats, extracting audio and processing downloaded media.
Official website: FFmpeg Downloads →
Extract the archive
Locate the FFmpeg bin directory.
bin\ ├── ffmpeg.exe ├── ffplay.exe └── ffprobe.exeCreate the installation directory
C:\Tools\ffmpegCopy the three executables from the bin directory into it.
C:\ └── Tools ├── yt-dlp │ └── yt-dlp.exe │ └── ffmpeg ├── ffmpeg.exe ├── ffplay.exe └── ffprobe.exeAdd FFmpeg to PATH
Add the following directory to the Windows Path variable:
C:\Tools\ffmpegIncorrect: C:\Tools\ffmpeg\ffmpeg.exe
Test FFmpeg
ffmpeg -versionConfigure Node.js
Newer yt-dlp versions can use a JavaScript runtime for some YouTube extraction functionality.
Check Node.js
node --versionFind Node.js
where nodeTest yt-dlp with Node.js
yt-dlp --js-runtimes node "VIDEO_URL"Create a yt-dlp Configuration
A configuration file allows yt-dlp to automatically use your preferred settings.
Configuration path
C:\Users\YOUR_USERNAME\AppData\Roaming\yt-dlp\yt-dlp.confExample configuration
--js-runtimes node -P "%USERPROFILE%\Downloads\yt-dlp" -f bv*+ba/b --embed-metadata --embed-thumbnail --merge-output-format mkv -o "%(title)s [%(id)s].%(ext)s"Verify the Installation
Open a new Command Prompt and run:
yt-dlp --version ffmpeg -version node --version where yt-dlp where ffmpeg where nodeVideo Downloads
Basic download
yt-dlp "VIDEO_URL"Best available video and audio
yt-dlp -f "bv*+ba/b" "VIDEO_URL"List available formats
yt-dlp -F "VIDEO_URL"Download a specific format
yt-dlp -f FORMAT_ID "VIDEO_URL"Video + audio
yt-dlp -f VIDEO_FORMAT+AUDIO_FORMAT "VIDEO_URL"Audio / MP3
Extract audio
yt-dlp -x "VIDEO_URL"Convert to MP3
yt-dlp -x --audio-format mp3 "VIDEO_URL"High-quality MP3
yt-dlp -x --audio-format mp3 --audio-quality 0 "VIDEO_URL"MP3 + thumbnail + metadata
yt-dlp -x --audio-format mp3 --audio-quality 0 --embed-thumbnail --embed-metadata "VIDEO_URL"Playlists
Download a playlist
yt-dlp "PLAYLIST_URL"Playlist as MP3
yt-dlp -x --audio-format mp3 "PLAYLIST_URL"Download entries 1–10
yt-dlp --playlist-items 1-10 "PLAYLIST_URL"Download specific entries
yt-dlp --playlist-items 1,3,5 "PLAYLIST_URL"Metadata & Thumbnails
Embed metadata
yt-dlp --embed-metadata "VIDEO_URL"Embed thumbnail
yt-dlp --embed-thumbnail "VIDEO_URL"Save thumbnail separately
yt-dlp --write-thumbnail "VIDEO_URL"Subtitles
List subtitles
yt-dlp --list-subs "VIDEO_URL"Download subtitles
yt-dlp --write-subs "VIDEO_URL"Download automatic subtitles
yt-dlp --write-auto-subs "VIDEO_URL"Troubleshooting
yt-dlp is not recognized
Check whether Windows can find yt-dlp:
where yt-dlpIf nothing is returned, verify that C:\Tools\yt-dlp is present in PATH.
FFmpeg is not recognized
where ffmpegVerify that C:\Tools\ffmpeg is present in PATH.
YouTube JavaScript runtime warning
node --versionyt-dlp --js-runtimes node "VIDEO_URL"PATH changes aren’t working
Close all existing Command Prompt windows and open a new Command Prompt after changing PATH.
FFmpeg Conversion
MP4 → MKV
ffmpeg -i input.mp4 output.mkvMKV → MP4
ffmpeg -i input.mkv output.mp4MOV → MP4
ffmpeg -i input.mov output.mp4WebM → MP4
ffmpeg -i input.webm output.mp4FFmpeg Audio Processing
M4A → MP3
ffmpeg -i input.m4a output.mp3WAV → MP3 at 320 kbps
ffmpeg -i input.wav -b:a 320k output.mp3Extract audio
ffmpeg -i video.mp4 -vn output.mp3Copy audio without re-encoding
ffmpeg -i video.mp4 -vn -c:a copy audio.m4aFFmpeg Video Processing
Remove audio
ffmpeg -i input.mp4 -an output.mp4Trim a video
ffmpeg -ss 00:01:00 -to 00:02:00 -i input.mp4 -c copy output.mp4Resize to 1080p
ffmpeg -i input.mp4 -vf scale=-2:1080 output.mp4Resize to 720p
ffmpeg -i input.mp4 -vf scale=-2:720 output.mp4Change frame rate
ffmpeg -i input.mp4 -r 60 output.mp4Extract Frames
Take a screenshot
ffmpeg -i input.mp4 -frames:v 1 screenshot.pngFrame at 10 seconds
ffmpeg -ss 00:00:10 -i input.mp4 -frames:v 1 screenshot.pngOne frame per second
ffmpeg -i input.mp4 -vf fps=1 frame_%04d.pngHardware Acceleration
FFmpeg can use supported GPU hardware for decoding and encoding.
List available hardware acceleration
ffmpeg -hwaccelsCheck NVIDIA encoders
ffmpeg -encoders | findstr nvencNVIDIA H.264 encoding
ffmpeg -i input.mp4 -c:v h264_nvenc output.mp4Quick Command Reference
Search the command library to quickly find the command you need.
yt-dlp --version Check yt-dlp version.
yt-dlp -U Update yt-dlp.
yt-dlp "VIDEO_URL" Download a video.
yt-dlp -F "VIDEO_URL" List available formats.
yt-dlp -x --audio-format mp3 "VIDEO_URL" Extract audio and convert it to MP3.
yt-dlp --embed-thumbnail --embed-metadata "VIDEO_URL" Embed thumbnail and metadata.
yt-dlp --write-subs "VIDEO_URL" Download subtitles.
yt-dlp "PLAYLIST_URL" Download a playlist.
yt-dlp --verbose "VIDEO_URL" Enable detailed debugging output.
where yt-dlp Find the yt-dlp executable.
ffmpeg -version Check FFmpeg installation.
where ffmpeg Find FFmpeg.
ffmpeg -i input.mp4 output.mkv Convert MP4 to MKV.
ffmpeg -i input.m4a output.mp3 Convert M4A to MP3.
ffmpeg -i input.mp4 -vn output.mp3 Extract audio from a video.
ffmpeg -i input.mp4 -an output.mp4 Remove audio from a video.
ffmpeg -hwaccels List hardware acceleration methods.
ffprobe input.mp4 Inspect media information.
