Realizar un Script para descargar Video o Audio con Youtube-dl en Ubuntu

En otro post publique como Descargar vídeo de YouTube en Ubuntu con youtube-dl y en otro como Descargar el audio de un vídeo de YouTube valga la redundancia con youtube-dl, uhh hoy me puse a pensar en como simplificarme la vida con este grandioso programa (youtube-dl) en mi sistema Ubuntu y se me vino la idea de utilizar la Programación en Bash, es decir crear un Script que simplifica la descarga ya sea de un vídeo o el audio del mismo con el programa youtube-dl, y quiero compartir con ustedes lo que es para mi una buena idea je je “modestia aparte…”

Lo primero que se preguntaran, ¿Que es un Script?, bueno según la pagina http://doc.ubuntu-es.org/Script,

 Un Script (o guión) para Bash es un archivo de texto que contiene una sucesión de comandos de Shell que pueden ejecutar diversas tareas de acuerdo al contenido del texto del guión. De esta forma pueden automatizarse muchas acciones para alguna necesidad particular o para la administración de sistemas. El guión debe escribirse en un orden lógico pues Bash ejecutará el guión en el orden en que se escriben las líneas, de la misma forma que cuando se realiza una tarea cualquiera por una persona, por ejemplo; primero hay que poner la escalera y luego subirse.

Sabiendo esto pongámonos manos a la obra lo primero que debemos de hacer es abrir nuestro Editor de Texto mejor conocido en Ubuntu como Gedit y copiar el siguiente código de programación tal cual como esta:

#!/bin/bash
#script para descargar vídeo o audio de youtube.com
echo «»
echo «**SCRIPT PARA DESCARGAR VIDEOS O AUDIO CON YOUTUBE-DL**»
echo «»
echo «**MENU DE OPCIONES**»
echo «»

while [ «$OPCION» != 3 ]
do
echo «[1] Descargar Video»
echo «[2] Descargar Audio»
echo «[3] Salir»
read -p «Ingrese una opción: » OPCION

case $OPCION in
1)echo «»
echo «..:: Para Descargar tu Vídeo sigue los siguientes pasos ::..»
echo «»
echo «1.- Ingresar URL»
read URL
echo «»
echo «2.- Lista de Formatos Disponibles»
youtube-dl -F $URL
echo «»
echo «3.- Elige el Numero del Formato a Descargar: »
read num
cd Vídeos/
echo «»
echo «..::Descargando Video::..»
echo «»
youtube-dl -f$num $URL
break ;;

2)echo «»
echo «Nota: Por default descargara nuestro archivo de audio en formato .mp3 con una calidad de 128K en la carpeta Música»
echo «»
echo «1.- Ingresar URL»
read URL
cd Música/
echo «»
echo «..::Descargando Audio::..»
youtube-dl –extract-audio –audio-format mp3 –audio-quality 128K $URL
break ;;

3);;
*) echo «Opción ingresada invalida, intente de nuevo»;;

esac
done
exit 0

Simplificando el código lo que hace es presentarnos un menú con tres opciones, (descargar vídeo, descargar audio y salir ), el cual ejecuta una seria de procedimiento dependiendo la opción que elijamos.

Ok, después de haber copiado nuestro código en el editor de texto (gedit), lo que nos queda es guardarlo en nuestro Escritorio, se debe guardar tal cual como se muestra en la imagen, variando por supuesto el nombre que ustedes le quieran dar, eso si, sin ninguna extensión de archivo solo el nombre

Guardar

Después de crear nuestro archivo, y guardarlo con el nombre que le hayamos dado, en este caso Descarga, tendremos que abrir nuestra terminal con ctrl+alt+t o mediante el menú, para luego teclear en la misma el siguiente comando

 sudo nautilus

El cual nos permite abrir nuestro nautilus como modo administrador, al estar abierto ubicarnos en la carpeta sistema de archivos, dentro de esta, ubicar la carpeta bin y entrar en ella, al estar dentro agarrar nuestro Script creado anteriormente, y copiar, pegar dentro de esta carpeta. Al haber realizado lo anterior, solo nos falta un paso y es darle permiso de ejecución a nuestro Script como? Simple ya después de haberlo copiado a nuestra carpeta “bin” solo tenemos que dar clic con el segundo botón encima de el archivo, y en el menú que se despliega elegir la opción Propiedades, dirigirnos a la pestaña Permiso y colocarlo tal cual como sale en la siguiente imagen

