Descarga música para programar utilizando Axel

Ultimamente estoy enganchado a esta página:

musicaprogramar


Música para programar es una página web en la que John Davies ha recopilado un montón de horas de música inmersiva cuyo único propósito es ayudarnos a relajarnos y concentrarnos mientras programamos.

Y en mi caso lo consigue, son horas de música ambiental orientada a la electrónica recopilada de diversos autores y que, a través de su fantástica página imitando el pseudocódigo y la estética del IDE SublimeText, te permite escuchar horas y horas de música online.

El caso es que el otro día me encontré con que no usaba esta música solo para programar, si no para relajarme o trabajar en sitios fuera de casa, así que decidí descargarla para poder utilizarla en mi móvil.

La página te permite clicar sobre cada disco y descargar su audio, pero pronto se volvió evidente que, siendo 44 archivos, iba a dedicar toda la mañana a ello… así que decidí automatizarlo.

auto

Y es ahí donde entra Axel. Axel es un programa para distros unix que te permite descargar archivos por terminal al puro estilo wget. La diferencia es que Axel es aún más avanzado y permite la descarga de varios archivos usando varios hilos y, por supuesto, recuperar la descarga en el caso de que esta por algún motivo se interrumpa. Esto permite pedirle al servidor pequeñas partes del archivo al mismo tiempo para hacer la descarga mucho más rápida. Voy a enseñarte como usar Axel para descargar varios archivos automáticamente a partir de una lista, en nuestra caso la música de la fantástica música para programar.

Lo primero será instalarlo, está en los repositorios oficiales de la mayoría de distribuciones por lo que solo tienes que ejecutar:

sudo apt-get install axel

Una vez instalado, podemos ver como funciona descargando el primer archivo de música de nuestro ejemplo, en este caso:

axel -a http://datashat.net/music_for_programming_1-datassette.mp3

La opción “-a” reescribe la salida en la misma línea para que sea más cómodo ver el progreso de descarga.

descarga_axel

Ya tenemos Axel instalado y hemos aprendido como funciona. Pero ¿cómo descargar todos los links automaticamente? Lo primero será generar un archivo llamado list.txt donde cada línea será una URL a descargar. Como es un proceso que hacer a mano lleva su tiempo, te dejo directamente el archivo. Clica aquí para descargarlo.

Coloca el archivo en la carpeta donde se realizarán la descargas. Ahora vamos a usar un poco de Bash básico, por lo que no te preocupes si no entiendes exactamente cada comando ¡simplemente funciona!

while read url; do axel -a  $url; done < list.txt

Recuerda que deberás ejecutar esta orden por terminal en el mismo directorio donde esté el archivo list.txt

Una vez ejecutado en la terminal (recuerda que tu archivo debe llamarse en este caso list.txt), Axel empezará a descargar cada archivo de uno en uno. ¡Ya lo tenemos! Deja ahora que el ordenador haga el trabajo pesado y ponte a ver vídeos de gatitos, para eso fue inventado.

Como un último paso opcional, podemos crear un pequeño script que contenga la orden de descargar varios archivos, así será más sencillo de reutilizar y recordar la próxima vez:

gedit donwload.sh

download_file

Guarda el archivo y dale permisos de ejecutable, para ello lo más sencillo es escribir:

chmod +x download.sh

Una vez hecho esto, podrás ejecutarlo haciendo doble click en tu explorador de archivos o escribiendo en la terminal:

./download.sh

Con esto ya tienes una forma sencilla y potente de descargar grandes volúmenes de archivos de forma automática. El único problema es recopilar todos los links a descargar... ¿lo automatizamos? ¡Poder se puede! Pero eso ya es otra historia que veremos en otra ocasión.

Recuerda. ¡Haz que el ordenador trabaje para ti y no al revés! Si llevas un buen rato realizando una tarea repetitiva y monótona ¡Seguro que se puede automatizar!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *