468 - yt-dlp es una pura maravilla. Eliminando carazas
yt-dlp una herramienta imprescindible para quien quiera relacionarse con #YouTube en #Linux y sacarle el máximo partido, seas creador de contenido o no
Como bien sabes, hace unos días, hice un Comunidad Linux, con Alberto, el productor, realizador y todo de Papá Friki y Charlando con…. La cuestión es que durante la charla, me comentó sobre las caras extrañas que salían en los vídeos que aparecían en Mastodon. Ya me había dado cuenta de este problema hacía tiempo, pero no le había prestado ninguna importancia. Es mas, siempre lo había achacado a ser muy poco fotogénico. También te tengo que decir que no soy de poner poses en las fotos, que quieres que te diga. Sin embargo, el simple mencionarlo de Alberto, hizo que me quedara con la mosca detrás de la oreja. Sin embargo, cuando Alex Pro, el productor, realizador y todo de Deshago Geek, hizo el mismo comentario, me decidí a ponerle solución al problemilla. Aquí es cuando vino de nuevo al rescate yt-dlp, y que de nuevo viene a confirmar que yt-dlp es una pura maravilla. No tanto porque me haya permitido eliminar mis carazas, sino por todas las opciones que ofrece.
yt-dlp es una pura maravilla
Un poquito de background
Hace aproximadamente un año, en el episodio 371 del podcast, que titulé ¿El fin de YouTube-DL?¿Termina una era?, te hablaba del ciclo de vida del sofware, en concreto de YouTube-DL, y porque y para que lo estaba utilizando. Así mismo, te indiqué que me había decidido a cambiarlo por yt-dlp. Te recomiendo este episodio del podcast si estás interesado en el proyecto.
Desde luego, desde aquel momento, esta herramienta se ha convertido en mi navaja suiza para todo lo que tiene que ver con YouTube. Hasta tal punto, que prefiero utilizar yt-dlp, antes que la propia API de YouTube para obtener información de los vídeos. Con eso te lo digo todo y no te digo nada.
Sobre yt-dlp
yt-dlp, es un software libre y de código abierto que se utiliza para descargar videos y audio de sitios web de alojamiento de contenido multimedia como YouTube, Vimeo, Dailymotion, entre otros. yt-dlp es una bifurcación del proyecto original de youtube-dl y se ha mantenido activo desde que youtube-dl fue eliminado de GitHub en octubre de 2020. yt-dlp ofrece más funciones y opciones que youtube-dl, y también se actualiza con frecuencia para mantenerse al día con los cambios en los sitios web de alojamiento de contenido.
Me llama la atención, porque no está liberado bajo licencia MIT, con el que normalmente libero todo mis desarrollos, sino que está licenciado con unlicense.
Sobre MIT y Unlicense
Tanto la Licencia MIT (Massachusetts Institute of Technology) como la Licencia Unlicense son licencias de software de código abierto que permiten a los usuarios utilizar, modificar y distribuir el software sin restricciones significativas. Sin embargo, hay algunas diferencias clave entre ellas:
- Copyleft: La Licencia MIT es una licencia de copyleft débil, lo que significa que permite la redistribución y modificación del software, incluso en software propietario, siempre y cuando se mantengan los derechos de autor y la licencia original. La Licencia Unlicense, por otro lado, es una licencia de dominio público que no tiene requisitos de copyleft, lo que significa que el software se puede utilizar de cualquier manera, incluso sin mantener los derechos de autor y la licencia original.
- Exención de responsabilidad: La Licencia MIT incluye una exención de responsabilidad para el autor original del software, que no se hace responsable de ningún daño causado por el software. La Licencia Unlicense no incluye esta exención de responsabilidad.
- Fuentes y archivos de licencia: La Licencia MIT requiere que se incluya el aviso de derechos de autor y la licencia en todas las copias y modificaciones del software, así como la inclusión del archivo de licencia original. La Licencia Unlicense no tiene requisitos específicos para la inclusión de fuentes y archivos de licencia.
En resumen, la Licencia MIT es una licencia de código abierto que permite la redistribución y modificación del software, incluso en software propietario, siempre y cuando se mantengan los derechos de autor y la licencia original, mientras que la Licencia Unlicense es una licencia de dominio público que permite el uso y la modificación del software de cualquier manera, sin restricciones significativas.
Pues me sigo quedando con la licencia MIT para mis proyectos
¿Que diferencias hay entre yt-dlp y youtube-dl?
Por insistir un poco en las diferencias, indicar que yt-dlp es una bifurcación del proyecto original youtube-dl y tiene algunas diferencias significativas en comparación con youtube-dl. Algunas de estas diferencias incluyen:
- Actualizaciones más frecuentes: yt-dlp se actualiza con mayor frecuencia que youtube-dl, lo que significa que los usuarios pueden acceder a las últimas funciones y correcciones de errores más rápidamente.
- Soporte para más sitios web: yt-dlp es compatible con más sitios web de alojamiento de contenido multimedia que youtube-dl, lo que significa que los usuarios pueden descargar videos y audio de una variedad de fuentes.
- Mejoras en la calidad y formato de salida: yt-dlp ofrece más opciones de calidad y formatos de salida que youtube-dl, lo que permite a los usuarios personalizar sus descargas según sus necesidades.
- Funciones adicionales: yt-dlp incluye algunas funciones adicionales que no están disponibles en youtube-dl, como la descarga de subtítulos incrustados, el procesamiento de listas de reproducción más rápidamente, la descarga de videos de YouTube 4K sin problemas y la eliminación automática de anuncios.
En general, yt-dlp es una alternativa más avanzada y actualizada a youtube-dl y ofrece a los usuarios más flexibilidad y opciones para descargar contenido multimedia de diferentes sitios web.
Algunos ejemplos prácticos
En general, hoy con el consumo en streaming de contenido, es muy probable que ni conozcas yt-dlp, ni la otra herramienta. Sin embargo, para los que nos dedicamos a crear contenido, se trata de una herramienta muy poderosa. Sin embargo, por supuesto, no solo se trata de una herramienta para creadores de contenido, sino que lo puedes utilizar en innumerables ocasiones para distintos propósitos. Sobre todo, para su uso original, es decir, cuando quieres ve un vídeo en el caso de que puede que tengas, o no, cobertura para verlo.
Algunos ejemplos prácticos de uso de yt-dlp
, te los muestro a continuación,
- Descargar un solo video de YouTube en la mejor calidad disponible:
yt-dlp "https://www.youtube.com/watch?v=VIDEO_ID"
Reemplaza «VIDEO_ID» con el identificador del video de YouTube que deseas descargar.
- Descargar un video de YouTube en un formato y calidad específicos:
yt-dlp -f FORMATO -o NOMBRE_ARCHIVO "https://www.youtube.com/watch?v=VIDEO_ID"
Reemplaza «FORMATO» con el formato de video que deseas descargar (por ejemplo, mp4, webm, etc.), «NOMBRE_ARCHIVO» con el nombre que deseas darle al archivo descargado y «VIDEO_ID» con el identificador del video de YouTube que deseas descargar.
- Descargar solo el audio de un video de YouTube en formato mp3:
yt-dlp -x --audio-format mp3 "https://www.youtube.com/watch?v=VIDEO_ID"
Este comando descargará solo el audio del video de YouTube en formato mp3.
- Descargar una lista de reproducción completa de YouTube:
yt-dlp -o '%(playlist_index)s - %(title)s.%(ext)s' "https://www.youtube.com/playlist?list=PLAYLIST_ID"
Reemplaza «PLAYLIST_ID» con el identificador de la lista de reproducción de YouTube que deseas descargar. Este comando descargará todos los videos de la lista de reproducción y los nombrará de acuerdo al número de la pista en la lista y al título del video.
- Descargar solo un fragmento específico de un video de YouTube:
yt-dlp --start TIME_INICIO --end TIME_FIN "https://www.youtube.com/watch?v=VIDEO_ID"
Reemplaza «TIME_INICIO» y «TIME_FIN» con los tiempos de inicio y fin del fragmento que deseas descargar en formato HH:MM:SS. Este comando descargará solo el fragmento del video de YouTube especificado.
Este lo tengo que probar, para
- Descargar un video de YouTube con subtítulos incrustados:
yt-dlp --write-sub --sub-lang LANG "https://www.youtube.com/watch?v=VIDEO_ID"
Reemplaza «LANG» con el código de idioma de los subtítulos que deseas descargar. Este comando descargará el video de YouTube junto con los subtítulos incrustados en el idioma especificado.
- Descargar un video de YouTube utilizando un archivo de opciones de yt-dlp:
yt-dlp -a opciones.txt "https://www.youtube.com/watch?v=VIDEO_ID"
Crea un archivo de texto llamado opciones.txt
y agrega las opciones de yt-dlp que deseas utilizar (por ejemplo, el formato de salida, la calidad, etc.). Luego, ejecuta este comando para descargar el video de YouTube utilizando las opciones especificadas en el archivo.
Descargando información
Como te decía, en mi caso, he llegado a reemplazar la API de YouTube, directamente por yt-dlp
, porque me proporciona mas y mejor información. Un caso práctico de esto, es obtener información sobre los últimos vídeos de un canal o de una lista,
Para obtener un listado de los últimos vídeos publicados en un canal de YouTube utilizando yt-dlp
, puedes utilizar el siguiente comando:
yt-dlp --dateafter now-1week "https://www.youtube.com/c/NOMBRE_DEL_CANAL/videos"
Reemplaza NOMBRE_DEL_CANAL
con el nombre del canal de YouTube del que deseas obtener los últimos vídeos. Este comando descargará la lista de los últimos vídeos publicados en el canal en los últimos 7 días. Puedes ajustar el período de tiempo especificando diferentes valores para el parámetro --dateafter
. Por ejemplo, si deseas obtener los últimos videos publicados en los últimos 3 días, puedes usar --dateafter now-3days
.
El comando anterior descargará una lista de los últimos vídeos publicados en el canal en formato JSON
. Si solo deseas ver los títulos de los vídeos en lugar de descargar la lista completa, puedes agregar el siguiente comando para filtrar solo los títulos:
yt-dlp --dateafter now-1week --get-title "https://www.youtube.com/c/NOMBRE_DEL_CANAL/videos"
Este comando imprimirá una lista de los títulos de los últimos vídeos publicados en el canal.
Y si en lugar de querer descargar los títulos quisiera descargar el id
del vídeo ¿como lo haría?
En el caso de que quieras descargar solo los IDs
de los últimos videos publicados en un canal de YouTube en lugar de los títulos, puedes utilizar la opción --get-id
en lugar de --get-title
. El comando quedaría de la siguiente manera:
yt-dlp --dateafter now-1week --get-id "https://www.youtube.com/c/NOMBRE_DEL_CANAL/videos"
Reemplaza NOMBRE_DEL_CANAL
con el nombre del canal de YouTube del que deseas obtener los últimos vídeos. Este comando imprimirá una lista de los IDs de los últimos vídeos publicados en el canal en los últimos 7 días.
Ten en cuenta que al utilizar la opción --get-id
, no se descargará ninguna información adicional sobre los vídeos, solo los IDs. Si deseas descargar información adicional sobre los vídeos, como sus títulos, descripciones o fechas de publicación, deberás utilizar el comando anterior sin la opción --get-id
.
Mis casos de uso
Llegados a este punto, es probable que te estés preguntado, o no, para que utilizo yo, yt-dlp. Esto, mas o menos, ya te lo adelanté hace un año. Sin embargo, durante este último año, he ampliado los casos de uso, significativamente, sobre todo, al incorporar a diario Rust a mi rutina. Empiezo por los casos directos.
Publicar en redes sociales
Para publicar en redes sociales, en concreto en Mastodon y Twitter, los vídeos que voy sacando. Esto es precisamente, el origen de este podcast, y el comentario tanto de Alberto como de Alex Pro, referentes a mis carazas. En este caso, lo que hago es, una vez al día, miro si hay un nuevo vídeo en el canal. En el caso de que haya un nuevo vídeo, lo descargo, lo recorto a los primeros 45 segundos y lo publico tanto en una red como en otra.
Además, y como te decía a raíz de los comentarios de Alberto y Alex, he decidido descargar el thumbnail del vídeo. En este caso, te tengo que decir, que había comenzado a utilizar la propia API de YouTube. Sin embargo, el tamaño máximo que descarga con la API es de 640 px, creo recordar, mientras que utilizando yt-dlp
, llegas hasta los 1280 (por lo menos). Una razón mas para utilizar esta herramienta.
Mastodon, te permite especificar el thumbnail o miniatura a poner en las publicaciones de los vídeos. Aunque, tengo que confesarte, que no está muy bien documentado, o al menos, yo no lo encontré sencillo. Es mas, le pregunté a ChatGPT, por si el sabía, y no acertó ni una.
Además, aproveché para poner descripción al vídeo. Si te das cuenta, o al menos, esto es lo que sucede en Megalodon, si, el vídeo no tiene alt
, aparece una admiración sobre impresionada. Añadiendo esta descripción problema resuelto, con un resultado mucho mejor del que yo esperaba, y además he eliminado mis carazas de los vídeos… Al menos a primera vista, porque en cuanto que empieza el vídeo, aparecen las carazas.
Publicar en FediverseTV
Una de las razones principales para montar toda esta película, fue la de publicar en FediverseTV. La razón para ello, es clara, apostar por la cultura libre. Sinceramente, no tiene mucho sentido, que esté hablando de las bondades de Linux, Python, Rust, etc, y no utilice una plataforma donde se apueste precisamente por esto.
Así que, en cuanto tuve la posibilidad de publicar en FediverseTV me puse manos a la obra. Actualmente subo primero los vídeos a YouTube, la razón para esto, es porque todavía no tengo resuelta la subida programada a esta plataforma, mientras que subirlo a FediverseTV fue cuestión de coser y cantar.
Así, primero subo los vídeos a YouTube y los dejo programados con todo el contenido correspondiente a una semana. Este contenido lo voy publicando día a día, y cuando sale publicado en YouTube, lo descargo utilizando yt-dlp
y lo subo a FediverseTV. Aquí, en FediverseTV, todavía tengo que hacer algo de investigación para asignar los vídeos a listas y estas cosas, pero estoy realmente satisfecho de como está quedando todo.
Escuchando vídeos
De esto ya te hablé en el episodio 446 del podcast titulado escuchar YouTube en formato podcast. Y es que uno de los proyectos que había hecho en Rust era precisamente un servicio para escuchar vídeos de YouTube.
Más información,
cuando dices escuchar videos de youtbe como si fuese podcast es la misma funcion que obtienes cuando pagas youtube que apagas la pantalla del celular y sigue el youutbe funcionando asi lo escuchas sin ver el video. estare en lo cierto? de ser asi cuales son los comandos
Buenas tardes, quisiera saber cuales son los comandos para descargar la información de video y audio disponibles para el video que quisiera descargar. En youtube-dl habia un comando para verlos y poder elegirlos, y otro para descargar tu elección
Aqui es igual -F con el video te dice todos los formatos de audio y video que puedes elegir
Cuando intento usar estos parámetros: yt-dlp –start TIME_INICIO –end TIME_FIN, me lanza un erro y me dice que la opción –start no existe.
¿Habrá otra manera de descargar solo un fragmento específico?