Guide
|
por Hunt Team

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.

SiteO que se moveu no yt-dlp em 2026
YouTubeClientes de reprodução o ano todo. SABR ainda em pré-lançamento.
InstagramExtrator reescrito em julho. Extração com sessão corrigida em agosto.
TikTokChallenges JS, formatos e URLs de partilha (agosto).
VimeoCliente macOS adicionado em janeiro, removido com o iOS em agosto.
XLogin removido. Visualizações e broadcasts corrigidos.
FacebookLogin removido. Extrator de anúncios corrigido.
TwitchCanal em falta passa a ser erro. Clips corrigidos em junho e outubro.
RedditExtração anónima corrigida em junho. Login removido em julho.
SoundCloudClient id, impersonação de browser, formatos originais, comentários.
Kick, Bandcamp, Dailymotion, Patreon, LinkedInExtratores 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 n resolvidos 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_downgraded e tv_embedded removidos. web_embedded adicionado como reserva de android_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_vr e web_embedded corrigidos, configurações de web_safari e web_creator pedidas, EJS 0.7.0.
  • 2026.03.17: EJS 0.8.0, --live-from-start corrigido, o argumento webpage_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 visionos adicionado, reservas de web_embedded, android_vr retirado dos clientes por omissão, channel_follower_count para 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_count extraí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_card deixam de ser extraídos.
  • 21 de fevereiro: tratamento de erros corrigido.
  • 9 de junho: view_count corrigido.
  • 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-retries para os formatos originais do uploader.
  • 4 de julho: uploader_url em 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"

Instagram

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.

Sobre o binário: proxies, FFmpeg.

VIDEO API

Discover why Hunt is the preferred API provider for developers.