Cómo descargar videos en línea desde la línea de comandos de Linux usando YouTube-DL

Cómo descargar videos en línea desde la línea de comandos de Linux usando YouTube-DL

Hoy en día existen muchas plataformas para compartir videos en línea. Algunos son realmente populares, como YouTube, y otros son un poco más "oscuros". Se pueden encontrar diferentes tipos de contenido en estas plataformas, pero no siempre es posible descargarlos a través de la interfaz web nativa. En este tutorial veremos cómo usar una pequeña utilidad de línea de comando: youtube-dl. Esta utilidad de línea de comando puede descargar dichos videos para nosotros usando una sintaxis muy simple. El siguiente tutorial tiene como objetivo demostrar las capacidades del programa, sin embargo, debe usarse solo cuando sea apropiado, para respetar las leyes de derechos de autor.

En este tutorial aprenderás:

  • Cómo instalar YouTube-DL
  • Cómo descargar videos usando youtube-dl
  • Cómo enumerar los formatos disponibles para un video
  • Cómo descargar un formato específico
  • Cómo transmitir un video directamente a un reproductor multimedia
  • Cómo guardar archivos descargados usando patrones de plantilla
  • Cómo especificar opciones en el archivo de configuración de YouTube-DL
Cómo descargar videos en línea desde la línea de comandos usando YouTube-DL

Requisitos y convenciones de software utilizados

Requisitos de software y convenciones de línea de comandos de Linux
Categoría Requisitos, convenciones o versión de software utilizada
Sistema Distribución independiente
Software youtube-dl
Otro Ninguno
Convenciones # - requiere que los comandos de Linux dados se ejecuten con privilegios raíz directamente como un usuario raíz o mediante el uso de sudo dominio
$-Requiere que los comandos de Linux dados se ejecuten como un usuario regular no privilegiado

Instalación

YouTube-DL es una pequeña utilidad de línea de comandos escrita en Python. El software admite muchas plataformas de intercambio de videos en línea (aquí está la lista completa de sitios compatibles) y está disponible en el repositorio de las distribuciones de Linux más utilizadas como Fedora, Debian (y sus derivados) y Archlinux. Instalarlo es solo una cuestión de invocar el administrador de paquetes de nuestra distribución favorita. En Fedora, por ejemplo, ejecutaríamos:

$ sudo dnf install youtube-dl 

En Debian, en cambio, ejecutaríamos el siguiente comando:

$ sudo apt-get update && sudo apt-get install youtube-dl 

En Archlinux, el paquete está contenido en el comunidad repositorio. Para instalarlo a través de Pacman Corríamos:

$ sudo Pacman -Sy YouTube -DL 

Ser un software desarrollado en Python también es posible obtenerlo a través del Administrador de paquetes de lenguaje de programación, pepita. Para instalar la aplicación solo para el usuario actual, por ejemplo, podríamos ejecutar el siguiente comando (no se necesitan privilegios administrativos):

$ PIP Instale YouTube-DL-User 

Uso básico

Usar youtube-dl es muy simple. Su sintaxis básica es la siguiente:

YouTube-DL [Opciones] URL 


Digamos, por ejemplo, queremos descargar un video del Mozilla de aire plataforma. Todo lo que tenemos que hacer es invocar el programa y aprobar la URL de video como argumento:

$ youtube-dl https: // mozilla.alojado.panopto.com/panopto/páginas/espectador.aspx?ID = EF87C31E-B5B9-45A7-99AD-ACA801514379 [Visor genérico]: Solicitud de advertencia de encabezado: retroceder en el extractor de información genérica. [Generic] Visor: Descarga de la página web [Generic] Visor: Extracción de información [Descargar] Destino:/Home/EgDoc/Videos/The Joy of Coding - Episodio 237 - 13 de enero de 2021.mp4 [descargar] 100% de 1.84GIB en 06:08 

Después de iniciar el comando anterior, debemos encontrar el archivo de video dentro de nuestro directorio de trabajo.

Enumerando los formatos de video disponibles

Por defecto, YouTube-DL, intenta descargar el mejor formato disponible para el video especificado. En algunos casos, sin embargo, es posible que deseemos obtener la lista de todos los disponibles. Todo lo que tenemos que hacer para lograr dicha tarea es invocar la aplicación con el -F opción (abreviatura de --formatos de lista). Veamos un ejemplo usando una URL de YouTube (el video
es del linuxconfig.canal de org):

