What’s New

yt-dlp

Developer Tools

A feature-rich command-line audio/video downloader

Latest 2026.07.04 · by yt-dlpWebsiteyt-dlp/yt-dlp

Changelog

2026.07.04

yt-dlp 2026.07.04

Changed
  • Always include warnings in debug output
  • Raise minimum recommended Python version to 3.11
  • Use single quotes instead of double quotes for SQL string quoting in cookies
  • parse_duration function now returns int when appropriate
  • parse_resolution function now supports fps suffixes
  • Avoid repeated index lookups in qualities function
  • Bump random user agent version range from 143-149 to 144-150
  • Always include id in request error output
Fixed
  • Fix allow-unsafe-ext compat option
  • Fix HTTPHeaderDict __ior__ method
  • Fix invalid PKCS#1 v1.5 padding bytes in pkcs1pad
  • Fix request logging
  • Fix arte playlist support
Deprecated
  • Deprecate make_dir in favor of make_parent_dirs
Security
  • Validate and escape values in --write-link output to prevent downstream command injection

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
Core changes
Extractor changes
Downloader changes
Misc. changes
2026.06.09

yt-dlp 2026.06.09

Added
  • Extract supplemental codecs from DASH manifests
  • Extract subtitles from abematv
  • Add lockfile and pinned extras
Changed
  • Raise minimum supported versions of Deno to v2.3.0, Node to v22, and deprecate Bun support limiting it to versions 1.2.11 through 1.3.14
  • Handle Pinia skipHydrate in _resolve_nuxt_array
  • Bump GitHub REST API version to 2026-03-10
  • Update random user agent version range to 143-149
Removed
  • Remove support for downloading HLS and DASH formats with aria2c downloader
Security
  • Restrict --exec option to only allow safe conversions in command templates, blocking vulnerable conversions like %()s
  • Fix file downloader cookie leak with curl by properly passing cookies so curl respects their scope
  • Restrict writing files with extensions .desktop, .url, or .webloc to only --write-link functionality context

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 supported versions of Deno, Node, and Bun have been raised. The minimum required version of Deno is now v2.3.0; supported Node versions are v22 and up; Bun support has been deprecated and limited to versions 1.2.11 through 1.3.14.
  • Security
    • Usage of vulnerable conversions (e.g. %()s) with the --exec option is an all-too-common pitfall. To remedy this, --exec now only allows safe conversions in its command templates.
      • Most users can simply replace %(...)s with %(...)q in their --exec argument(s). Numeric conversions are unaffected by this change. Using unsafe conversions with --exec poses a significant security risk. Read more
    • [CVE-2026-50019] File Downloader cookie leak with curl
      • Impact is limited to users of --downloader curl; cookies are now properly passed to curl so that it respects their scope
    • [CVE-2026-50023] Dangerous file type creation via insufficient filename sanitization
      • Writing files with the extensions .desktop, .url, or .webloc is now only allowed in the context of --write-link functionality
    • [CVE-2026-50574] Arbitrary code execution via manifest downloads with aria2c
      • Impact is limited to users of --downloader aria2c
      • Support for downloading HLS and DASH formats with aria2c has been removed. Users affected by this change should migrate to use -N for concurrent fragment downloads via the native downloader
Core changes
Extractor changes
Downloader changes
Postprocessor changes
Networking changes
Misc. changes
2026.03.17

yt-dlp 2026.03.17

Changed
  • Always respect webpage_client extractor-arg for youtube
  • Update ejs to 0.8.0 for youtube
  • Use PyInstaller v6.19.0 for Windows
Fixed
  • Fix --live-from-start support for youtube

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


Extractor changes
Misc. changes
2026.03.13

yt-dlp 2026.03.13

Changed
  • youtube: Request web_safari & web_creator client configs
  • youtube: Update ejs to 0.7.0
  • youtube tab: Improve description extraction
