youtube-dl: Descargar videos de YouTube.com [manual / tutorial en español]
Autor: Antoni Serra Devecchi
Licéncia:
“youtube-dl: Descargar videos de YouTube.com [manual en español]“ by antoni serra devecchi is licensed under a Creative Commons Reconocimiento-No comercial-Compartir bajo la misma licencia 2.5 España License.
En este post se presenta un Manual se uso de esta aplicación.
Indice
- Introducción
- Instalación.
- Uso básico.
- Opciones.
- Ayuda sobre youtube-de: -h
- Información sobre la versión: -v
- Desactivar mensajes (Modo “silencioso”): -q
- Proporcionar el nombre de usuario: -u
- Proporcionar el password: -p
- Leer los datos de usuario del archivo .netrc : -n
- Renombrar el video que se descarga: -o
- Simular una descarga: -s
- Usar el título del video en el nombre del archivo: -t
- Usar el título literal del video en el nombre del archivo: -l
- Obtener la URL completa del video: -g
- Obtener el título del video: -e
- Especificar el código de formato: -f
- Ignorar errores: -i
- Leer las URLs de descarga en un archivo: -a
- Evitar la sobreescritura de archivos existentes: -w
- Descarga de “playlist”.
- Buscar y descargar los resultados de la búsqueda: ytsearch
1.- Introducción
youtube-dl es una sencilla aplicación en linea de comandos, multi-plataforma (UNIX/Linux, Mac OSX, Windows) y de dominio público, que nos permite descargar videos de YouTube.com.
Requiere el intérprete de Python, versión 2.4 o posterior.
Sus autores son:
- Ricardo Garcia Gonzalez: program core, YouTube.com InfoExtractor, metacafe.com InfoExtractor and YouTube playlist InfoExtractor.
- Danny Colligan: YouTube search InfoExtractor, ideas and patches.
- Muchas otras personas, contribuyendo con patches, código, ideas, mensajes, etc.
2.- Instalación
youtube-dl se encuentra presente en los repositorios de la mayoria de las distribuciones Linux, por lo que su obtención e instalación podrá realizarse através de la correspondiente herramienta de gestión de paquetes ( Synaptic, Kpackage, YAST ..etc) o a través de la orden : $apt-get install youtube-dl.
De todas formas, siempre puede procederse a la descarga e instalación “manual” del paquete :
La última versión : [2009.03.28]
Página de la aplicación: [Aquí]
La forma más sencilla de descargar la aplicación es clicar con el botón derecho del ratón sobre sobre el enlace de descarga ( En nuestro caso: [2009.03.28]) y elegir la opción de “nombrar y guardar”. Debe guardarse con el nombre de youtube-dl.py
Instalación en entornos UNIX ( Linux, Mac OSX …):
Dar permisos de ejecución al archivo:
$ chmod xxx youtube-dl.py (xxx debe ser, como mínimo, 555)
Copiar el archivo en un directorio del PATH ( normalmente: /usr/local/bin/ (en Linux) o /usr/bin/ (en Mac OS X)
Instalación en Windows: Instrucciones para la instalación en Windows (En inglés)
3.- Uso básico.
La sintaxis básica de la línea de órdenes de youtube-dl es:
$ youtube-dl [-opciones] URL
Es posible, sobre todo cuando se ha realizado la instalación “manual”, no através de repositorios, que la sintaxis deba ser:
$ youtube-dl.py [-opciones] URL
URL es la url ( o el identificador) del video que deseamos descargar. Por ejemplo:
Si estamos visionando un determinado video en YouTube.com y deseamos descargarlo, nos fijamos en la dirección que aparece en el navegador y la copiamos ( o transcribimos) después del comando youtube-dl
![]()
$ youtube-dl http://www.youtube.com/watch?v=oQM3lRPcZs0
Pulsamos
Puede interrumpirse en cualquier momento la ejecución del programa con
Vemos como van apareciendo una serie de mensajes que nos informan sobre la evolución de la descarga. Finalizada esta se nos indica el nombre con el cual ha sido guardado el video ( en este caso: oQM3lRPcZs0.flv)
Extracting URL "t" parameter... done.
Requesting video file... done.
Video data found at http://74.125.4.29/videoplayback?id=a103379513dc66cd&itag=5&
amp;sparams=id%2Cexpire%2Cip%2Cipbits%2Citag&ip=80.33.161.75&
amp;signature=1E9D673D9CF1FD820AC78E1B4BFB0C57731B0A61.0361C95C570C734BDC054AAA77D77B4E72285CA1&
amp;sver=3&expire=1238772511&key=yt1&ipbits=0
Retrieving video data: 30.9% ( 2.93M of 9.51M) at 117.04k/s ETA 00:57
...............................................
Video data saved to oQM3lRPcZs0.flv
Esta es la forma más sencilla de utilizar youtube-dl. Veamos ahora como modificar su comportamiento mediante el uso de las opciones.
4.- Opciones.
- -h [--help]
- -v [--version]
- -q [--quiet]
- -u [--username]
- -p [--password]
- -o [--output]
- -n [--netrc]
- -s [--simulate]
- -t [--title]
- -l [--literal]
- -g [--get-url]
- -e [--get-title]
- -f [--format] | -b [--best-quality] | -m [--mobile-version]
- -i [--ignore-errors]
- -a [--batch-file]
- -w [--no-overwrites]
Podemos ver que cada opción tiene dos formas. La forma “corta”, ( por ejemplo -h) y la forma “larga” (–help). En este manual vamos a utilizar solo las formas “cortas”.
4.- 1.- Ayuda sobre youtube-dl : -h [--help]
$ youtube-dl -h
Esta opción hace que se nos muestre una pantalla de ayuda, semejante a la que obtenemos invocando las páginas man ($ man youtube-dl).
4.- 2.- Información soble la versión de youtube-dl : -v [--version]
Nos informa sobre la versión instalada.
$ youtube-dl -v
4.- 3.- Desactiva la salida de mensajes durante la ejecución : -q [--quiet]
Mediante esta opción desactivamos la salida de mensajes durante la ejecución de la linea de comandos.
$ youtube-dl -q URL
4.- 4.- Proporcionar el nombre de usuario (si requerido) : -u [--username]
Para poder descargar determinados videos que se requiere haberse registrado en una cuenta, con un nombre de usuario y un passwod. Para acceder a dichos archivos se utilizará esta opción ,para el nombre de usuario, y la opción siguiente [-p], para el password.
$ youtube-dl -u usuario URL
El argumento de la opción, usuario será el nombre de usuario de la cuenta de acceso.
4.- 5.- Proporcionar el password (si requerido): -p [--password]
Como ya se adelantó en [-u], mediante esta opción proporcionaremos el password requerido para el acceso a determinados videos.
$ youtube-dl -p password URL
El argumento de la opción, password será el del password de acceso a la cuenta.
Normalmente las opciones [-u] y [-p] se utilizarán conjuntamente en una misma línea de órdenes:
$ youtube-dl -u templado -p rt0025zj http://www.youtube.com/watch?v=oQM3lRPcZs0
4.- 6.- Leer los datos del usuario del archivo .netrc (si requerido): -n [--netrc]
En linea con las dos anteriores opciones, los datos del usuario de la cuenta pueden ser leidos desde el archivo .netrc: Esta es la función de la opción -n
4.- 7.- Renombrar el video que se descarga : -o [--output]
Esta opción nos permite asignar un nombre al archivo que descargamos.
$ youtube-dl -o archivo.flv password URL
El argumento de la opción, archivo.flv, será el nombre que queramos asignar al archivo que descarguemos.
$ youtube-dl -o dibujos.flv http://www.youtube.com/watch?v=oQM3lRPcZs0
El archivo descargado se guardará con el nombre de dibujos.flv. De no haber utilizado la opción se hubiera guardado con el nombre que le asignó Youtube.com : oQM3lRPcZs0.flv.
Junto con el nombre podemos indicar también el directorio donde deseemos que se guarde el archivo descargado ( por defecto se guardará en el directorio desde donde hayamos invocado youtube-dl):
$ youtube-dl -o Movies/Youtube/dibujos.flv http://www.youtube.com/watch?v=oQM3lRPcZs0
La opción -o nos permite establecer una especie de plantillas para los nonbres de los archivos descargados.
En el nombre del archivo descargado podemos introducir una serie de caracteres especiales de formato que serán sustituidos a medida que se vaya descargando cada video. Dichos caracteres tienen el formato: %(NOMBRE)s.
Los valores del argumento nombre pueden ser:
- id = La secuencia %(NOMBRE)s será reemplazada por el ID del video.
- url = La secuencia %(NOMBRE)s será reemplazada por la URL del video.
- uploader = La secuencia %(NOMBRE)s será reemplazada por el nick de quien subió el video.
- title = La secuencia %(NOMBRE)s será reemplazada por el título literal del video.
- stitle = La secuencia %(NOMBRE)s será reemplazada por el título restringido ( solo caracteres alfanuméricos y guiones) del video.
- ext = La secuencia %(NOMBRE)s será reemplazada por la extensión de formato apropiada (.flv, .mp4, ..).
Las plantilla por defecto es : %(id)s.%(ext)s
Deberemos tener en cuenta que muy posiblemente deberemos “escapar” los paréntesis y el % con \. En este caso la secuencia seria: \%\(NOMBRE\)s
Veamos unos ejemplos:
$ youtube-dl -o dibujos-%(uploader).flv http://www.youtube.com/watch?v=oQM3lRPcZs0
El nombre de archivo resultante de esta orden es : dibujos-kalatexin.flv, donde kalatexin es el nick de quien subió el video.
$ youtube-dl -o dibujos-%(uploader)-%(title)s.flv http://www.youtube.com/watch?v=oQM3lRPcZs0
El título resultante de la anterior linea de órdenes es : dibujos-kalatexin-ケータイ狂想曲 烏田晴奈.flv
donde ケータイ狂想曲 烏田晴奈 es el título original del video.
4.- 8.- Simular una descarga : -s [--simulate]
$ youtube-dl -s URL
Mediante esta opción lo que hacemos es una simulación de la descarga. La descarga no se lleva a cabo.
Puede usarse esta opción para obtener la URL real del video y utilizarla posteriormente en un gestor de descargas.
asd53@ubuntu:~$ youtube-dl -s http://www.youtube.com/watch?v=oQM3lRPcZs0
Retrieving video webpage... done.
Extracting URL "t" parameter... done.
Requesting video file... done.
Video data found at http://tc.v1.cache.googlevideo.com/videoplayback?
id=a103379513dc66cd&itag=5&ip=80.33.161.75
&signature=BD2C8C6A9503E7DBE712850F190E2C6A387C49F8
.84B23C6053ACAEF6ABA4A132A092CD296342DC9E
&sver=2&expire=1238802848&key=yt1&ipbits=0&redirect_counter=1&tt=EC
4.- 9.- Usar el título del video en el nombre del archivo : -t [--title]
Como hemos visto, el nombre por defecto del video responde a la estructura: video_id.flv
Mediante esta opción podemos incorporar el título del video en el nombre del archivo.
$ youtube-dl -t http://www.youtube.com/watch?v=6bKu3OmeXp8
Con la anterior línea de órdenes obtendríamos un archivo denominado (en negrita el título del video):
Naruto_Manga_442_Espa_ol-6bKu3OmeXp8.flv
Esta opción incorpora el llamado “título restringido”: solo comprende caracteres alfanuméricos y guiones. Será con la opción [-l] , tratada a continuación, como podremos incorporar el título literal del video al nombre del archivo output.
4.- 10.- Usar el título literal del video en el nombre del archivo : -l [--literal]
Utilizando esta opción incorporamos el título literal del video en el nombre del archivo.
$ youtube-dl -l http://www.youtube.com/watch?v=6bKu3OmeXp8
El título del archivo que obtendríamos seria (en negrita el título literal del video):
Naruto Manga 442 [Español]-6bKu3OmeXp8.flv
4.- 11.- Obtener la URL completa del video : -g [--get-url]
Esta opción opera en modo simulación.
A partir de la URL o de la parte final de la misma (ID del video) obtenemos la URL completa.
A parir de cualquiera de las dos siguientes órdenes:
$ youtube-dl -g http://www.youtube.com/watch?v=6bKu3OmeXp8
$ youtube-dl -g 6bKu3OmeXp8
Obtendriamos la siguiente salida:
http://www.youtube.com/get_video?video_id=6bKu3OmeXp8&t=vjVQa1PpcFNgzvKVCsrt46zBRJu_bxIZhM6NA2CcHek=
4.- 12.- Obtener el título del video : -e [--get-title]
Esta opción opera en modo simulación.
De manera similar a la opción anterior, a partir de la URL o de la parte final de la misma (ID del video) obtenemos el título literal del mismo.
A parir de cualquiera de las dos siguientes órdenes:
$ youtube-dl -e http://www.youtube.com/watch?v=6bKu3OmeXp8
$ youtube-dl -e 6bKu3OmeXp8
obtendríamos como salida el nombre literal del video:
Naruto Manga 442 [Español]
4.- 13.- Especificar el código de formato : -f [--format]
Esta opción nos posibilita la obtención de las versiones de mejor calidad, cuando estas existan….
$ youtube-dl -f codigo URL
Los valores del argumento codigo pueden ser, entre otros:
- 6 = FLV alta (por defecto)
- 18 = MP4 alta
- 22 = MP4 HD
- 17 = 3GP Móvil
$ youtube-dl -f 17 http://www.youtube.com/watch?v=6bKu3OmeXp8
Con la anterior orden obtenemos :
[youtube] Setting language [youtube] 6bKu3OmeXp8: Downloading video webpage [youtube] 6bKu3OmeXp8: Extracting video information [youtube] 6bKu3OmeXp8: URL: http://www.youtube.com/get_video ?video_id=6bKu3OmeXp8&t=vjVQa1PpcFOH7LoGN7N- nhPofTBdDz5HS3GyF3NtzSg=&fmt=17 [download] Destination: 6bKu3OmeXp8.3gp [download] 100.0% of 4.70M at 26.57k/s ETA 00:00
Fijémonos que al final de la URL completa se ha añadido el código del formato: &fmt=17 y que el nombre del archivo bajado lleva la extensión del formato especificado, .3gp
La opción -b [--best-quality] es un álias de -f 18 ( Mejor calidad)
La opción -m [--mobile-version] es un álias de -f 17 (Versión móvil)
4.- 14.- Ignorar errores : -i [--ignore-errors]
Normalmente el programa se detiene al encontrar el primer error. Con esta opción se le dice que siga intentando la descarga del archivo, a pesar de los errores.
4.- 15.- Leer las URLs en un archivo : -a [--batch-file]
Mediante esta opción decimos al programa que lea la URL en un archivo que especificamos como argumento. Este archivo debe contener una URL por fila.
Veamos como funciona esto.
Creamos el archivo url-youtube.txt con el siguiente contenido:
http://www.youtube.com/watch?v=6bKu3OmeXp8 http://www.youtube.com/watch?v=c_ixrFptvXo
Ejecutando la orden:
$ youtube-dl -a url-youtube.txt
Se irán descargando los videos correspondientes a las URLs del archivo.
En la anterior línea de órdenes se ha supuesto que el archivo url-youtube.txt estaba en el mismo directorio desde donde ejecutamos youtube-ld. Si no fuera este el caso deberia especificarse la ruta al archivo, por ejemplo:
$ youtube-dl -a Documentos/Archivo/Youtube/url-youtube.txt
4.- 16.- Evitar la sobreescritura de archivos existentes : -w [--no-overwrite]
Mediante esta opción decimos al programa que no sobreescriba archivos existentes con el mismo nombre.
5.- Descarga de “playlists”
Podemos usar la URL de una “playlist” de YouTube: youtube-dl descargará todos los videos que contenga la “playlist” correspondiente a la URL especificada.
6.- Buscar y descargar los resultados de la búsqueda: ytsearch
Podemos utilizar la expresión ytsearch realizar una búsqueda en YouTube y bajar los videos resultantes de la búsqueda realizada.
$ “ytsearch:criterio1 criterio2…..”
Se bajará el primer resultado de cada búsqueda realizada en base a los criterios fijados ( criterio1, criterio2 etc..) . Al estar compuesta por varias palabras, es conveniente “entrecomillar” la expresión de búsqueda.
$ youtube-dl “ytsearchN:expresion1 expresion2…”
Se bajará los N primeros resultados de cada búsqueda realizada en base a los criterios fijados ( criterio1, criterio2 etc..)
$ youtube-dl “ytsearchall:expresion1 expresion2…”
Se bajará los todos (all) resultados de cada búsqueda realizada en base a los criterios fijados ( criterio1, criterio2 etc..)
Por ejemplo, la siguiente línea de órdenes nos descargará los dos primeros resultados de la búsqueda realizada en base a los criterios barcelona y miro:
$ youtube-dl “ytsearch2:barcelona miro”
Si con ytsearch utilizamos las opción [-e]obtendriamos los títulos de los resultados de la búsqueda:
$ youtube-dl -e "ytsearch2:barcelona miro" Elipsos Trenhotel: Joan Miro to Barcelona Miro Museum Barcelona Spain w% Linda Powers Cultural Hours
Con la opción [-g] obtendríamos las URLs
$ youtube-dl -g "ytsearch2:barcelona miro" http://www.youtube.com/get_video?video_id=_0WZlsW6nGE& t=vjVQa1PpcFN5sL5vUh0gACyhvZMsrV1kG4mFao4UbeM= http://www.youtube.com/get_video?video_id=OAsrDOw9Qu8& t=vjVQa1PpcFNgs8pctI8egjops8uR2ulVS8gQmsyG2sQ=
