Introduction
yt-dlp is a community-maintained fork of youtube-dl that adds new features, fixes bugs, and stays current with site changes. It supports downloading from thousands of video and audio hosting platforms with fine-grained control over format, quality, subtitles, and metadata.
What yt-dlp Does
- Downloads video and audio from 1000+ websites including YouTube, Vimeo, Twitch, and SoundCloud
- Selects specific formats, resolutions, and codecs via a powerful format selection syntax
- Merges separate audio and video streams automatically using FFmpeg
- Integrates with SponsorBlock to skip or remove sponsored segments
- Supports playlists, channels, authentication, cookies, and rate limiting
Architecture Overview
yt-dlp is a single Python package that bundles hundreds of site-specific extractors. Each extractor knows how to parse a particular website's HTML or API to locate media URLs. The downloader module handles HTTP, HLS, and DASH streams, while the post-processor pipeline can convert formats, embed metadata, and write subtitles.
Self-Hosting & Configuration
- Install via pip, pipx, brew, or download standalone binaries from GitHub Releases
- Place a config file at
~/.config/yt-dlp/configwith default flags - Use
--cookies-from-browser chrometo pass authentication for age-restricted or private content - Set
--outputtemplates to organize downloads by uploader, date, or title - Runs on Linux, macOS, and Windows with Python 3.8+
Key Features
- Active development with frequent releases tracking upstream site changes
- SponsorBlock integration for skipping sponsor segments in downloaded videos
- Aria2c and multi-threaded download support for faster transfers
- Built-in format merging and post-processing without manual FFmpeg commands
- Embeds thumbnails, subtitles, and metadata into output files automatically
Comparison with Similar Tools
- youtube-dl — the original project; yt-dlp adds speed improvements, bug fixes, and SponsorBlock
- gallery-dl — focused on image galleries rather than video
- Tartube — GUI frontend that wraps yt-dlp for users who prefer a visual interface
- JDownloader — general-purpose download manager with broader link support but heavier footprint
- Streamlink — specialized in live streams rather than VOD downloads
FAQ
Q: Is yt-dlp legal to use? A: yt-dlp is a tool; legality depends on the content you download and your jurisdiction's copyright laws. Downloading content you have permission to access is generally fine.
Q: How do I update yt-dlp?
A: Run yt-dlp -U for self-update, or pip install -U yt-dlp if installed via pip.
Q: Can yt-dlp download live streams? A: Yes, it can record live streams from YouTube, Twitch, and other platforms that support it.
Q: How does format selection work?
A: Use -f with format codes, e.g., -f bestvideo[height<=1080]+bestaudio to cap resolution and merge with best audio.