$ youtube -dl -f https: // www.YouTube.com/reloj?v = iyocjk3pa4w [youtube] iyocjk3pa4w: descarga de la página web [youtube] iyocjk3pa4w: descarga de mpd manifiesto [info] formats disponibles para iyocjk3pa4w: resolución de extensión de código de formato nota 251 webm audio solo audio Audio 3k, webm_dash contenedor, contenedor,, contenedor, @16000 @16000hz (48000hz (420hz (48000hz) Audio solo Dash Audio 49K, M4A_Dash Container, MP4A.40.5@ 48k (22050Hz) 140 M4A Audio solo Dash Audio 130K, M4A_Dash Container, MP4A.40.2@128k (44100Hz) 134 MP4 570X360 Dash Video 15K, MP4_Dash Contenedor, AVC1.4D401E, 30 fps, Video solo 136 MP4 1142X720 Dash Video 54K, MP4_Dash Container, AVC1.64001f, 30 fps, Video solo 278 WebM 228x144 Dash Video 95K, Webm_Dash Contener, VP9, ​​30 fps, Video solo 160 MP4 228x144 Video del tablero 108K, MP4_Dash Contenedor, AVC1.4d400b, 30 fps, solo video 242 WebM 380x240 Dash Video 220k, WebM_Dash Contener, VP9, ​​30 fps, Video solo 133 MP4 380X240 Video de Dash 242k, contenedor MP4_Dash, AVC1.4d400c, 30 fps, solo video 243 Webm 570x360 Dash Video 405k, WebM_Dash Contener, VP9, ​​30 fps, Video SOLO 244 Webm 760x480 Video del tablero 752k, contenedor webm_dash, VP9, ​​30fps, solo video 135 MP4 760X480 Dash Video 1155k, MP4_Dash, AVC1, AVC1, AVC1, AVC1, Avc1.4D400A, 30 fps, Video solo 247 WebM 1142x720 Dash Video 1505K, WebM_Dash Container, VP9, ​​30 fps, Video SOLO 18 MP4 570X360 360P 110K, AVC1.42001e, 30 fps, MP4A.40.2@ 96k (44100Hz), 280.25KIB 22 MP4 1142X720 720p 169K, AVC1.64001f, 30 fps, mp4a.40.2@192k (44100Hz) (mejor) 

La salida del comando está muy bien formateada. Podemos detectar fácilmente la extensión de video, la resolución de video, la codificación utilizada y también el tamaño del archivo.

¿Cómo podemos especificar el formato que queremos descargar?? Todo lo que tenemos que hacer es invocar youtube-dl de nuevo, pero esta vez nosotros el -F opción (minúscula), que es la corta --formato, y hacer referencia al formato que queremos descargar proporcionando el código de formato informado en la primera columna de la salida anterior como su argumento. Digamos, por ejemplo, queremos descargar el 570x360 versión del video, con el mp4 extensión; Corríamos:

$ youtube -dl -f 18 https: // www.YouTube.com/reloj?v = iyocjk3pa4w [youtube] iyocjk3pa4w: descarga de la página web [youtube] iyocjk3pa4w: descarga de MPD manifiesto [descargar] destino: mensaje de impresión en pantalla usando la tubería nombrada y el shell de bash - ejemplo 01 -iyocjk3pa4w.MP4 [Descargar] 100% de 280.25kib en 00:00 

También es posible descargar todos los formatos disponibles invocando YouTube-DL con el --todos los formatos opciones, o instruir a la aplicación que prefiera los formatos gratuitos utilizando --Formaciones sin preferencias.

Obtener solo la pista de audio

A veces es posible que deseemos obtener solo la pista de audio para la fuente de video especificada. En esos casos podemos hacer dos cosas: la primera es descargar el formato solo de audio si está disponible. Apegarse a la salida del ejemplo anterior, para descargar el opus Audio Track, ejecutaríamos:

$ youtube -dl -f 251 https: // www.YouTube.com/reloj?V = iyocjk3pa4w 

La segunda solución más general, es extraer el audio de la pista de video. Para realizar dicha operación, tenemos que invocar YouTube-DL con el -X opción (--extracto de audio). Para que la extracción funcione correctamente, deberíamos tener ffmpeg y ffprobe (o avconv y Avprobe) instalado en nuestro sistema. Para extraer el audio para la URL que estamos usando como ejemplo, ejecutaríamos:

$ youtube -dl -x https: // www.YouTube.com/reloj?V = iyocjk3pa4w 


¿Qué pasa si queremos especificar el formato de audio para la pista extraída?? Todo lo que tenemos que hacer es usar el --formato de audio opción. Esta opción tiene sentido solo si se usa con -X. Podemos elegir el formato de audio entre: "Best" (el predeterminado), "AAC", "FLAC", "MP3", "M4a", "Opus", "Vorbis", "Wav". Para obtener un archivo "FLAC", por ejemplo, ejecutaríamos:

$ youtube-dl -x --audio-format flac https: // www.YouTube.com/reloj?V = iyocjk3pa4w 

