yt-dlp & FFmpeg — Complete Windows Guide
>_
yt-dlp & FFmpeg
WINDOWS 10 / 11

yt-dlp & FFmpeg

The Complete Windows Guide

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.

Downloader

yt-dlp

A powerful command-line downloader for supported websites and media platforms.

Media Engine

FFmpeg

Handles media conversion, stream merging, encoding, extraction and processing.

JS
Runtime

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.

i
Official yt-dlp releases
Download the latest Windows executable from the official yt-dlp releases page.

Official yt-dlp Releases →
Recommended for normal Windows PCs
Download: yt-dlp.exe
1

Install yt-dlp

Download the standalone Windows executable from the official yt-dlp release page.

Create the installation directory

C:\Tools\yt-dlp

Place yt-dlp.exe inside this directory.

C:\ └── Tools └── yt-dlp └── yt-dlp.exe
2

Add yt-dlp to PATH

Adding yt-dlp to Windows PATH allows you to run yt-dlp from any Command Prompt.

  1. Press Win + S.
  2. Search for Environment Variables.
  3. Open Edit the system environment variables.
  4. Click Environment Variables….
  5. Under User variables, select Path.
  6. Click Edit.
  7. Click New.
  8. Add:
C:\Tools\yt-dlp
!
Add the folder, not the executable
Correct: C:\Tools\yt-dlp
Incorrect: C:\Tools\yt-dlp\yt-dlp.exe

Test yt-dlp

yt-dlp --version
3

Install 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 →

Recommended Windows build
Use a reputable Windows build such as the Gyan.dev builds and download the essentials_build.zip archive.

Extract the archive

Locate the FFmpeg bin directory.

bin\ ├── ffmpeg.exe ├── ffplay.exe └── ffprobe.exe

Create the installation directory

C:\Tools\ffmpeg

Copy the three executables from the bin directory into it.

C:\ └── Tools ├── yt-dlp │ └── yt-dlp.exe │ └── ffmpeg ├── ffmpeg.exe ├── ffplay.exe └── ffprobe.exe
4

Add FFmpeg to PATH

Add the following directory to the Windows Path variable:

C:\Tools\ffmpeg
!
Don’t add ffmpeg.exe itself
Correct: C:\Tools\ffmpeg
Incorrect: C:\Tools\ffmpeg\ffmpeg.exe

Test FFmpeg

ffmpeg -version
5

Configure Node.js

Newer yt-dlp versions can use a JavaScript runtime for some YouTube extraction functionality.

Check Node.js

node --version

Find Node.js

where node

Test yt-dlp with Node.js

yt-dlp --js-runtimes node "VIDEO_URL"
6

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.conf

Example 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"
!
Check the file extension
Make sure the file is: yt-dlp.conf and not: yt-dlp.conf.txt
7

Verify the Installation

Open a new Command Prompt and run:

yt-dlp --version ffmpeg -version node --version where yt-dlp where ffmpeg where node
Installation complete
If all commands return valid information, your yt-dlp, FFmpeg and Node.js setup is ready.
8

Video 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"
9

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"
!
Audio quality note
Increasing the MP3 bitrate cannot restore quality that was already lost in the original source.
10

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"
11

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"
12

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"
13

Troubleshooting

yt-dlp is not recognized

Check whether Windows can find yt-dlp:

where yt-dlp

If nothing is returned, verify that C:\Tools\yt-dlp is present in PATH.

FFmpeg is not recognized
where ffmpeg

Verify that C:\Tools\ffmpeg is present in PATH.

YouTube JavaScript runtime warning
node --version
yt-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.

14

FFmpeg Conversion

MP4 → MKV

ffmpeg -i input.mp4 output.mkv

MKV → MP4

ffmpeg -i input.mkv output.mp4

MOV → MP4

ffmpeg -i input.mov output.mp4

WebM → MP4

ffmpeg -i input.webm output.mp4
15

FFmpeg Audio Processing

M4A → MP3

ffmpeg -i input.m4a output.mp3

WAV → MP3 at 320 kbps

ffmpeg -i input.wav -b:a 320k output.mp3

Extract audio

ffmpeg -i video.mp4 -vn output.mp3

Copy audio without re-encoding

ffmpeg -i video.mp4 -vn -c:a copy audio.m4a
16

FFmpeg Video Processing

Remove audio

ffmpeg -i input.mp4 -an output.mp4

Trim a video

ffmpeg -ss 00:01:00 -to 00:02:00 -i input.mp4 -c copy output.mp4

Resize to 1080p

ffmpeg -i input.mp4 -vf scale=-2:1080 output.mp4

Resize to 720p

ffmpeg -i input.mp4 -vf scale=-2:720 output.mp4

Change frame rate

ffmpeg -i input.mp4 -r 60 output.mp4
17

Extract Frames

Take a screenshot

ffmpeg -i input.mp4 -frames:v 1 screenshot.png

Frame at 10 seconds

ffmpeg -ss 00:00:10 -i input.mp4 -frames:v 1 screenshot.png

One frame per second

ffmpeg -i input.mp4 -vf fps=1 frame_%04d.png
18

Hardware Acceleration

FFmpeg can use supported GPU hardware for decoding and encoding.

List available hardware acceleration

ffmpeg -hwaccels

Check NVIDIA encoders

ffmpeg -encoders | findstr nvenc

NVIDIA H.264 encoding

ffmpeg -i input.mp4 -c:v h264_nvenc output.mp4
19

Quick 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.

!
Copyright and permissions
yt-dlp and FFmpeg are tools. The ability to download or convert content does not automatically grant permission to redistribute or republish it. Make sure you have the necessary rights or permission for content you process and follow applicable service terms.
yt-dlp & FFmpeg — Complete Windows Guide

A technical reference for installing, configuring and using yt-dlp and FFmpeg on Windows.

yt-dlp and FFmpeg are separate projects maintained by their respective communities.

Scroll to Top