Permiso

y listo con esto ya cerramos a nautilus, lo de colocar nuestro Script en la carpeta “bin” y darle permiso de ejecución es para que simplemente solo tengamos que teclear en nuestra terminal el nombre de nuestro Script y podremos ver como se ejecuta el mismo.

 Veamos un ejemplo de nuestro Script en ejecución

imagen2

Como podemos apreciar en la imagen al ejecutarlo nos muestra un menú pidiéndonos que elijamos una opción, si se eligiese la opción 1, nos saldría lo siguiente

imagen2.1

Nos pide que sigamos una serie de pasos para cumplir con nuestro cometido como primer paso nos pide la URL del Vídeo, la cual copiamos desde nuestro navegador y la pegamos en esta parte del programa

En el segundo paso nos despliega una serie de formatos disponible del Vídeo a descargar

imagen2.2

En el tercer paso nos pide que elijamos el numero del formato en el cual queremos descargar nuestro Vídeo

imagen2.3

y listo después de haber cumplido los tres pasos anteriores nos muestra que se esta descargando el vídeo

imagen 2.4

Nota: si se pregunta en que carpeta guarda el vídeo, por default la guarda en la carpeta del sistema /Vídeo igual ocurre si descargamos el audio de un vídeo lo guarda por default en la carpeta /Música

Espero que le haya servido de ayuda, Gracias por leer mis publicaciones…

 Nota: todas las url utilizadas en este post son solo de ejemplo.

Etiquetado , , , , , , , , ,

