Python Requirements
Python versions 3.10+ (CPython) and 3.11+ (PyPy) are supported. Other versions and implementations may or may not work correctly.
Strongly Recommended
While technically optional, these dependencies are highly recommended for full functionality:FFmpeg and FFprobe
ffmpeg and ffprobe are essential for most common use cases. Required for:- Merging separate video and audio files
- Converting between formats
- Embedding thumbnails and metadata
- Post-processing tasks (cutting, trimming, etc.)
- Downloading HLS/DASH streams
Important: You need the ffmpeg binary, NOT the Python package of the same name.
Installing FFmpeg
yt-dlp-ejs
yt-dlp-ejs - Required for full YouTube support. License: Unlicense, bundles MIT and ISC components Requires a JavaScript runtime:Standalone binaries typically include yt-dlp-ejs. For pip installations, see the EJS wiki for setup instructions.
Networking Dependencies
These enhance network functionality and protocol support:Core Networking
| Package | Purpose | License |
|---|---|---|
| certifi* | Mozilla’s root certificate bundle | MPLv2 |
| brotli* or brotlicffi | Brotli content encoding support | MIT |
| websockets* | Downloading over websocket | BSD-3-Clause |
| requests* | HTTP library for HTTPS proxy and persistent connections | Apache-2.0 |
Browser Impersonation
These enable impersonating browser requests to bypass TLS fingerprinting: curl_cffi (recommended) curl_cffi - Python binding for curl-impersonate. Provides impersonation for Chrome, Edge, and Safari. License: MITcurl_cffi is included in most official builds except:
yt-dlp(Unix zipimport binary)yt-dlp_x86(Windows 32-bit)yt-dlp_musllinux_aarch64
Metadata Dependencies
For embedding thumbnails and writing metadata:Example: Embedding Thumbnails
Miscellaneous Dependencies
| Package | Purpose | License |
|---|---|---|
| pycryptodomex* | Decrypting AES-128 HLS streams | BSD-2-Clause |
| secretstorage* | Accessing Gnome keyring for browser cookies on Linux | BSD-3-Clause |
| Any external downloader | For use with --downloader | Varies |
Deprecated Dependencies
These are no longer recommended but still supported:Checking Available Dependencies
To see which dependencies are currently available:If you attempt a task requiring a missing dependency, yt-dlp will warn you with a specific message about what’s needed.
Installing Dependencies
Via pip (Python installation)
Standalone Binaries
Packages marked with * are included in the standalone release binaries. If you’re using a standalone binary, you already have:- Python interpreter
- certifi
- brotli/brotlicffi
- websockets
- requests
- mutagen
- pycryptodomex
- secretstorage (Linux builds)
- curl_cffi (most builds)
- ffmpeg/ffprobe
- AtomicParsley
- External downloaders (aria2c, wget, etc.)
Licensing Considerations
To use or redistribute yt-dlp with dependencies, you must agree to their respective licensing terms.
For complete licensing details, see THIRD_PARTY_LICENSES.txt in the repository.