Discover / Video & YouTube

yt-dlp

by yt-dlpPython

The maintained fork of youtube-dl. Downloads and inspects media from thousands of sites.

Toolstable

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 matched

No 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 confidence

Pulling 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

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

Has testsCI configured

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

<details><summary><h3>Changelog</h3></summary>

Core changes

Tags

README

<!-- MANPAGE: BEGIN EXCLUDED SECTION -->

<div align="center">

YT-DLP

Release version

Python Version

PyPI

Discord

License: Unlicense

Commits

</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 -->

Windows

Unix

MacOS

PyPI

Source Tarball

Other variants

All versions

<!-- 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.

  • stable is the default channel, which offers releases published on a (mostly) monthly schedule. While it is named stable due to many of its changes having been tested by users of the nightly or master release channels, the latest stable release is often "stale" and prone to external breakage (i.e. sites changing things on their end and breaking yt-dlp).
  • The nightly channel 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. The nightly releases are available from yt-dlp/yt-dlp-nightly-builds or as development releases of the yt-dlp PyPI package (which can be installed with pip's --pre flag).
  • The master channel 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. The master releases 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 master switch to the master channel and update to its latest release
  • yt-dlp --update-to stable@2023.07.06 upgrade/downgrade to release to stable channel tag 2023.07.06
  • yt-dlp --update-to 2023.10.07 upgrade/downgrade to tag 2023.10.07 if it exists on the current channel
  • yt-dlp --update-to example/yt-dlp@2023.09.24 upgrade/downgrade to the release from the example/yt-dlp repository, tag 2023.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 ↗

Related tools