Guide
|
by Hunt Team

yt-dlp in October 2026: YouTube, TikTok, X, SoundCloud, and the rest

Stable yt-dlp is 2026.10.26, published on 26 October 2026. From the 29 January release through that tag, most of the work was repair. YouTube kept rotating player clients. TikTok broke format lists, then share links. X removed login and fixed view counts. SoundCloud lost its client id. Instagram's extractor was rewritten in July. Vimeo gained a macOS client in January and lost it, with the iOS client, in August.

The notes below are what those extractors actually do on the current stable tag. Private, deleted, and age-restricted media still fail unless you pass cookies, and several sites had their broken login support removed this year, so an old --username no longer helps.

SiteWhat moved in yt-dlp during 2026
YouTubePlayer clients all year. SABR still a pre-release.
InstagramExtractor rewritten in July. Logged-in extraction fixed in August.
TikTokJS challenges, formats, and share URLs (August).
VimeomacOS client added in January, removed with iOS in August.
XLogin removed. View counts and broadcasts fixed.
FacebookLogin removed. Ads extractor fixed.
TwitchMissing channels now error. Clips fixed in June and October.
RedditAnonymous extraction fixed in June. Login removed in July.
SoundCloudClient id, browser impersonation, original formats, comments.
Kick, Bandcamp, Dailymotion, Patreon, LinkedInExtractors repaired. See the notes further down.

YouTube

This extractor moved in almost every stable tag.

January through March was player-client churn.

  • 2026.01.29: default clients adjusted, n challenges solved for manifest formats, the external JS solver (EJS) bumped to 0.4.0, comment subthreads, Shorts thumbnails fixed in flat tab extraction.
  • 2026.01.31: broken ios_downgraded and tv_embedded clients removed. web_embedded added as a fallback for android_vr.
  • 2026.02.04: player JavaScript defaults to the tv variant.
  • 2026.02.21: more known player JS variants, live adaptive formats marked incomplete, EJS 0.5.0. Broken ytsearchdate removed.
  • 2026.03.03: player pinned to 9f4cc5e4. The webpage player response is skipped by default.
  • 2026.03.13: android_vr and web_embedded fixed, web_safari and web_creator configs requested, EJS 0.7.0.
  • 2026.03.17: EJS 0.8.0, --live-from-start fixed, the webpage_client extractor argument is always respected.

June changed the machine you run it on, not the site. 2026.06.09 dropped Node below 22, Deno below 2.3.0, and Bun outside 1.2.11 to 1.3.14. The same release fixed PO token sanitization on Python 3.14.4+ and on Python 3.15. That was a string-handling bug. YouTube's proof-of-origin check itself did not go away.

July and August:

  • 2026.07.04: live adaptive formats, and a run of tab and playlist fixes (metadata, pagination, collaborators).
  • 2026.08.19: visionos client added, web_embedded fallbacks, android_vr removed from the default clients, channel_follower_count for collaborators, live adaptive fragment generation fixed.

2026.10.21 added a tv_samsung client and made it a default, sent a Safari user agent for web_embedded, and fixed initial data extraction. The 26 October tag did not touch YouTube. It dropped Python 3.10, required Windows 10 or later for the official Windows binaries, and upgraded the bundled brotli and curl-cffi packages after their security advisories.

SABR is still outside stable. YouTube's server-side adaptive bitrate downloader lives on a pre-release sabr line (a late-October 2026 build on the bashonly fork), and it does not appear in the 2026.10.26 changelog. The project's PO Token guide says the web client currently exposes SABR formats and wants a proof-of-origin token before it will serve media. Stable yt-dlp routes around that by asking other clients (tv, tv_samsung, web_embedded, visionos) instead of speaking SABR.

A public watch URL is enough for the default clients. A private, deleted, or age-restricted video still needs cookies, and even then some age-restricted videos only come back if the account can actually play them.

