Script para bajarse vídeos de Youtube con youtube-dl

7 envíos / 0 nuevos
Último envío
#1 Vie, 17/11/2017 - 16:01
viriato
Imagen de viriato
Desconectado/a
se unió: 29/08/17

Script para bajarse vídeos de Youtube con youtube-dl

Les dejo un script que hice hace tiempo para  bajarse videos de Youtube con youtube-dl.

 

Previamente, hay que instalar la aplicación youtube-dl en Debian, después de escribir password de root en el terminal:

 

#apt install youtube-dl

El script en BASH lo he llamado youtube-dl.sh, ustedes pueden llamarlo como quieran. Copien y peguen en un archivo plano de texto.

#!/bin/bash

# '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'
# Fuente: http://blog.desdelinux.net/youtube-dl-tips-que-no-sabias/

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

 

No se olviden de conceder permisos de ejecución al script de la siguiente forma:

 

# chmod +x youtube-dl.sh

 

Vie, 17/11/2017 - 18:11
rockyiii
Imagen de rockyiii
Desconectado/a
administrator
se unió: 11/01/16

Muy bueno el aporte!!!
Puede que sea mejor poner el srcipt en la wiki https://exdebian.org/wiki/colecci%C3%B3n-de-scripts
 

Sáb, 18/11/2017 - 02:26 (Responder a #2)
viriato
Imagen de viriato
Desconectado/a
se unió: 29/08/17

Si así lo deseas, por mí perfecto.

No sé si un usuario como yo tiene privilegios para escribir en la wiki, pero si no los tengo, puedes hacerlo tú.

Sáb, 18/11/2017 - 07:10
Panko
Imagen de Panko
Desconectado/a
moderador
se unió: 18/02/16

Y ya que estamos, podrías añadir la ruta en la cual meter dicho script. Lo más lógico, a mi entender, sería

/usr/local/bin/SCRIPT

ya que es una ruta que el sistema tiene configurada normalmente como ejecutable (del mismo modo que sería /bin o /usr/bin). De este modo, se puede utilizar el script desde cualquier directorio en el que nos encontremos sin necesidad de tener que ir donde esté dicho script, o tener que poner la ruta completa si estamos en otro directorio, además de que quedaría disponible para cualquier otro usuario si el equipo es utilizado por más de una persona.

  No hay bar que por bien no venga....
Sáb, 18/11/2017 - 07:25 (Responder a #4)
moonwatcher
Imagen de moonwatcher
Desconectado/a
moderador
se unió: 21/01/16

viriato wrote:

No sé si un usuario como yo tiene privilegios para escribir en la wiki, pero si no los tengo, puedes hacerlo tú.

Todos los usuarios registrados pueden participar en la wiki.

https://exdebian.org/normas/normas-del-wiki

We were but stones. Your light made us stars

https://linuxveredas.blogspot.com.es/

Sáb, 18/11/2017 - 12:54
caliban
Imagen de caliban
Desconectado/a
moderador
se unió: 14/01/16

Otra opción, además de la comentada por panko es , agregar el path  del directorio /scripts  en ~/.bashrc , del usuario . de tal modo el script se ejecutara  directamente sin invocar  la ruta completa 

##  archivos  ~/.bashrc
............................................
......................................
export PATH=$PATH:/home/usuario/scripts
## en este caso los scripts contenido en el directorio /scripts 

Cualquier script dentro de /scripts  podrá ser ejecutado ( si tiene los permisos correspondientes)  simplemente 

llamándolo por su nombre ( por cierto no hace falta  colocarle ninguna extensión )

Mié, 22/11/2017 - 11:45
viriato
Imagen de viriato
Desconectado/a
se unió: 29/08/17

He escrito el artículo en la Wiki. Pueden ver el link

He citado en la autoría del script a Panko y caliban por sus aportes  y a la comunidad exdebian.org por su ayuda. 

https://exdebian.org/wiki/script-para-bajarse-v%C3%ADdeos-basado-en-la-aplicaci%C3%B3n-youtube-dl

Un saludo wink