yt-dlp a ottobre 2026: YouTube, TikTok, X, SoundCloud e gli altri
Lo yt-dlp stabile è 2026.10.26, pubblicato il 26 ottobre 2026. Dalla versione del 29 gennaio a quel tag, quasi tutto il lavoro è stato riparazione. YouTube ha fatto ruotare i client di riproduzione. TikTok ha rotto gli elenchi dei formati, poi i link di condivisione. X ha tolto il login e sistemato i conteggi delle visualizzazioni. SoundCloud ha perso il client id. L'estrattore di Instagram è stato riscritto a luglio. Vimeo ha guadagnato un client macOS a gennaio e l'ha perso, insieme al client iOS, ad agosto.
Le note qui sotto descrivono quello che questi estrattori fanno davvero sul tag stabile attuale. Un media privato, cancellato o con limite di età fallisce ancora, a meno che non passiate i cookie. Diversi siti hanno perso quest'anno il login integrato, già rotto: un vecchio --username non serve più.
| Sito | Cosa si è mosso in yt-dlp nel 2026 |
|---|---|
| YouTube | Client di riproduzione tutto l'anno. SABR ancora in prerelease. |
| Estrattore riscritto a luglio. Estrazione autenticata sistemata ad agosto. | |
| TikTok | Challenge JS, formati e URL di condivisione (agosto). |
| Vimeo | Client macOS aggiunto a gennaio, rimosso con iOS ad agosto. |
| X | Login rimosso. Visualizzazioni e broadcast sistemati. |
| Login rimosso. Estrattore degli annunci sistemato. | |
| Twitch | Canale assente: errore. Clip sistemate a giugno e a ottobre. |
| Estrazione anonima sistemata a giugno. Login rimosso a luglio. | |
| SoundCloud | Client id, impersonificazione del browser, formati originali, commenti. |
| Kick, Bandcamp, Dailymotion, Patreon, LinkedIn | Estrattori riparati. Dettaglio più sotto. |
YouTube
Questo estrattore si è mosso in quasi ogni tag stabile.
Da gennaio a marzo è stata rotazione dei client di riproduzione.
- 2026.01.29: client predefiniti ritoccati, challenge
nrisolte per i formati dei manifest, il solver JS esterno (EJS) portato a 0.4.0, sotto-thread dei commenti, miniature degli Shorts sistemate nell'estrazione piatta delle schede. - 2026.01.31: client rotti
ios_downgradedetv_embeddedrimossi.web_embeddedaggiunto come ripiego perandroid_vr. - 2026.02.04: il JavaScript del player parte in modo predefinito sulla variante
tv. - 2026.02.21: più varianti JS note del player, formati adattivi live segnati come incompleti, EJS 0.5.0.
ytsearchdate, rotto, rimosso. - 2026.03.03: player fissato su
9f4cc5e4. La risposta player della pagina web viene saltata di default. - 2026.03.13:
android_vreweb_embeddedsistemati, configurazioni diweb_safarieweb_creatorrichieste, EJS 0.7.0. - 2026.03.17: EJS 0.8.0,
--live-from-startsistemato, l'argomentowebpage_clientviene sempre rispettato.
Giugno ha cambiato la macchina, non il sito. 2026.06.09 abbandona Node prima della 22, Deno prima di 2.3.0 e Bun fuori da 1.2.11 a 1.3.14. La stessa versione corregge la pulizia dei token PO su Python 3.14.4+ e su Python 3.15. Era un bug di stringa. Il controllo proof-of-origin di YouTube è ancora lì.
Luglio e agosto:
- 2026.07.04: formati adattivi live, e una serie di correzioni su schede e playlist (metadati, paginazione, collaboratori).
- 2026.08.19: client
visionosaggiunto, ripieghiweb_embedded,android_vrtolto dai client predefiniti,channel_follower_countper i collaboratori, generazione dei frammenti live sistemata.
2026.10.21 ha aggiunto un client tv_samsung, l'ha messo tra i predefiniti, invia uno user-agent Safari per web_embedded e sistema l'estrazione dei dati iniziali. Il tag del 26 ottobre non tocca YouTube. Toglie Python 3.10, richiede Windows 10 o successivo per i binari Windows ufficiali e aggiorna brotli e curl-cffi inclusi, dopo i loro avvisi di sicurezza.
SABR è ancora fuori dallo stabile. Il downloader a bitrate adattivo lato server di YouTube vive su una linea di prerelease sabr (una build di fine ottobre 2026 sul fork di bashonly) e non compare nel changelog di 2026.10.26. La guida PO Token del progetto dice che il client web espone oggi formati SABR e vuole un token proof-of-origin prima di servire il media. Lo yt-dlp stabile aggira la cosa interrogando altri client (tv, tv_samsung, web_embedded, visionos) invece di parlare SABR.
Un URL pubblico basta per i client predefiniti. Un video privato, cancellato o con limite di età chiede ancora i cookie, e alcuni video con limite di età tornano solo se l'account può davvero riprodurli.
TikTok
- 29 gennaio: estratto
save_count. I challenge JavaScript si risolvono in Python nativo, quindi TikTok non ha la soglia Deno o Node di YouTube. - 13 marzo: risoluzione dei challenge sistemata di nuovo, dopo un'altra rottura.
- 19 agosto: estrattore e elenco dei formati sistemati, e gli URL di condivisione (i link corti
vm.tiktok.com) iniziano a funzionare.
I video pubblici e quei link corti funzionano su 2026.10.26. Un account privato chiede ancora i cookie.
X
Nel changelog l'estrattore si chiama ancora Twitter.
- 29 gennaio: supporto del login, già rotto, rimosso. I post senza video negli oggetti
unified_cardnon vengono più estratti. - 21 febbraio: gestione degli errori sistemata.
- 9 giugno:
view_countsistemato. - 19 agosto: eventi di broadcast sistemati.
Un post video o un broadcast è il caso che funziona. Un post di testo senza media è stato abbandonato a gennaio: --dump-json su quell'URL non deve restituire un video.
SoundCloud
- 21 febbraio: estrazione del client id sistemata, e impersonificazione del browser aggiunta. SoundCloud aveva iniziato a rifiutare la vecchia impronta TLS.
- 9 giugno: errori più chiari, e
--extractor-retriesper i formati originali dell'uploader. - 4 luglio:
uploader_urlsulle playlist, commenti e un passaggio più ampio sui metadati.
Se volete il file inviato dall'uploader, e non il transcodificato, è il flag di retry di giugno quello che conta. Commenti e uploader_url compaiono nell'info dict da luglio.
yt-dlp -x --audio-format mp3 "https://soundcloud.com/artist/track"
2026.07.04 ha riscritto l'estrattore e gli fa rilevare i cookie invalidati, invece di fallire a metà richiesta. 2026.08.19 ha sistemato l'estrazione autenticata.
I post pubblici funzionano senza sessione. Un account privato chiede ancora i cookie di un browser connesso, e un barattolo di cookie morto fallisce subito, non più a metà strada.
Vimeo
2026.01.29 ha aggiunto un client macos. 2026.08.19 ha rimosso i client ios e macos. Il client aggiunto a gennaio non ha passato l'estate. Gli URL Vimeo pubblici si estraggono ancora. I video privati o protetti da password chiedono la password o i cookie, come prima.
Facebook, Reddit, Twitch
Facebook. Il 29 gennaio è stato rimosso il login rotto. L'estrattore degli annunci è stato sistemato lo stesso giorno e di nuovo il 21 febbraio. Solo video pubblici, a meno che non passiate voi i cookie. Il login integrato è sparito.
Reddit. Il 9 giugno è stata sistemata l'estrazione senza account. Il 4 luglio è stato rimosso il login rotto. I post pubblici tornano a funzionare in anonimo.
Twitch. Il 29 gennaio un canale assente diventa un errore, non un risultato vuoto. Le clip sono state sistemate il 9 giugno e di nuovo il 21 ottobre. I vecchi sottotitoli rechat sono stati rimossi a giugno. VOD e clip pubblici.
Altri siti che si sono mossi
- Kick: estrattori riscritti il 21 ottobre.
- Bandcamp: l'estrattore weekly riparato più volte, impersonificazione del browser il 19 agosto, un'altra correzione il 21 ottobre.
- Dailymotion: correzioni dell'estrattore il 29 gennaio e il 21 febbraio.
- Patreon: media inline il 29 gennaio, correzione dell'estrattore il 3 marzo, nuovo formato di URL il 4 luglio.
- LinkedIn: login rotto rimosso il 4 luglio.
- Bilibili: estrazione API sistemata il 4 luglio.
- Niconico: rilevamento errori e short il 4 luglio, canali il 21 ottobre.
Cosa chiede 2026.10.26 alla macchina
2026.10.26 richiede Python 3.11. Python 3.10 non c'è più. I binari Windows ufficiali chiedono Windows 10 o successivo.
La versione del 21 ottobre avvisa che vecchi eseguibili possono essere intercettati sull'aggiornamento automatico, dopo l'avviso certifi. Se vi riguarda davvero, installate 2026.10.26 scaricandolo, non con yt-dlp -U.
YouTube vuole ancora un runtime JS aggiornato quando risolvete i challenge in locale: Node 22 o più recente, Deno 2.3.0 o più recente, e Bun solo da 1.2.11 a 1.3.14. Quella soglia è del 9 giugno.
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"
Controllate il tag che state davvero lanciando con yt-dlp --version. Tutto ciò che è più vecchio di 2026.10.26 perde almeno il taglio di Python 3.11, e tutto ciò che è più vecchio di 2026.10.21 non ha tv_samsung tra i client YouTube predefiniti.