21 pensamientos en “Realizar un Script para descargar Video o Audio con Youtube-dl en Ubuntu

  1. fernandofvh dice:

    Hola gilberto. Fenomenal idea la del script. He segido paso a paso las instrucciones pero al introducir la palabra descarga (así lo he llamado yo) y elegir la opción 1, 2 ó 3 me sale esto: “**SCRIPT PARA DESCARGAR VIDEOS O AUDIO CON YOUTUBE-DL**”
    “”
    “**MENU DE OPCIONES**”
    “”
    “[1] Descargar Video”
    “[2] Descargar Audio”
    “[3] Salir”
    “Ingrese1
    /bin/descarga: línea 16: read: `opción:’: no es un identificador válido
    “Opción ingresada invalida, intente de nuevo”
    ¿Algo he hecho mal? Un saludo y gracias por tu tiempo

  2. fernandofvh dice:

    Hola Gilberto Gracias por contestar. La verdad es que copié y pegué el código. De todas formas he eliminado el acento de opción y siguo teniendo el mismo resultado

  3. […] hablamos de repetir varias veces la misma tarea. Gilberto Trujillo en su blog ha creado un sencillo script que simplifica y mucho el uso de […]

  4. carlosigls dice:

    Yo tenía el mismo problema que fernandofvh y lo solucione poniendo solo: “Ingrese:” OPCION a sí si me funcionó de la otra forma nada.

  5. veo que a muchos le esta causando problemas la linea

    read -p “Ingrese una opción: ” OPCION

    si es así cambien esa linea por esta

    echo -n «Ingrese una opción: »
    read OPCION

    debería de solucionar el problema…
    en si en estas dos nuevas linea, separamos el mensaje, de la lectura de la variable.

    • JEsus dice:

      La verdad es que solo copiaron el texto y lo pegaron sus errores son por que lo que pegan en el script no son comillas, deberían borrar lo que parece comillas y ponerlas directamente del teclado.

  6. fernandofvh dice:

    Pues después de innumerables vueltas lo he conseguido. Muchas gracias a todos y especialmente a Santiago que es el que al menos conmigo ha dado en la tecla. Y funcionando que es gerundio. Gilberto eres un genio. Saludos a todos.

  7. Kurt dice:

    Una tontería que yo pasé por alto: hay que tener instalado el programa «youtube-dl».
    «sudo apt-get install youtube-dl».
    Y va perfectamente (con los ajustes arriba comentados). Cosas de despistaos…

  8. mariosweb dice:

    efectivamente hay que usar

    echo -n “Ingrese una opción: ”
    read OPCION

    pero sale el siguiente error al tratar de bajar el audio:

    WARNING: Falling back on generic information extractor.
    Traceback (most recent call last):
    File «/usr/bin/youtube-dl», line 4645, in
    main()
    File «/usr/bin/youtube-dl», line 4636, in main
    _real_main()
    File «/usr/bin/youtube-dl», line 4620, in _real_main
    retcode = fd.download(all_urls)
    File «/usr/bin/youtube-dl», line 869, in download
    ie.extract(url)
    File «/usr/bin/youtube-dl», line 1135, in extract
    return self._real_extract(url)
    File «/usr/bin/youtube-dl», line 2186, in _real_extract
    self._downloader.trouble(u’ERROR: Invalid URL: %s’ % url)
    UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xe2 in position 0: ordinal not in range(128)

    Que se hace entonces?

  9. mariosweb dice:

    Agrego al comentario anterior que funcionó perfecto al bajar el video completo. Pero no funciona bajar solo el audio…
    Alguien puede ayudar al respecto? Gracias de antemano.

  10. Agradezco al autor de este post y a quienes colaboraron a resolver el error de la línea:
    read -p “Ingrese una opción: ” OPCION

    Me son de gran ayuda!

  11. […] Realizar un Script para descargar Video o Audio con Youtube-dl en Ubuntu. […]

  12. Damian dice:

    Buenas tardes, quiero saber si existe alguna forma de modificar el script para que cuando descarguemos listas de reproducción, se salte los videos eliminados y continue con la descarga.
    Esta excelente el script.

    • Damian dice:

      Señor TSU. Gilberto Trujillo me tome el atrevimiento de hacerle una pequeña modificación a su SCRIPT, espero no se enoje y que sirva para toda la comunidad.
      Esta modificación lo que hace es que en la lista que intentamos descargar hay algún video eliminado o por «x» motivo no se puede descargar, esta se saltee ese video y pase al siguiente es decir continue con los que si se pueden descargar.
      Lo que agregue lo saque de acá «http://linceus.blogspot.com.ar/2014/01/descargar-videos-y-listas-de.html»
      ——————————————————————————————————————————————————————————————————————-
      Bueno sin más rodeo el script quedaría así:

      #!/bin/bash
      #script para descargar vídeo o audio de youtube.com
      echo “”
      echo “**SCRIPT PARA DESCARGAR VIDEOS O AUDIO CON YOUTUBE-DL**”
      echo “”
      echo “**MENU DE OPCIONES**”
      echo “”

      while [ «$OPCION» != 3 ]
      do
      echo “[1] Descargar Video”
      echo “[2] Descargar Audio”
      echo “[3] Salir”
      read -p “Ingrese-una-opcion” OPCION

      case $OPCION in
      1)echo “”
      echo “..:: Para Descargar tu Vídeo sigue los siguientes pasos ::..”
      echo “”
      echo “1.- Ingresar URL”
      read URL
      echo “”
      echo “2.- Lista de Formatos Disponibles”
      youtube-dl -citk -F $URL
      echo “”
      echo “3.- Elige el Numero del Formato a Descargar: “
      read num
      cd Vídeos/
      echo “”
      echo “..::Descargando Video::..”
      echo “”
      youtube-dl -citk -f$num $URL
      break ;;

      2)echo “”
      echo “Nota: Por default descargara nuestro archivo de audio en formato .mp3 con una calidad de 128K en la carpeta Música”
      echo “”
      echo “1.- Ingresar URL”
      read URL
      cd Música/
      echo “”
      echo “..::Descargando Audio::..”
      youtube-dl –extract-audio –audio-format mp3 –audio-quality 128K $URL
      break ;;

      3);;
      *) echo “Opción ingresada invalida, intente de nuevo”;;

      esac
      done
      exit 0

      ——————————————————————————————————————————————————————————————————————–
      Espero que sirva un saludo .
      Atte
      Damián.

      • Jorge V. dice:

        Gracias, estoy programando en Python, bueno soy un novato todavía, y me gustaría hacer este script en ese lenguaje y más adelante con una interfaz gráfica, queria saber si alguien ha hecho algo parecido, para no inventar la rueda jeje. Saludos

  13. […] Quisiera empezar este post pidiendo disculpa a mis lectores, se que tenia tiempo sin escribir por este medio, pero los estudios y el trabajo no me dan mucho tiempo libre, por lo tanto para recompensar el tiempo ausente, les traigo este excelente tuto, en otro post les enseñe a como realizar un Script para descargar audio y vídeo con youtube-dl. […]

Deja un comentario