Fixed
  • tiktok: Fix challenge solving
  • youtube: Fix android_vr player client
  • youtube: Fix use_ad_playback_context extractor-arg
  • youtube: Fix web_embedded player client
  • youtube tab: Fix album extraction

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


Extractor changes
2026.03.03

yt-dlp 2026.03.03

Changed
  • Rework thechosen extractor
  • Force youtube player 9f4cc5e4
  • Skip youtube webpage player response by default
  • Improve zapiks extraction
Fixed
  • Fix aenetworks extractor
  • Fix patreon extractors

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


Extractor changes
2026.02.21

yt-dlp 2026.02.21

Added
  • Support string concatenation with + and += in jsinterp
  • Add browser impersonation support to more extractors
  • Extract chapters for 1tv
  • Add locipo extractors
  • Add matchitv extractor
Changed
  • Limit netrc_machine parameter to shell-safe characters
  • Support standalone, series and Olympics URLs for gem.cbc.ca
Fixed
  • Ignore cookies with control characters
  • Fix bitwise operations in jsinterp
  • Stringify bracket notation keys in object access in jsinterp
  • Fix aenetworks extractor
  • Fix applepodcasts extractor
  • Fix dailymotion extraction
  • Fix facebook ads extractor
  • Fix learningonscreen extractor
  • Fix inefficient regular expression in odnoklassniki
Security
  • Limit the argument passed to the command in --netrc-cmd to a safe subset of characters to prevent arbitrary command injection

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
Core changes
Extractor changes
Networking changes
Misc. changes
2026.02.04

yt-dlp 2026.02.04

Changed
  • Default to tv player JS variant for youtube
  • Update unsupported URLs

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


Extractor changes
2026.01.31

yt-dlp 2026.01.31

Added
  • Support subscription-only VODs for soop
  • Add web_embedded fallback for android_vr client in youtube
Changed
  • Update unsupported URLs
  • Extract more metadata for whyp
Removed
  • Remove broken ios_downgraded player client from youtube
  • Remove broken tv_embedded player client from youtube

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


Extractor changes
Misc. changes
2026.01.29

yt-dlp 2026.01.29

Added
  • Add --compat-options 2025
  • Add --format-sort-reset option
  • Support Deno installed via Python package
  • Add tz_offset parameter to unified_timestamp
  • Support --wait-for-video in bigo extractor
Changed
  • Accept float values for --sleep-subtitles
  • Bypass interactive format selection if no formats are found
  • Recognize more srt types in mimetype2ext
  • Bump random_user_agent versions
Fixed
  • Fix --parse-metadata when TO is a single field name
  • Fix concurrent formats downloading to stdout
  • Fix interactive format/video selection when downloading to stdout
  • Fix decode_packed_codes missing key handling
  • Fix devalue calling reviver on cached value
  • Prevent false positives for octals in js_to_json
  • Fix prioritization of Youtube URL matching
  • Fix archive.org metadata extraction
  • Fix bandcamp weekly extractor

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


Core changes
Extractor changes
Networking changes
Misc. changes
2025.12.08

yt-dlp 2025.12.08

Added
  • Add agalega extractor
  • Add alibaba extractor
  • Add bitmovin extractor
  • Add subtitle support to floatplane
  • Add mave channel extractor
  • Add netapp extractors
  • Add nowcanal extractor
Changed
  • Rework digiteka extractor
  • Rework medaltv extractor
  • Support new API URLs for soundcloudplaylist
Fixed
  • Respect PATHEXT when locating JS runtime on Windows
  • Fix --cookies-from-browser for new installs of Firefox 147+
  • Raise appropriate error when fc2 live stream is offline
  • Fix jtbc extractor
  • Fix loom extractor
  • Fix nhk extractors
  • Fix patreon campaign extractor
  • Fix rinsefm extractors
  • Fix s4c geo-restricted content

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


Core changes
Extractor changes
Downloader changes
Postprocessor changes
Networking changes
Misc. changes