MCPcopy
hub / github.com/yt-dlp/yt-dlp

github.com/yt-dlp/yt-dlp @2026.06.09 sqlite

repository ↗ · DeepWiki ↗ · release 2026.06.09 ↗
9,338 symbols 51,162 edges 1,128 files 496 documented · 5%
README

YT-DLP

Release version Python Version PyPI Discord License: Unlicense Commits

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.

INSTALLATION

Windows Unix MacOS PyPI Source Tarball Other variants All versions

You can install yt-dlp using the binaries, pip or one using a third-party package manager. See the wiki for detailed instructions

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) contains ISC licensed code from meriyah and MIT licensed code from astring.

See THIRD_PARTY_LICENSES.txt for more details.

The git repository, the source tarball (yt-dlp.tar.gz), the PyPI source distribution and the PyPI built distribution (wheel) only contain code licensed under the Unlicense.

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

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)

Core symbols most depended-on inside this repo

get
called by 7715
yt_dlp/extractor/xnxx.py
traverse_obj
called by 3052
yt_dlp/utils/traversal.py
int_or_none
called by 1401
yt_dlp/utils/_utils.py
_download_json
called by 1147
yt_dlp/extractor/udemy.py
_match_id
called by 1098
yt_dlp/extractor/common.py
_download_webpage
called by 984
yt_dlp/extractor/common.py
_search_regex
called by 941
yt_dlp/extractor/common.py
url_result
called by 585
yt_dlp/extractor/common.py

Shape

Method 6,010
Class 2,583
Function 732
Route 13

Languages

Python100%

Modules by API surface

yt_dlp/utils/_utils.py401 symbols
yt_dlp/extractor/common.py212 symbols
test/test_networking.py210 symbols
yt_dlp/YoutubeDL.py177 symbols
test/test_pot/test_pot_director.py156 symbols
test/test_utils.py124 symbols
yt_dlp/extractor/bilibili.py101 symbols
test/test_pot/test_pot_framework.py100 symbols
yt_dlp/postprocessor/ffmpeg.py99 symbols
yt_dlp/cookies.py83 symbols
yt_dlp/extractor/zattoo.py82 symbols
test/test_YoutubeDL.py81 symbols

For agents

$ claude mcp add yt-dlp \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact