Script para bajarse vídeos basado en la aplicación youtube-dl

Solapas principales

Nombre: youtube-dl.sh
Autor: viriato, aportes de Panko y caliban, todos miembros de la comunidad exdebianorg
Origen: comunidad exdebian.org
Lenguaje: BASH
Licencia: GPL
Propósito: Bajar vídeos del portal Youtube, Vimeo o DailyMotion con línea de comandos desde el terminal de GNU/Linux
Dependencias: youtube-dl
Código:

#!/bin/bash
#  Nombre: youtube-dl.sh
#  Autor: Viriato con aportes de Panko y caliban
#  Inspiración: http://blog.desdelinux.net/youtube-dl-tips-que-no-sabias/
#
#  Si desea ejecutar el script youtube-dl.sh desde cualquier directorio sin tener que buscar la #  ruta donde esté ubicado, escriba los siguientes comandos en el terminal:
#  1) $ su root
#  2) Introduzca su contraseña de administrador
#  3) # mv youtube-dl.sh /usr/local/bin

#  También puede agregar la ruta  del directorio /scripts  en el archivo ~/.bashrc , del usuario #  de tal modo el script se ejecutará directamente sin invocar la ruta completa:
#  ##  archivos  ~/.bashrc
#  ............................................
#  ......................................
#  export PATH=$PATH:/home/usuario/scripts
#  ## en este caso el script debe estar en el directorio /scripts 
#
#
# 'Lista de comandos'
# '$ youtube-dl --all-formats url_de_youtube'
# '$ youtube-dl --format 46 url_de_youtube'
# '$ youtube-dl -a enlaces.txt'
# '$ youtube-dl --format 46 --proxy http://192.168.0.1:3128 url_de_youtube'
# 

function menu
{
	echo 'Script para youtube-dl'
	echo
        echo '____________________MENU__________________________'
	echo 
	echo
	echo 'Lista de opciones:'
	echo
	echo '1) Descarga video en un formato'
	echo '2) Descarga vídeo en todos los formatos' 
	echo '3) Descarga urls de videos de archivo de texto'
	echo '4) Descarga video a través de proxy'
	echo '5) Actualización de youtube-dl'
	echo '6) Salir del programa'
	echo '__________________________________________________'
}
function write_option
{
	echo
	echo 'Escribe una opción de 1 a 6:'
	read write_option
}
function one_format
{
	echo 'Introduce una url de un video de youtube' 
	read urlyoutube
	echo 
	echo 'Lista de formatos:'
	echo
	echo '37 - mp4        [1080x1920]'
	echo '46 - webm       [1080x1920]'
	echo '22 - mp4        [720x1280]'
	echo '45 - webm       [720x1280]'
	echo '35 - flv        [480x854]'
	echo '44 - webm       [480x854]'
	echo '34 - flv        [360x640]'
	echo '18 - mp4        [360x640]'
	echo '43 - webm       [360x640]'
	echo '5  - flv        [240x400]'
	echo '17 - mp4        [144x176]'
	echo 
	echo  'Ejemplo: el número de formato mp4 [270x128] es 22'
	echo
	echo 'Introduce el ńumero asociado al formato:'
	read formatnum
	youtube-dl --format $formatnum $urlyoutube
}
function all_formats
{
	echo 'Introduce una url de un video de youtube:' 
	read urlyoutube
	youtube-dl --all-formats $urlyoutube
}
function urls_text_file
{
	echo 'Introduce el directorio con el nombre del archivo:'
	read dir_file
	youtube-dl -a $dir_file
}
function url_proxy
{
	echo 'Introduce una url de un video de youtube:' 
	read urlyoutube
	echo
	echo 'Lista de formatos:'
	echo
	echo '37 - mp4        [1080x1920]'
	echo '46 - webm       [1080x1920]'
	echo '22 - mp4        [720x1280]'
	echo '45 - webm       [720x1280]'
	echo '35 - flv        [480x854]'
	echo '44 - webm       [480x854]'
	echo '34 - flv        [360x640]'
	echo '18 - mp4        [360x640]'
	echo '43 - webm       [360x640]'
	echo '5  - flv        [240x400]'
	echo '17 - mp4        [144x176]'
	echo 
	echo 'Introduce el ńumero asociado al formato:'
	read formatnum
	echo
	echo  'Ejemplo de url de proxy y puerto: http://192.168.0.1:3128'
	echo
	echo 'Introduce la url de un proxy y el puerto:'
	read urlproxy_port
        youtube-dl --format $formatnum --proxy $urlproxy_port $url_de_youtube
}
function update
{
	sudo youtube-dl -U
}
write_option=0
go_out=6

while [ $write_option -ne $go_out ]; 
do   
   clear
   menu
   write_option
      
   if [ $write_option -ge 1 ] && [ $write_option -le 6 ]; 
   then  
      clear
      case $write_option in   # Acciones para las diferentes opciones del menu
         1)
         one_format
         ;;       
         2)
	 all_formats
         ;;
         3)
	 urls_text_file
         ;;
         4)
         url_proxy
         ;;
         5)
         update
         ;;
         6)
         echo 'Salir del programa'
      esac
   else
      echo "¡No ha introducido una opcion correcta!"
   fi
   echo
   echo "Pulse una tecla para volver al menú inicial..."
   read
done

Ejemplos de uso:

 

1) Dé permisos de ejecución al script como usuario root:

 

# chmod +x youtube-dl.sh

 

2) Ejecute el script escribiendo en el terminal: 

$ bash youtube-dl.sh

 

3) Escoja una opción del menú. Si la opción elegida es para descargar un vídeo de Youtube, copie y pegue el link de Youtube en el terminal y pulse la tecla INTRO. Procederá a la descarga del vídeo en el formato o los formatos que usted elija. También puede elegir la opción actualizar youtube.dl o salir del programa y se ejecutarán.

Comentarios: Este script  usa youtube-dl, un programa de línea de comandos para descargar vídeos o extraer audio de sitios de streaming tales como YouTube, Dailymotion o Vimeo.

Más información: https://es.wikipedia.org/wiki/Youtube-dl