TikTok

  • 29 January: save_count extracted. JavaScript challenges solved in native Python, so TikTok does not need the Deno or Node floor that YouTube does.
  • 13 March: challenge solving fixed again after it broke.
  • 19 August: the extractor and the format list were fixed, and share URLs (the short vm.tiktok.com links) started working.

Public videos and those short links work on 2026.10.26. A private account still needs cookies.

X

The extractor is still called Twitter in the changelog.

  • 29 January: broken login support removed. Non-video posts inside unified_card objects are no longer extracted.
  • 21 February: error handling fixed.
  • 9 June: view_count fixed.
  • 19 August: broadcast events fixed.

A video post or a broadcast is the case that works. A text post with no media was dropped in January, so --dump-json on that URL should not be expected to return a video.

SoundCloud

  • 21 February: client id extraction fixed, and browser impersonation added. SoundCloud had started rejecting the old TLS fingerprint.
  • 9 June: clearer errors, and --extractor-retries for the original uploader formats.
  • 4 July: uploader_url on playlists, comments, and a broader metadata pass.

If you want the file the uploader actually sent, rather than the transcode, the June retry flag is the relevant one. Comments and uploader_url show up in the info dict from July onward.

yt-dlp -x --audio-format mp3 "https://soundcloud.com/artist/track"

Instagram

2026.07.04 rewrote the extractor and made it detect invalidated cookies instead of failing halfway through a request. 2026.08.19 fixed logged-in extraction.

Public posts work without a session. A private account still needs cookies from a logged-in browser, and a dead cookie jar now fails early instead of halfway through the page.

Vimeo

2026.01.29 added a macos player client. 2026.08.19 removed the ios and macos clients. The client added in January did not last the summer. Public Vimeo URLs still extract. Password-protected and private videos need the password or cookies, same as before.

Facebook, Reddit, Twitch

Facebook. 29 January removed broken login. The ads extractor was fixed the same day and again on 21 February. Public videos only, unless you pass cookies yourself. The built-in login is gone.

Reddit. 9 June fixed extraction without an account. 4 July removed broken login. Public posts work anonymously again.

Twitch. 29 January: a missing channel is now an error instead of an empty result. Clips were fixed on 9 June and again on 21 October. The old rechat subtitles were removed in June. Public VODs and clips.

Other sites that moved

  • Kick: extractors rewritten on 21 October.
  • Bandcamp: the weekly extractor was fixed more than once, browser impersonation landed on 19 August, and another fix landed on 21 October.
  • Dailymotion: extractor fixes on 29 January and 21 February.
  • Patreon: inlined media on 29 January, an extractor fix on 3 March, a new URL format on 4 July.
  • LinkedIn: broken login removed on 4 July.
  • Bilibili: API extraction fixed on 4 July.
  • Niconico: error detection and shorts on 4 July, channels on 21 October.

What 2026.10.26 asks of the machine

2026.10.26 requires Python 3.11. Python 3.10 is gone. The official Windows binaries need Windows 10 or later.

The 21 October release warned that old executables can be intercepted on the self-updater, after the certifi advisory. If that is a real concern, install 2026.10.26 by downloading it, not with yt-dlp -U.

YouTube still wants a current JS runtime when you solve challenges locally: Node 22 or newer, Deno 2.3.0 or newer, and Bun only from 1.2.11 through 1.3.14. That floor landed on 9 June.

yt-dlp --js-runtimes deno "https://www.youtube.com/watch?v=VIDEO_ID"
yt-dlp -f "bv*[height<=1080]+ba/b" "https://www.youtube.com/watch?v=VIDEO_ID"

Check the tag you are actually running with yt-dlp --version. Anything older than 2026.10.26 is missing at least the Python 3.11 cut, and anything older than 2026.10.21 is missing tv_samsung as a default YouTube client.

Related, if you are still wrapping the binary: proxies, FFmpeg.

VIDEO API

Discover why Hunt is the preferred API provider for developers.