Cuando usamos el -X Opción, se descarga el archivo de video y luego la conversión se realiza para obtener la pista de audio. Una vez que se realiza la conversión, el archivo de video se elimina automáticamente. En caso de que queramos mantenerlo, podemos usar el -k opción (abreviatura de --Video de mantenimiento).

Transmitir un video directamente a un reproductor multimedia

Otra característica muy buena de YouTube-DL es la capacidad de transmitir un video directamente a un reproductor multimedia especificado. Todo lo que tenemos que hacer para lograr la funcionalidad es instruir a YouTube-DL para transmitir los medios a stdout (salida estándar) e invocar un reproductor multimedia capaz de leer de stdin (entrada estándar). Podemos usar una tubería de carcasa para realizar la operación. Suponiendo que estamos usando VLC, Corríamos:

$ youtube -dl -o -https: // www.YouTube.com/reloj?v = iyocjk3pa4w | VLC - 

Si todo va como se esperaba, se lanzará el reproductor de video y el video especificado se transmitirá después de un pequeño tiempo de almacenamiento en búfer.

Guardar videos en un directorio específico

Cuando descargamos un archivo, es posible que necesitemos especificar un directorio donde se debe descargar, que no es nuestro directorio de trabajo actual. Para realizar tal operación podemos hacer uso de -O opción. Por ejemplo, para descargar el archivo en el ~/Videos Directorio que podríamos ejecutar:

$ youtube -dl -o '~/videos/%(título) s.%(ext) s 'https: // mozilla.alojado.panopto.com/panopto/páginas/espectador.aspx?ID = EF87C31E-B5B9-45A7-99AD-ACA801514379 

Veamos lo que hicimos en el ejemplo anterior. El -O Opción Permitamos una especie de sistema de "plantilla" para especificar cómo guardar un archivo descargado. En nuestro ejemplo, especificamos que el archivo debe descargarse dentro del ~/Video El directorio y el archivo deben llevarse el nombre del título de video seguido de un punto y por la extensión del video. Cada elemento de la plantilla debe especificarse mediante un símbolo porcentual (De %) seguido del elemento entre paréntesis y por formateo de operaciones: en este caso utilizamos un s Así que instruimos para formatear los elementos como una cadena. En este caso, el archivo se guardará como:

'/Home/EgDoc/Videos/The Joy of Coding - Episodio 237 - 13 de enero de 2021.mp4 ' 

Hay varios elementos que se pueden usar para construir un nombre de archivo. Algunos ejemplos:

Nombres Significado
identificación Identificador del video
título El título de video
extendido La extensión del nombre de archivo de video
cargador El nombre del cargador de video
canal El nombre del canal alojando el video


Uso del archivo de configuración

En lugar de especificar las opciones buscadas cada vez que invocamos YouTube-DL, podemos configurarlas una vez dentro de su archivo de configuración, por lo que se usan automáticamente. YouTube-DL busca un archivo de configuración de todo el sistema en /etc/youtube-dl.confusión, y para un archivo por usuario en ~/.config/youtube-dl.confusión. Es posible que los archivos no existan de forma predeterminada, por lo que es posible que necesitemos crearlos.

Dentro del archivo, las líneas que comienzan con un # El símbolo se considera como comentarios, y las opciones deseadas deben especificarse una por línea. Por ejemplo, para adoptar siempre el patrón de descarga que utilizamos en el ejemplo anterior, dentro del archivo de configuración, simplemente podríamos escribir:

# Descargar usando el patrón especificado -o '~/videos/%(título) s.%(ext) s ' 

Conclusiones

En este tutorial aprendimos el uso básico de la utilidad de línea de comandos de YouTube-DL. El programa se puede usar para descargar videos de varias plataformas de intercambio de videos. Vimos cómo instalarlo utilizando los administradores de paquetes de las distribuciones de Linux más utilizadas y a través de pepita. Vimos cómo descargar un video, cómo enumerar todos los formatos disponibles y cómo instruir a la aplicación para descargar uno específico. También vimos cómo transmitir un video directamente a un reproductor multimedia y cómo descargarlo y guardarlo usando una serie de elementos de plantilla. Una vez más, una cosa muy importante para recordar es que la aplicación solo debe usarse para descargar videos donde se les permita, para asegurarse de no infringir ninguna ley de derechos de autor.

Tutoriales de Linux relacionados:

  • El mejor software de edición de video en Linux
  • Cómo obtener y cambiar los metadatos de video en Linux
  • Cosas para instalar en Ubuntu 20.04
  • YT-DLP vs YouTube-DL
  • El mejor reproductor de video para Linux
  • Comandos de Linux: los 20 comandos más importantes que necesitas ..
  • Comandos básicos de Linux
  • Cosas que hacer después de instalar Ubuntu 20.04 fossa focal Linux
  • Sistema colgado de Linux? Cómo escapar a la línea de comando y ..
  • Vim Editor Basics en Linux