BandaAncha.eu

Comunidad de usuarios
de fibra, móvil y ADSL

Modificar script en bash para usar aceleradores de descarga de enlaces Mega

cisquito
1

El siguiente script en bash sirve para la descarga de enlaces públicos del servidor MEGA. Su creador lo tiene abandonado desde hace un año y medio. Aún así, el script funciona, aunque no reconoce la sintaxis actual de los enlaces MEGA sino la antigua; pero eso se arregla con el comando sed.

Lo que yo busco es cambiar el gestor de descarga que usa el script por defecto. Se utiliza curl o, ante su carencia, wget. Quisiera sustituirlos por aceleradores de descarga, tales como aria2c o axel. Estos últimos permiten descargar un archivo realizando múltiples conexiones simultáneas, aumentando así la velocidad de descarga; curl y wget solo usan una conexión para cada archivo.

Aquí el script (pastebin).

No soy un experto en bash y no consigo dar con la línea o líneas a modificar. La sintaxis de los aceleradores de descarga sería:

  • axel: axel -a -n5 -H Cookie:[archivo_de_cookies] [URL_a_descargar] (NOTA: -n5 significa 5 conexiones)
  • aria2c: aria2c -c -k1M -x5 --load-cookies [archivo_de_cookies] [URL_a_descargar] (NOTA: -x5 significa 5 conexiones)

* Sintaxis actual de enlaces MEGA:

https:// mega.nz/file/ szoGiawA # T4WY7OGYfj9Fi7K6LrwzOpkv6qXu6FOW5HqFOJUvYuU

* Sintaxis antigua de enlaces MEGA:

https:// mega.nz/#! szoGiawA ! T4WY7OGYfj9Fi7K6LrwzOpkv6qXu6FOW5HqFOJUvYuU

* Dependencias necesarias para el uso del script: jq y pv

Un saludo.

kotBegemot
-2

¿Cuanto pagas por hacerlo?

BocaDePez
BocaDePez

Parece que podrías lograrlo. Pista: Ve poniendo líneas echo $variable para debugear el script.

Busca bash programming en Google. Además, hay varias funciones que parsean parte de la URL.

🗨️ 3
cisquito

Gracias por su respuesta.

Creo que la clave está en las líneas 48, 49 y 50 del código del script.

  • En la línea 48 se sustituye curl por aria2c
  • En la línea 49 se sustituye curl --fail -s por aria2c -c -k1M -x5

Pero en la línea 50 no sé qué opción de aria2c es la equivalente al --data de curl. En el man de aria2c no veo algo similar. Y claro, tras modificar las líneas 48 y 49 pero no la 50, al ejecutar el script, aria2c me dice que no reconoce la opción --data.

Un saludo.

🗨️ 2
BocaDePez
BocaDePez

Claro, porque aria2c no admite parametros por POST

🗨️ 1
cisquito

Gracias por su respuesta.

Y axel tampoco los admite. Así que creo que no se puede realizar la modificación que deseo.

BocaDePez
BocaDePez

El comando del binario a utilizar para descargar esta en la variable DL_COM que asigna en la funcion check_deps, y al que luego va añadiendo parametros a lo largo del script segun las opciones elegidas, sacandose al final un DL_COMMAND que es el que ejecuta.

Suerte

🗨️ 1
cisquito

Gracias por su respuesta.

No me había fijado en los parámetros requeridos en check_deps. La opción --metadata no parece existir en aria2c ni en axel, al igual que pasa con --data. Parece que no es posible implementar los aceleradores en el script. Seguiremos usando el "pesado" JDownloader como acelerador de descarga.

Gracias por su ayuda, de todas formas.

Un saludo.