yt-dlp is a feature-rich command-line audio and video downloader written in Python that supports thousands of websites. The project originated as a fork of youtube-dl, building on the now-inactive youtube-dlc project. It provides comprehensive functionality for downloading and extracting media content from online sources through a command-line interface.
The tool offers extensive configuration options organized into multiple categories including general options, network settings, geo-restriction handling, video selection, download preferences, filesystem management, thumbnail handling, verbosity controls, and workarounds for site-specific issues. Users can configure video format selection with filtering and sorting capabilities, manage subtitle downloads, handle authentication, apply post-processing operations, and utilize SponsorBlock integration for sponsor segment removal. The repository includes support for extractor-specific arguments, preset aliases, and a plugin system that allows both installation and development of custom extensions.
Installation is available through multiple distribution channels. Platform-specific standalone binaries are provided for Windows (x64, x86, and ARM64 variants), macOS (universal executable), and Linux (supporting glibc and musl libc with x86_64 and aarch64 architectures). Users can also install via pip from PyPI or use the platform-independent zipimport binary. The project supports automatic updates through the yt-dlp -U command for release binaries, with three release channels available: stable, nightly, and master.
The codebase demonstrates significant community engagement. GitGenius tracking shows 6275 total issues and pull requests with a median response latency of 0.0 hours and a mean latency of 3067.3 hours. The most frequently applied issue labels are site-bug with 2122 occurrences, question with 1553, and duplicate with 1040. The most active contributor tracked is bashonly with 19820 events, followed by seproDev with 2567 events and dirkf with 789 events. Recent activity shows the repository maintaining stability with fork count at 14794 and 2488 open issues as of the latest tracking period.
The licensing structure varies by distribution format. The core git repository, source tarball, and PyPI distributions are licensed under the Unlicense. However, PyInstaller-bundled executables include GPLv3+ licensed code, making the combined work GPLv3+. The zipimport Unix executable incorporates ISC licensed code from meriyah and MIT licensed code from astring. Comprehensive third-party license information is documented in THIRD_PARTY_LICENSES.txt.
The project maintains extensive documentation including detailed installation instructions in the wiki, configuration file support with netrc authentication, output template customization, format selection examples, and metadata modification capabilities. Users can embed yt-dlp functionality in other applications, and the repository provides developer instructions for contributing. The project is connected to other major repositories through overlapping contributors with microsoft/vscode, microsoft/typescript, and rust-lang/rust.