What changed in yt-dlp from 2025 to 2026

10 releases numbered after 2025.12.08 up to and including 2026.08.19, stable releases only. 2025.12.08 and 2026.08.19 are the newest stable releases of 2025 and 2026 we track; this page follows them as new ones ship.

103 changes across 10 releases · 2 landed on more than one version

Added 18

2026.08.19

  • Support browser impersonation for bandcamp extractor
  • Support share URLs for tiktok extractor
  • Add `visionos` player client for youtube extractor

2026.06.09

  • Extract supplemental codecs from DASH manifests
  • Extract subtitles from abematv
  • Add lockfile and pinned extras

2026.02.21

  • Support string concatenation with + and += in jsinterp
  • Add browser impersonation support to more extractors
  • Extract chapters for 1tv
  • Add locipo extractors
  • Add matchitv extractor

2026.01.31

  • Support subscription-only VODs for soop
  • Add web_embedded fallback for android_vr client in youtube

2026.01.29

  • 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 34

2026.08.19

  • Update `random_user_agent` version range from 144-150 to 145-151
  • Rework apple extractors
  • Rework showroom extractors

2026.07.04

  • 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

2026.06.09

  • 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

2026.03.17

  • Always respect webpage_client extractor-arg for youtube
  • Update ejs to 0.8.0 for youtube
  • Use PyInstaller v6.19.0 for Windows

2026.03.13

  • youtube: Request web_safari & web_creator client configs
  • youtube: Update ejs to 0.7.0
  • youtube tab: Improve description extraction

2026.03.03

  • Rework thechosen extractor
  • Force youtube player 9f4cc5e4
  • Skip youtube webpage player response by default
  • Improve zapiks extraction

2026.02.21

  • Limit netrc_machine parameter to shell-safe characters
  • Support standalone, series and Olympics URLs for gem.cbc.ca

2026.02.04

  • Default to tv player JS variant for youtube
  • Update unsupported URLsalso in2026.01.31

2026.01.31

  • Extract more metadata for whyp

2026.01.29

  • 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 38

2026.08.19

  • Make `float_or_none` catch `OverflowError`
  • Fix season/series extraction for americastestkitchen extractor
  • Fix bfmtv extractor
  • Fix logged-in extraction for instagram extractor
  • Fix tiktok extractor
  • Fix formats extraction for tiktok extractor
  • Fix events handling for twitter broadcast extractor
  • Fix whyp extractor

2026.07.04

  • 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

2026.03.17

  • Fix --live-from-start support for youtube

2026.03.13

  • 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

2026.03.03

  • Fix aenetworks extractoralso in2026.02.21
  • Fix patreon extractors

2026.02.21

  • Ignore cookies with control characters
  • Fix bitwise operations in jsinterp
  • Stringify bracket notation keys in object access in jsinterp
  • Fix applepodcasts extractor
  • Fix dailymotion extraction
  • Fix facebook ads extractor
  • Fix learningonscreen extractor
  • Fix inefficient regular expression in odnoklassniki

2026.01.29

  • 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
Removed 5

2026.08.19

  • Remove dead ard extractor
  • Remove `ios` and `macos` clients from vimeo extractor

2026.06.09

  • Remove support for downloading HLS and DASH formats with aria2c downloader

2026.01.31

  • Remove broken ios_downgraded player client from youtube
  • Remove broken tv_embedded player client from youtube
Deprecated 3

2026.08.19

  • Deprecate `number_of_digits` utility function
  • Deprecate `random_uuidv4` utility function

2026.07.04

  • Deprecate make_dir in favor of make_parent_dirs
Security 5

2026.07.04

  • Validate and escape values in --write-link output to prevent downstream command injection

2026.06.09

  • 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

2026.02.21

  • Limit the argument passed to the command in --netrc-cmd to a safe subset of characters to prevent arbitrary command injection

Original release notes, newest first

The list above is our reading of these notes; the originals from yt-dlp are here, one fold per release.

2026.08.19yt-dlp 2026.08.19

Installation Discord Donate Documentation Nightly Master

A description of the various files is in the README

The zipimport Unix executable and release tarball contain 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
Networking changes
Misc. changes

View originalPermalink

2026.07.04yt-dlp 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
Core changes
Extractor changes
Downloader changes
Misc. changes

View originalPermalink

2026.06.09yt-dlp 2026.06.09

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

View originalPermalink

2026.03.17yt-dlp 2026.03.17

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

View originalPermalink

2026.03.13yt-dlp 2026.03.13

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

View originalPermalink

2026.03.03yt-dlp 2026.03.03

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

View originalPermalink

2026.02.21yt-dlp 2026.02.21

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

View originalPermalink

2026.02.04yt-dlp 2026.02.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


Extractor changes

View originalPermalink

2026.01.31yt-dlp 2026.01.31

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

View originalPermalink

2026.01.29yt-dlp 2026.01.29

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

View originalPermalink