Binary Coffee

4 opciones para programar descargas

bash hack internet

Este post es parte de la serie para hacer m谩s eficiente el consumo de Internet, consumo que los cubanos debemos estar optimizando casi de manera permanente.

Por todos es conocido que hay ciertos horarios donde el costo de la conexi贸n es m谩s barata ya que el uso del ancho de banda en el canal compartido es menor. Normalmente estos horarios son de madrugada. Si la descarga requiere monitoreo nuestro pues no nos queda m谩s remedio que estar despiertos mientras se hace y llevar control del proceso, pero en muchas ocasiones no es necesario tal control por parte del usuario, as铆 que podemos programarla con alguna herramienta que la haga por nosotros en el horario especificado y as铆 dedicamos la noche a dormir y cuidar nuestro cuerpo y cerebro :)

Veremos 4 opciones para programar en el futuro una descarga de un archivo desde Internet. Dos de maneras gr谩ficas y dos por comandos en la consola.

  1. Free Download Manager

Con esta aplicaci贸n multiplataforma es muy c贸modo programar la descarga, en la ventana para a帽adir la URL a descargar marque la opci贸n Scheduler o Programador y seleccione la hora de inicio de la descarga, si es un archivo muy grande y no deseas que la descarga continue despu茅s de cierto horario pues tambi茅n puedes indicarle a este gestor de descargas que la ponga en pausa si al llegar a ese momento todav铆a no ha culminado la descarga.

En la imagen tambi茅n vemos que esta herramienta nos permite programar descargas recurrentes, esto es 煤til cuando la misma URL es actualizada peri贸dicamente con contenido que nos interesa.

  1. Advanced Download Manager

Con esta aplicaci贸n para Android tambi茅n es simple programar una descarga. Cuando se a帽ade se marca el planificador y se selecciona el intervalo de horario deseado d贸nde la app estar谩 descargando.

Esta app la he usado par de veces para descargar usando los datos m贸viles en el horario de la madrugada cuando la 煤nica alternativa posible en Cuba descuenta los megas al 50%. Debe dejar los datos m贸viles encendidos, no hay manera de que un app pueda encender o apagar por s铆 sola los datos, en ocasiones el primer archivo de la lista da error y no se descarga, eso puede deberse a que la radiobase no mantiene despierta la conexi贸n con el dispositivo si no hay actividad por mucho tiempo, por lo que es acconsejable que se a帽ada al inicio de la lista un archivo de poco espacio como "se帽uelo" para que al momento de iniciarse las descargas programadas ese archivo active la conexi贸n entre el dispositivo y la radiobase.

  1. Desde la consola combinando los comandos wget y cron

Esta opci贸n es la m谩s rica y d贸nde m谩s variantes puedes probar debido que es la m谩s cercana a las habilidades de programaci贸n. Traigo dos formas, una usando crontab -e y la otra usando el comando sleep.

Primeo veamos un resumen de estos comandos:

$ whatis wget crontab
wget (1)             - The non-interactive network downloader.
crontab (1)          - maintains crontab files for individual users
crontab (1p)         - schedule periodic background work
crontab (5)          - files used to schedule the execution of programs

Como vemos Linux tiene un demonio llamado cron que permite programar tareas a ejecutarse periodicamente. Para ello ejecutamos

$ crontab -e

Esto nos abre un editor en el cual ponemos

0 2 * * * wget [URL]

Reemplaza [URL] por el archivo que quieras descargar y cierra el editor guardando lo cambios. La expresi贸n 0 2 * * * le dice a cron que ejecute el comando wget a las 2am cada d铆a. Para m谩s informaci贸n sobre como construir expresiones de cron puede auxiliarse de herramientas como cron-expression-generator.

  1. Combinando los comandos sleep y youtube-dl

Supongamos ahora que deseamos descargar un video de youtube. Usaremos ahora youtube-dl como alternativa a wget, ya que con wget ser铆a m谩s complicado obtener la URL correcta del video a descargar. Pero antes ser铆a recomendable que leyeras este post que explica como instalar youtube-dl.

Entonces lo haremos dejando la consola dormida cierto tiempo precalculado y ejecutando el comando que hace la descarga. Ejemplo, supongamos que son las 9pm y queremos que a las 2am comiece a descargarse este video https://www.youtube.com/watch?v=bQL2FsHe7G4.

$ sleep 5h ; youtube-dl https://www.youtube.com/watch?v=VDZQKD5BNYY
[youtube] VDZQKD5BNYY: Downloading webpage
[download] Destination: How To Clone Websites With wget _ Linux-VDZQKD5BNYY.mp4
[download] 100% of 17.31MiB in 00:15

Con sleep 5h la consola se queda dormida por 5 horas y luego ejecuta el comando a continuaci贸n del punto y coma. Otros ejemplos con sleep:

$ whatis sleep
sleep (1)            - delay for a specified amount of time

$ sleep 10                  # espera 10 segundos
$ sleep 30m                 # espera 30 minutos
$ sleep 4h; sleep 20m       # espera 4 horas y 20 minutos
$ sleep 1d; sleep 120m      # espera 26 horas o un dia y dos horas

Bueno, hasta aqu铆 este post, espero que sea de utilidad en su realaci贸n con el consumo de Internet. Para otro post estar茅 explicando como usar dos bots de telegram para obtener la URL descargable de videos de youtube y de esa manera usar cualquier gestor de descarga, as铆 no depender de youtube-dl.

Opiniones