yt-dlp en octubre de 2026: YouTube, TikTok, X, SoundCloud y el resto
El yt-dlp estable es 2026.10.26, publicado el 26 de octubre de 2026. Desde la versión del 29 de enero hasta esa etiqueta, casi todo el trabajo fue reparación. YouTube fue rotando clientes de reproducción. TikTok rompió las listas de formatos y después los enlaces para compartir. X quitó el login y arregló los contadores de visitas. SoundCloud perdió su client id. El extractor de Instagram se reescribió en julio. Vimeo ganó un cliente macOS en enero y lo perdió, junto con el de iOS, en agosto.
Las notas de abajo describen lo que esos extractores hacen de verdad en la etiqueta estable actual. Un medio privado, borrado o con restricción de edad sigue fallando, salvo que pases cookies. Varios sitios perdieron este año su login integrado, ya roto: un --username viejo ya no sirve.
| Sitio | Qué se movió en yt-dlp durante 2026 |
|---|---|
| YouTube | Clientes de reproducción todo el año. SABR sigue en versión previa. |
| Extractor reescrito en julio. Extracción con sesión arreglada en agosto. | |
| TikTok | Challenges JS, formatos y URLs para compartir (agosto). |
| Vimeo | Cliente macOS añadido en enero, retirado con iOS en agosto. |
| X | Login retirado. Visitas y broadcasts arreglados. |
| Login retirado. Extractor de anuncios arreglado. | |
| Twitch | Un canal ausente ahora es un error. Clips arreglados en junio y octubre. |
| Extracción anónima arreglada en junio. Login retirado en julio. | |
| SoundCloud | Client id, suplantación de navegador, formatos originales, comentarios. |
| Kick, Bandcamp, Dailymotion, Patreon, LinkedIn | Extractores reparados. Detalle más abajo. |
YouTube
Este extractor se movió en casi cada etiqueta estable.
De enero a marzo fue rotación de clientes de reproducción.
- 2026.01.29: clientes por defecto ajustados, challenges
nresueltos para formatos de manifiesto, el solucionador JS externo (EJS) subido a 0.4.0, hilos de comentarios, miniaturas de Shorts arregladas en la extracción plana de pestañas. - 2026.01.31: clientes rotos
ios_downgradedytv_embeddedretirados.web_embeddedañadido como respaldo deandroid_vr. - 2026.02.04: el JavaScript del player pasa por defecto a la variante
tv. - 2026.02.21: más variantes JS conocidas del player, formatos adaptativos en directo marcados como incompletos, EJS 0.5.0.
ytsearchdate, roto, retirado. - 2026.03.03: player fijado en
9f4cc5e4. La respuesta player de la página web se omite por defecto. - 2026.03.13:
android_vryweb_embeddedarreglados, configuraciones deweb_safariyweb_creatorpedidas, EJS 0.7.0. - 2026.03.17: EJS 0.8.0,
--live-from-startarreglado, el argumentowebpage_clientse respeta siempre.
Junio cambió la máquina, no el sitio. 2026.06.09 deja fuera Node anterior a 22, Deno anterior a 2.3.0 y Bun fuera del rango 1.2.11 a 1.3.14. La misma versión corrige la limpieza de tokens PO en Python 3.14.4+ y en Python 3.15. Era un fallo de cadena. La comprobación proof-of-origin de YouTube sigue ahí.
Julio y agosto:
- 2026.07.04: formatos adaptativos en directo, y una tanda de arreglos de pestañas y listas (metadatos, paginación, colaboradores).
- 2026.08.19: cliente
visionosañadido, respaldos deweb_embedded,android_vrfuera de los clientes por defecto,channel_follower_countpara colaboradores, generación de fragmentos en directo arreglada.
2026.10.21 añadió un cliente tv_samsung y lo puso por defecto, envió un user-agent de Safari para web_embedded y arregló la extracción de los datos iniciales. La etiqueta del 26 de octubre no tocó YouTube. Quitó Python 3.10, exigió Windows 10 o posterior para los binarios oficiales de Windows y actualizó brotli y curl-cffi empaquetados tras sus avisos de seguridad.
SABR sigue fuera de la estable. El descargador de bitrate adaptativo en el servidor de YouTube vive en una línea previa sabr (una build de finales de octubre de 2026 en el fork de bashonly) y no aparece en el changelog de 2026.10.26. La guía de PO Token del proyecto dice que el cliente web expone hoy formatos SABR y pide un token proof-of-origin antes de servir el medio. El yt-dlp estable lo rodea preguntando a otros clientes (tv, tv_samsung, web_embedded, visionos) en lugar de hablar SABR.
Una URL pública basta para los clientes por defecto. Un vídeo privado, borrado o con límite de edad sigue pidiendo cookies, y algunos vídeos con límite de edad solo vuelven si la cuenta puede reproducirlos de verdad.
TikTok
- 29 de enero: se extrae
save_count. Los challenges de JavaScript se resuelven en Python nativo, así que TikTok no necesita el suelo de Deno o Node de YouTube. - 13 de marzo: la resolución de challenges se arregló otra vez, después de romperse.
- 19 de agosto: se arreglaron el extractor y la lista de formatos, y empezaron a funcionar las URLs para compartir (los enlaces cortos
vm.tiktok.com).
Los vídeos públicos y esos enlaces cortos funcionan en 2026.10.26. Una cuenta privada sigue necesitando cookies.
X
En el changelog el extractor sigue llamándose Twitter.
- 29 de enero: se retiró el soporte de login, ya roto. Los posts sin vídeo dentro de objetos
unified_cardya no se extraen. - 21 de febrero: gestión de errores arreglada.
- 9 de junio:
view_countarreglado. - 19 de agosto: eventos de broadcast arreglados.
Un post de vídeo o un broadcast es el caso que funciona. Un post de texto sin medio se soltó en enero: --dump-json en esa URL no debe devolver un vídeo.
SoundCloud
- 21 de febrero: extracción del client id arreglada, y suplantación de navegador añadida. SoundCloud había empezado a rechazar la huella TLS antigua.
- 9 de junio: errores más claros, y
--extractor-retriespara los formatos originales del uploader. - 4 de julio:
uploader_urlen playlists, comentarios y una pasada más amplia de metadatos.
Si quieres el archivo que envió el uploader, y no el transcodificado, el flag de reintento de junio es el que cuenta. Los comentarios y uploader_url aparecen en el info dict a partir de julio.
yt-dlp -x --audio-format mp3 "https://soundcloud.com/artist/track"
2026.07.04 reescribió el extractor y le hizo detectar cookies invalidadas, en lugar de fallar a mitad de una petición. 2026.08.19 arregló la extracción con sesión iniciada.
Los posts públicos funcionan sin sesión. Una cuenta privada sigue necesitando cookies de un navegador con sesión, y un tarro de cookies muerto falla ahora al principio, no a mitad de camino.
Vimeo
2026.01.29 añadió un cliente macos. 2026.08.19 retiró los clientes ios y macos. El cliente añadido en enero no pasó el verano. Las URLs públicas de Vimeo se siguen extrayendo. Los vídeos privados o con contraseña necesitan la contraseña o cookies, como antes.
Facebook, Reddit, Twitch
Facebook. El 29 de enero se retiró el login roto. El extractor de anuncios se arregló ese mismo día y otra vez el 21 de febrero. Solo vídeos públicos, salvo que pases tú las cookies. El login integrado ha desaparecido.
Reddit. El 9 de junio se arregló la extracción sin cuenta. El 4 de julio se retiró el login roto. Los posts públicos vuelven a funcionar en anónimo.
Twitch. El 29 de enero, un canal que no existe pasa a ser un error, no un resultado vacío. Los clips se arreglaron el 9 de junio y otra vez el 21 de octubre. Los subtítulos antiguos rechat se retiraron en junio. VODs y clips públicos.
Otros sitios que se movieron
- Kick: extractores reescritos el 21 de octubre.
- Bandcamp: el extractor weekly reparado más de una vez, suplantación de navegador el 19 de agosto y otro arreglo el 21 de octubre.
- Dailymotion: arreglos del extractor el 29 de enero y el 21 de febrero.
- Patreon: medios inline el 29 de enero, arreglo del extractor el 3 de marzo, nuevo formato de URL el 4 de julio.
- LinkedIn: login roto retirado el 4 de julio.
- Bilibili: extracción de API arreglada el 4 de julio.
- Niconico: detección de errores y shorts el 4 de julio, canales el 21 de octubre.
Lo que 2026.10.26 pide a la máquina
2026.10.26 exige Python 3.11. Python 3.10 ya no está. Los binarios oficiales de Windows necesitan Windows 10 o posterior.
La versión del 21 de octubre avisa de que ejecutables antiguos pueden ser interceptados en el actualizador, tras el aviso de certifi. Si eso te afecta de verdad, instala 2026.10.26 descargándolo, no con yt-dlp -U.
YouTube sigue queriendo un runtime JS actual cuando resuelves challenges en local: Node 22 o más, Deno 2.3.0 o más, y Bun solo de 1.2.11 a 1.3.14. Ese suelo es del 9 de junio.
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"
Comprueba la etiqueta que estás lanzando de verdad con yt-dlp --version. Todo lo anterior a 2026.10.26 se pierde al menos el corte de Python 3.11, y todo lo anterior a 2026.10.21 no tiene tv_samsung entre los clientes por defecto de YouTube.