yt-dlp em outubro de 2026: YouTube, TikTok, X, SoundCloud e o resto
O yt-dlp estável é o 2026.10.26, publicado a 26 de outubro de 2026. Da versão de 29 de janeiro até essa tag, quase todo o trabalho foi reparação. O YouTube foi rodando clientes de reprodução. O TikTok partiu as listas de formatos e depois os links de partilha. O X retirou o login e corrigiu as contagens de visualizações. O SoundCloud perdeu o client id. O extrator do Instagram foi reescrito em julho. O Vimeo ganhou um cliente macOS em janeiro e perdeu-o, com o cliente iOS, em agosto.
As notas abaixo descrevem o que esses extratores fazem mesmo na tag estável atual. Um média privado, apagado ou com restrição de idade continua a falhar, a menos que passe cookies. Vários sites perderam este ano o login integrado, já partido: um --username antigo já não serve.
| Site | O que se moveu no yt-dlp em 2026 |
|---|---|
| YouTube | Clientes de reprodução o ano todo. SABR ainda em pré-lançamento. |
| Extrator reescrito em julho. Extração com sessão corrigida em agosto. | |
| TikTok | Challenges JS, formatos e URLs de partilha (agosto). |
| Vimeo | Cliente macOS adicionado em janeiro, removido com o iOS em agosto. |
| X | Login removido. Visualizações e broadcasts corrigidos. |
| Login removido. Extrator de anúncios corrigido. | |
| Twitch | Canal em falta passa a ser erro. Clips corrigidos em junho e outubro. |
| Extração anónima corrigida em junho. Login removido em julho. | |
| SoundCloud | Client id, impersonação de browser, formatos originais, comentários. |
| Kick, Bandcamp, Dailymotion, Patreon, LinkedIn | Extratores reparados. Detalhe mais abaixo. |
YouTube
Este extrator moveu-se em quase todas as tags estáveis.
De janeiro a março foi rotação de clientes de reprodução.
- 2026.01.29: clientes por omissão ajustados, challenges
nresolvidos para formatos de manifesto, o solucionador JS externo (EJS) passou a 0.4.0, subthreads de comentários, miniaturas de Shorts corrigidas na extração plana de separadores. - 2026.01.31: clientes partidos
ios_downgradedetv_embeddedremovidos.web_embeddedadicionado como reserva deandroid_vr. - 2026.02.04: o JavaScript do player passa por omissão à variante
tv. - 2026.02.21: mais variantes JS conhecidas do player, formatos adaptativos em direto marcados como incompletos, EJS 0.5.0.
ytsearchdate, partido, removido. - 2026.03.03: player fixado em
9f4cc5e4. A resposta player da página web é ignorada por omissão. - 2026.03.13:
android_vreweb_embeddedcorrigidos, configurações deweb_safarieweb_creatorpedidas, EJS 0.7.0. - 2026.03.17: EJS 0.8.0,
--live-from-startcorrigido, o argumentowebpage_clienté sempre respeitado.
Junho mudou a máquina, não o site. 2026.06.09 larga o Node anterior a 22, o Deno anterior a 2.3.0 e o Bun fora de 1.2.11 a 1.3.14. A mesma versão corrige a limpeza de tokens PO em Python 3.14.4+ e em Python 3.15. Era um erro de string. A verificação proof-of-origin do YouTube continua lá.
Julho e agosto:
- 2026.07.04: formatos adaptativos em direto, e uma série de correções de separadores e playlists (metadados, paginação, colaboradores).
- 2026.08.19: cliente
visionosadicionado, reservas deweb_embedded,android_vrretirado dos clientes por omissão,channel_follower_countpara colaboradores, geração de fragmentos em direto corrigida.
2026.10.21 adicionou um cliente tv_samsung e tornou-o predefinido, enviou um user-agent Safari para web_embedded e corrigiu a extração dos dados iniciais. A tag de 26 de outubro não tocou no YouTube. Retirou o Python 3.10, passou a exigir Windows 10 ou posterior nos binários oficiais de Windows e atualizou os pacotes brotli e curl-cffi incluídos, depois dos avisos de segurança.
O SABR continua fora do estável. O descarregador de bitrate adaptativo no servidor do YouTube vive numa linha de pré-lançamento sabr (uma build de finais de outubro de 2026 no fork do bashonly) e não aparece no changelog de 2026.10.26. O guia de PO Token do projeto diz que o cliente web expõe hoje formatos SABR e pede um token proof-of-origin antes de servir o média. O yt-dlp estável contorna isso perguntando a outros clientes (tv, tv_samsung, web_embedded, visionos) em vez de falar SABR.
Um URL público chega para os clientes por omissão. Um vídeo privado, apagado ou com limite de idade continua a pedir cookies, e alguns vídeos com limite de idade só voltam se a conta os conseguir mesmo reproduzir.
TikTok
- 29 de janeiro:
save_countextraído. Os challenges JavaScript resolvem-se em Python nativo, por isso o TikTok não precisa do patamar de Deno ou Node do YouTube. - 13 de março: a resolução de challenges foi corrigida outra vez, depois de se partir.
- 19 de agosto: o extrator e a lista de formatos foram corrigidos, e os URLs de partilha (os links curtos
vm.tiktok.com) passaram a funcionar.
Os vídeos públicos e esses links curtos funcionam no 2026.10.26. Uma conta privada continua a precisar de cookies.
X
No changelog o extrator ainda se chama Twitter.
- 29 de janeiro: suporte de login, já partido, removido. Posts sem vídeo dentro de objetos
unified_carddeixam de ser extraídos. - 21 de fevereiro: tratamento de erros corrigido.
- 9 de junho:
view_countcorrigido. - 19 de agosto: eventos de broadcast corrigidos.
Um post de vídeo ou um broadcast é o caso que funciona. Um post de texto sem média foi largado em janeiro: --dump-json nesse URL não deve devolver um vídeo.
SoundCloud
- 21 de fevereiro: extração do client id corrigida, e impersonação de browser adicionada. O SoundCloud tinha começado a rejeitar a impressão TLS antiga.
- 9 de junho: erros mais claros, e
--extractor-retriespara os formatos originais do uploader. - 4 de julho:
uploader_urlem playlists, comentários e uma passagem mais larga de metadados.
Se quer o ficheiro que o uploader enviou, e não o transcodificado, a flag de retry de junho é a que conta. Comentários e uploader_url aparecem no info dict a partir de julho.
yt-dlp -x --audio-format mp3 "https://soundcloud.com/artist/track"
2026.07.04 reescreveu o extrator e fê-lo detetar cookies invalidados, em vez de falhar a meio de um pedido. 2026.08.19 corrigiu a extração com sessão.
Os posts públicos funcionam sem sessão. Uma conta privada continua a precisar de cookies de um browser com sessão, e um frasco de cookies morto falha agora logo no início, não a meio do caminho.
Vimeo
2026.01.29 adicionou um cliente macos. 2026.08.19 removeu os clientes ios e macos. O cliente adicionado em janeiro não passou o verão. Os URLs públicos do Vimeo continuam a extrair-se. Vídeos privados ou com palavra-passe precisam da palavra-passe ou de cookies, como antes.
Facebook, Reddit, Twitch
Facebook. A 29 de janeiro foi removido o login partido. O extrator de anúncios foi corrigido nesse dia e outra vez a 21 de fevereiro. Só vídeos públicos, a menos que passe você mesmo os cookies. O login integrado desapareceu.
Reddit. A 9 de junho foi corrigida a extração sem conta. A 4 de julho foi removido o login partido. Os posts públicos voltam a funcionar em anónimo.
Twitch. A 29 de janeiro, um canal em falta passa a ser um erro, não um resultado vazio. Os clips foram corrigidos a 9 de junho e outra vez a 21 de outubro. As legendas antigas rechat foram removidas em junho. VODs e clips públicos.
Outros sites que se moveram
- Kick: extratores reescritos a 21 de outubro.
- Bandcamp: o extrator weekly reparado mais do que uma vez, impersonação de browser a 19 de agosto e outra correção a 21 de outubro.
- Dailymotion: correções do extrator a 29 de janeiro e a 21 de fevereiro.
- Patreon: média inline a 29 de janeiro, correção do extrator a 3 de março, novo formato de URL a 4 de julho.
- LinkedIn: login partido removido a 4 de julho.
- Bilibili: extração de API corrigida a 4 de julho.
- Niconico: deteção de erros e shorts a 4 de julho, canais a 21 de outubro.
O que o 2026.10.26 pede à máquina
2026.10.26 exige Python 3.11. O Python 3.10 desapareceu. Os binários oficiais de Windows precisam de Windows 10 ou posterior.
A versão de 21 de outubro avisa que executáveis antigos podem ser interceptados no atualizador, depois do aviso do certifi. Se isso lhe diz respeito mesmo, instale o 2026.10.26 descarregando-o, não com yt-dlp -U.
O YouTube continua a querer um runtime JS atual quando resolve challenges localmente: Node 22 ou mais recente, Deno 2.3.0 ou mais recente, e Bun só de 1.2.11 a 1.3.14. Esse patamar é de 9 de junho.
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"
Confirme a tag que está mesmo a lançar com yt-dlp --version. Tudo o que for anterior a 2026.10.26 perde pelo menos o corte do Python 3.11, e tudo o que for anterior a 2026.10.21 não tem tv_samsung entre os clientes por omissão do YouTube.