
yt-dlp is a command-line tool for downloading audio and video from thousands of supported websites. It's a fork of youtube-dl, built on top of the now-inactive youtube-dlc fork, and it's aimed at users and scripters who need reliable downloads with fine control over format, quality, and post-processing rather than a simple GUI tool. Because it's driven entirely by command-line flags and configuration files, it's also easy to embed inside other Python scripts and automation pipelines.
-U update command and the ability to pin or downgrade to a specific tagged version.yt-dlp is a good fit for archiving, batch downloading playlists, or building automation around video and audio retrieval, since it exposes granular options for output naming, format selection, and post-processing that a GUI downloader typically hides. It's also useful when you need to work around site-specific quirks, since active development keeps up with changes to how sites serve media, and release channels let cautious users stay on stable while power users track nightly fixes. For embedding into other tools, it can be imported directly and used from Python code rather than shelling out to a separate binary.
It's not the right tool if you're looking for a polished graphical download manager. There's no official GUI in this repository, and getting full functionality, especially for some YouTube features, requires installing extra dependencies like ffmpeg and a JavaScript runtime. Casual users who just want to paste a link and click download may find the command-line interface and dependency setup to be more than they need, and should look at a wiki-recommended GUI wrapper instead.
The project also documents extractor-specific arguments, geo-restriction workarounds, and metadata modification options for more advanced scripting needs, and a plugin system lets developers extend or override how specific sites are handled without patching the core project. Detailed embedding examples in the docs show how to call yt-dlp's internal API from another Python program, which is useful if you're building a larger tool around it rather than shelling out to the command-line binary.
yt-dlp supports Python 3.10+ (CPython) and 3.11+ (PyPy). Install with pip:
python -m pip install -U "yt-dlp[default]"
Standalone binaries are also available for Windows, Linux, and macOS from the project's releases page, along with a source tarball. For full functionality, install these strongly recommended dependencies separately:
To update an existing installation:
yt-dlp -U
To switch release channels, for example to the nightly channel recommended for regular users:
yt-dlp --update-to nightly