youtube-dl is a command-line program written in Python that downloads videos from YouTube.com and numerous other video hosting platforms. The tool is cross-platform, running on Unix systems, Windows, and macOS, and requires Python version 2.6, 2.7, or 3.2 and above. It is released to the public domain, allowing users to modify, redistribute, and use it freely.
The repository supports a comprehensive range of video downloading capabilities across multiple categories including video downloading, YouTube extraction, audio extraction, streaming sites, playlist downloading, metadata retrieval, format conversion, subtitle downloading, and batch processing. Users can download individual videos or entire playlists, with granular control over which videos to include through options like playlist start and end points, specific item selection, and range specifications. The tool also supports filtering videos by title matching, upload date ranges, view counts, file size constraints, and age restrictions.
youtube-dl provides extensive format selection and output customization options. Users can specify output templates to control how downloaded files are named and organized, and the tool supports downloading videos in various formats and quality levels. The program includes options for downloading subtitles alongside video content and can extract audio from videos. It also supports downloading video metadata and can handle batch processing of multiple URLs provided on the command line.
The tool includes robust network configuration options, allowing users to specify HTTP, HTTPS, and SOCKS proxies, set socket timeouts, bind to specific client-side IP addresses, and force IPv4 or IPv6 connections. For geographically restricted content, youtube-dl offers bypass mechanisms including IP spoofing through X-Forwarded-For headers and country-specific bypass options using ISO 3166-2 country codes.
Download behavior can be customized extensively through options controlling retry attempts, download rate limiting, buffer sizes, and fragment handling for DASH and HLS streams. The program supports external downloaders including aria2c, wget, ffmpeg, and others, and provides options for resuming downloads, skipping unavailable fragments, and maintaining download archives to avoid re-downloading previously obtained videos.
According to GitGenius activity tracking across 634 issues and pull requests, the repository maintains a median response latency of 1.2 hours, though the mean response time is significantly higher at 2262.9 hours, indicating occasional delays on some items. The most frequently applied issue labels are duplicate with 174 occurrences, question with 93, and broken-IE with 74, reflecting the ongoing maintenance burden of supporting numerous video extraction implementations. The project's most active contributor is dirkf with 2428 tracked events, followed by dstftw with 93 events and yan12125 with 91 events. The repository shares overlapping contributors with major projects including microsoft/vscode, microsoft/typescript, and rust-lang/rust, indicating its significance within the broader open-source ecosystem.