Discover / Video & YouTube
yt-dlp
by yt-dlpPython
The maintained fork of youtube-dl. Downloads and inspects media from thousands of sites.
Maturity: stable because 6y old, 2026.07.04 released 30d ago. Derived from release and commit history, not a rating.
- Stars
- 182k
- Forks
- 16k
- Downloads / mo
- 19.4M
- Last commit
- 2026-07-23
- License
- Unlicense
- Open issues
- 2.6k
Market and trust evidence
Edition not yet matchedNo exact skills.sh identity match is available for this repository. Repository adoption and freshness remain visible above; install momentum is not inferred.
Trust analysis is a screening signal, not a security warranty. Read the ranking and trust methodology.
In practice
Written by AI from this repository’s README · high confidencePulling media and subtitles off video sites for local processing has no stable official API.
Use it when
When a pipeline needs to fetch source video or audio files before transcription or editing.
Not the right pick when
Wrong choice where a site's terms forbid downloading, and extractors depend on site behavior that keeps changing.
Capabilities
- downloads from thousands of supported sites
- format selection, filtering and sorting
- subtitle and thumbnail options
- SponsorBlock options
- metadata modification and post processing
- plugin system and embedding inside Python code
Requirements
- Python for the pip install and for the platform independent zipimport binary
Cost: Free and open source
Install
Derived from the published package name in the repository, not from a model.
Video walkthroughs
How To Download Twitch Live streams, VODs, and Clips with yt dlp
yt-dlp Tutorial (2026): Download Online Videos for Free | Step-by-Step Guide
Third-party YouTube uploads matched to this tool by title, channel and repository name on 2026-08-03. Not made, reviewed or endorsed by SkillPilot. View counts and publish months are as of the match date and the month is approximate. Nothing loads from YouTube until you press play.
What the repository ships
Detected from the actual files in the repository root.
Latest release 2026.07.04
Published 2026-07-04
Installation Discord Donate Documentation Nightly Master
A description of the various files is in the README
The zipimport Unix executable contains code licensed under ISC and MIT. The PyInstaller-bundled executables are subject to these and other licenses, all of which are compiled in THIRD_PARTY_LICENSES.txt
Important changes
- **The minimum recommended Python version has been raised to 3.11**
- Since Python 3.10 will reach its end-of-life in October 2026, support for it will be dropped soon. Read more
- The official Windows release binaries will soon require Windows 10 or later. Read more
- Security: [CVE-2026-55404] Downstream command injection via improper sanitization of --write-link output
- Shortcut file data is now properly validated and sanitized when the
--write-linkoptions are used
<details><summary><h3>Changelog</h3></summary>
Core changes
- Always include warnings in debug output (#17059) by bashonly
- Fix
allow-unsafe-extcompat option (#16920) by bashonly - Raise minimum recommended Python version to 3.11 (#17034) by bashonly
- Validate and escape values in
--write-linkoutput by bashonly - cookies: Use
'instead of"for SQL string quoting (#17078) by Grub4K - utils
- Deprecate
make_dirin favor ofmake_parent_dirs(#16931) by doe1080 HTTPHeaderDict: Fix__ior__(#16930) by doe1080parse_duration: [Returnintwhen appropriate](https://github.com/y
Tags
README
<!-- MANPAGE: BEGIN EXCLUDED SECTION -->
<div align="center">
</div>
<!-- MANPAGE: END EXCLUDED SECTION -->
yt-dlp is a feature-rich command-line audio/video downloader with support for thousands of sites. The project is a fork of youtube-dl based on the now inactive youtube-dlc.
<!-- MANPAGE: MOVE "USAGE AND OPTIONS" SECTION HERE -->
<!-- MANPAGE: BEGIN EXCLUDED SECTION -->
- INSTALLATION
- Detailed instructions
- Release Files
- Update
- Dependencies
- Compile
- USAGE AND OPTIONS
- General Options
- Network Options
- Geo-restriction
- Video Selection
- Download Options
- Filesystem Options
- Thumbnail Options
- Internet Shortcut Options
- Verbosity and Simulation Options
- Workarounds
- Video Format Options
- Subtitle Options
- Authentication Options
- Post-processing Options
- SponsorBlock Options
- Extractor Options
- Preset Aliases
- CONFIGURATION
- Configuration file encoding
- Authentication with netrc
- Notes about environment variables
- OUTPUT TEMPLATE
- Output template examples
- FORMAT SELECTION
- Filtering Formats
- Sorting Formats
- Format Selection examples
- MODIFYING METADATA
- Modifying metadata examples
- EXTRACTOR ARGUMENTS
- PLUGINS
- Installing Plugins
- Developing Plugins
- EMBEDDING YT-DLP
- Embedding examples
- CHANGES FROM YOUTUBE-DL
- New features
- Differences in default behavior
- Deprecated options
- CONTRIBUTING
- Opening an Issue
- Developer Instructions
- WIKI
- FAQ
<!-- MANPAGE: END EXCLUDED SECTION -->
INSTALLATION
<!-- MANPAGE: BEGIN EXCLUDED SECTION -->
<!-- MANPAGE: END EXCLUDED SECTION -->
You can install yt-dlp using the binaries, pip or one using a third-party package manager. See the wiki for detailed instructions
<!-- MANPAGE: BEGIN EXCLUDED SECTION -->
RELEASE FILES
Recommended
File|Description
:---|:---
yt-dlp|Platform-independent zipimport binary. Needs Python (recommended for Linux/BSD)
yt-dlp.exe|Windows (Win8+) standalone x64 binary (recommended for Windows)
yt-dlp_macos|Universal MacOS (10.15+) standalone executable (recommended for MacOS)
Alternatives
File|Description
:---|:---
yt-dlp_linux|Linux (glibc 2.17+) standalone x86_64 binary
yt-dlp_linux.zip|Unpackaged Linux (glibc 2.17+) x86_64 executable (no auto-update)
yt-dlp_linux_aarch64|Linux (glibc 2.17+) standalone aarch64 binary
yt-dlp_linux_aarch64.zip|Unpackaged Linux (glibc 2.17+) aarch64 executable (no auto-update)
yt-dlp_linux_armv7l.zip|Unpackaged Linux (glibc 2.31+) armv7l executable (no auto-update)
yt-dlp_musllinux|Linux (musl 1.2+) standalone x86_64 binary
yt-dlp_musllinux.zip|Unpackaged Linux (musl 1.2+) x86_64 executable (no auto-update)
yt-dlp_musllinux_aarch64|Linux (musl 1.2+) standalone aarch64 binary
yt-dlp_musllinux_aarch64.zip|Unpackaged Linux (musl 1.2+) aarch64 executable (no auto-update)
yt-dlp_x86.exe|Windows (Win8+) standalone x86 (32-bit) binary
yt-dlp_win_x86.zip|Unpackaged Windows (Win8+) x86 (32-bit) executable (no auto-update)
yt-dlp_arm64.exe|Windows (Win10+) standalone ARM64 binary
yt-dlp_win_arm64.zip|Unpackaged Windows (Win10+) ARM64 executable (no auto-update)
yt-dlp_win.zip|Unpackaged Windows (Win8+) x64 executable (no auto-update)
yt-dlp_macos.zip|Unpackaged MacOS (10.15+) executable (no auto-update)
Misc
File|Description
:---|:---
yt-dlp.tar.gz|Source tarball
SHA2-512SUMS|GNU-style SHA512 sums
SHA2-512SUMS.sig|GPG signature file for SHA512 sums
SHA2-256SUMS|GNU-style SHA256 sums
SHA2-256SUMS.sig|GPG signature file for SHA256 sums
The public key that can be used to verify the GPG signatures is available here
Example usage:
curl -L https://github.com/yt-dlp/yt-dlp/raw/master/public.key | gpg --import
gpg --verify SHA2-256SUMS.sig SHA2-256SUMS
gpg --verify SHA2-512SUMS.sig SHA2-512SUMS
Licensing
While yt-dlp is licensed under the Unlicense, many of the release files contain code from other projects with different licenses.
Most notably, the PyInstaller-bundled executables include GPLv3+ licensed code, and as such the combined work is licensed under GPLv3+.
The zipimport Unix executable (yt-dlp) and release tarball (yt-dlp.tar.gz) contain ISC licensed code from meriyah and MIT licensed code from astring.
See THIRD_PARTY_LICENSES.txt for more details.
The git repository, the PyPI source distribution and the PyPI built distribution (wheel) only contain code licensed under the Unlicense.
<!-- MANPAGE: END EXCLUDED SECTION -->
Note: The manpages, shell completion (autocomplete) files etc. are available inside the source tarball
UPDATE
You can use yt-dlp -U to update if you are using the release binaries
If you installed with pip, simply re-run the same command that was used to install the program
For other third-party package managers, see the wiki or refer to their documentation
<a id="update-channels"></a>
There are currently three release channels for binaries: stable, nightly and master.
stableis the default channel, which offers releases published on a (mostly) monthly schedule. While it is namedstabledue to many of its changes having been tested by users of thenightlyormasterrelease channels, the lateststablerelease is often "stale" and prone to external breakage (i.e. sites changing things on their end and breaking yt-dlp).- The
nightlychannel offers releases that publish shortly before midnight UTC on any day that sees changes to the codebase. This channel serves as a snapshot of the project's development, and it is the recommended channel for regular users of yt-dlp. Thenightlyreleases are available from yt-dlp/yt-dlp-nightly-builds or as development releases of theyt-dlpPyPI package (which can be installed with pip's--preflag). - The
masterchannel offers "canary" releases that publish after each push to the master branch. This channel will always provide the very latest fixes and features, but may be prone to bugs or regressions. Themasterreleases are available from yt-dlp/yt-dlp-master-builds.
When using --update/-U, a release binary will only update to its current channel.
--update-to CHANNEL can be used to switch to a different channel when a newer version is available. --update-to [CHANNEL@]TAG can also be used to upgrade or downgrade to specific tags from a channel.
You may also use --update-to <repository> (<owner>/<repository>) to update to a channel on a completely different repository. Be careful with what repository you are updating to though, there is no verification done for binaries from different repositories.
Example usage:
yt-dlp --update-to masterswitch to themasterchannel and update to its latest releaseyt-dlp --update-to stable@2023.07.06upgrade/downgrade to release tostablechannel tag2023.07.06yt-dlp --update-to 2023.10.07upgrade/downgrade to tag2023.10.07if it exists on the current channelyt-dlp --update-to example/yt-dlp@2023.09.24upgrade/downgrade to the release from theexample/yt-dlprepository, tag2023.09.24
Important: Any user experiencing an issue with the stable release should install or update to the nightly release before submitting a bug report:
# To update to nightly from stable executable/binary:
yt-dlp --update-to nightly
# To install nightly with pip:
python -m pip install -U --pre "yt-dlp[default]"
When running a yt-dlp version that is older than 90 days, you will see a warning message suggesting to update to the latest version.
You can suppress this warning by adding --no-update to your command or configuration file.
DEPENDENCIES
Python versions 3.10+ (CPython) a
Truncated. Read the full README on GitHub ↗