Jump to content

aria2 + youtube-dl: acelerando descargas de YouTube


Recommended Posts

El servidor de vídeos YouTube suele limitar la velocidad de descarga y/o visionado de sus vídeos, en especial durante las noches. El script (programado en bash) aquí expuesto intenta acelerar la descarga de los mismos.

 

Este script requiere la compilación previa de las aplicaciones:

 

- aria2: acelerador de descargas directas

 

- youtube-dl: script para descargas de YouTube (programado en python)

 

 

Con youtube-dl se obtienen los enlaces de descarga directos de los vídeos de YouTube. Estos enlaces son enviados a aria2, la cual descarga los enlaces usando su opción de aceleración de descarga.

 

 

 

# INSTALACIÓN DE ARIA2:

 

- En Debian/Ubuntu y derivados:

 

$ sudo apt-get install aria2

 

 

- A partir de su código fuente:

 

* Instalar las dependencias necesarias:

 

$ sudo apt-get install g++ libgnutls-dev libgpg-error-dev libgcrypt11-dev libc-ares-dev libxml2-dev zlib1g-dev libsqlite3-dev

 

 

* Descargar el código fuente desde aquí: http://sourceforge.n...2/files/stable/

 

* Descomprimir el paquete, ir con un Terminal al nuevo directorio descomprimido y ejecutar:

 

$ ./configure && make && sudo make install

 

 

 

# INSTALACIÓN DE YOUTUBE-DL:

 

- En Debian/Ubuntu y derivados:

 

$ sudo apt-get install youtube-dl

 

 

- A partir del script oficial:

 

* Instalar las dependencias necesarias:

 

$ sudo apt-get install python

 

 

* Descargar el script desde aquí: http://rg3.github.co...l/download.html

 

* Ir con un Terminal al directorio donde se ha descargado el script y ejecutar:

 

$ sudo cp youtube-dl /usr/local/bin && sudo chmod 777 /usr/local/bin/youtube-dl

 

 

# INSTALACIÓN DEL SCRIPT DE USO:

 

#!/bin/bash

 

 

for FILE1 in $@

 

do

 

 

if [ -f $FILE1 ]; then

 

for FILE2 in $(cat $FILE1)

 

do

 

cookiefile="/tmp/cookies-$( date +%s.%N ).txt"

 

url=$( youtube-dl --cookies $cookiefile -g $FILE2 )

 

NAME=$(youtube-dl -t --get-filename $FILE2)

 

 

aria2c --load-cookies $cookiefile -k1M -x4 -c $url -o "$NAME"

 

rm -f $cookiefile

 

done

 

 

else

 

 

 

cookiefile="/tmp/cookies-$( date +%s.%N ).txt"

 

url=$( youtube-dl --cookies $cookiefile -g $FILE1 )

 

NAME=$(youtube-dl -t --get-filename $FILE1)

 

 

aria2c --load-cookies $cookiefile -k1M -x4 -c $url -o "$NAME"

 

rm -f $cookiefile

 

 

fi

 

done

 

 

- Copiar y pegar en un archivo de texto el contenido del recuadro superior

 

- Guardar el archivo de texto y cambiar su nombre por el que se desee (aquí se utilizará el nombre de "youtubedl2" ;)

 

- Ir con un Terminal al directorio donde se ha guardado el script de uso y ejecutar:

 

$ sudo cp youtubedl2 /usr/local/bin && sudo chmod 777 /usr/local/bin/youtubedl2

 

 

 

# USO:

 

 

- Para descargar un vídeo de YouTube:

 

$ youtubedl2 [url_de_YouTube]

 

 

- Para descargar dos o más vídeos:

 

$ youtubedl2 [url01_de_YouTube] [url02_de_YouTube] .....

 

 

- Para descargar a partir de una lista de enlaces en un archivo de texto:

 

$ youtubedl2 lista_enlaces.txt

 

 

- Para descargar a partir del portapapeles (requiere la instalación previa de xclip):

 

$ xclip -o | xargs youtubedl2

 

 

 

 

***NOTA: ya que la aplicación, durante las descargas, muestra los archivos como si estuvieran totalmente descargados, sin estarlos, aria2 crea un icono por cada archivo en descarga consistente en una letra "a" minúscula con dos flechas. Cada icono está nombrado con el nombre del archivo en descarga añadiéndole la extensión .aria2 ("[nombre_archivo].aria2" ;). Cuando el archivo quede totalmente descargado, el icono será borrado automáticamente.

 

***NOTA: es posible la reanudación de descargas interrumpidas o incompletas. Para ello NO borrar el icono arriba mencionado.

 

***NOTA: el script está configurado para realizar una aceleración de descarga consistente en 4 conexiones simultáneas al archivo a descargar. Para aumentar o disminuir el número de conexiones, cambiar la opción -x4 del script por el número que se desee, con un máximo de 16.

 

***NOTA: el script está configurado para descargar el vídeo de YouTube a la máxima calidad disponible (a la fecha de creación de este manual, a 4096x3072 píxeles). Para limitar la calidad de descarga, añadir en el script, a la derecha del comando "youtube-dl", la opción "--max-quality=(nºformato)". Ejemplo: youtube-dl --max-quality=22 (para descargar con un máximo de 1280x720 píxeles). Véase a continuación la lista actual de formatos disponibles [NOTA: no todos los formatos están disponibles en todos los vídeos]:

 

--max-quality=17 (176x144, MPEG-4, AAC y contenedor 3GP)

 

--max-quality=5 (400x240, Sorenson, MP3 y contenedor FLV)

 

--max-quality=18 (480x360, H.264, AAC y contenedor MP4)

 

--max-quality=34 (640x360, H.264, AAC y contenedor FLV)

 

--max-quality=43 (640x360, VP8, Vorbis y contenedor WebM)

 

--max-quality=35 (854x480, H.264, AAC y contenedor FLV)

 

--max-quality=44 (854x480, VP8, Vorbis y contenedor WebM)

 

--max-quality=22 (1280x720, H.264, AAC y contenedor MP4)

 

--max-quality=45 (1280x720, VP8, Vorbis y contenedor WebM)

 

--max-quality=37 (1920x1080, H.264, AAC y contenedor MP4)

 

--max-quality=38 (4096x3072, H.264, AAC y contenedor MP4)

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...