Firefox: aumentare la velocità di download con Axel e Flashgot

Chi viene dal mondo Windows conosce molto bene i download Accelerator, come Free Download Manager o Download Accelerator Plus: sono software che permettono di aumentare, molte volte drasticamente, la velocità di download dei file proveniente da internet.

Finestra di download di Firefox
Solo 100 KB/s, quando la mia banda ne supporta 500…

Tramite l’estensione Flashgot per Firefox, e il download manager da riga di comando Axel (simile a wget), è possibile installare un leggerissimo Download Accelerator anche su Linux.
Innanzitutto installiamo axel:

$ su
# apt-get install axel

(non fate exit, ne’ chiudete la finestra di terminale, ci servirà tra poco con i privilegi di root).

Il problema è che non possiamo integrare, così com’è, Axel in Flashgot: il download funzionerebbe, ma non avremmo alcuna informazione visiva su esso (per esempio, la velocità di download o il tempo rimanente), poiché il programma partirebbe in background. Dobbiamo pertanto crearci uno script che esegua Axel in una finestra di terminale. Come terminale sceglieremo, per la sua leggerezza, xterm.

Sempre nel terminale, e sempre da root, digitiamo:

# gedit /usr/bin/myAxelgot.sh

(se non abbiamo gnome, possiamo usare kate oppure nano al posto di gedit).

Dentro il documento appena creato ed aperto, incolliamo le seguenti righe:

#!/bin/bash
# myAxelgot.sh
# Script per usare Axel in Flashgot, utilizzando xterm
# Primo argomento: il numero di segmenti in cui spezzare il file
# Secondo argomento: la directory in cui scaricare
# Terzo argomento: url del file da scaricare
# Autore: Andrea Romagnoli

xterm +hold -title "$3 - sto usando $1 connessioni" -e axel -a -n $1 -o "$2" $3

Per lanciare lo script dovremo passargli tre argomenti, nell’ordine:

  1. numero di segmenti: i Download Accelerator aumentano la velocità di download perché spezzano il file da scaricare in più parti, che vengono scaricate simultaneamente;
  2. la directory dove andrà anno a finire i file temporanei (necessari ad Axel per riprendere il download qualora venga interrotto) e il file completo una volta terminato il download;
  3. l’indirizzo del file da scaricare.

Ricordiamoci l’ordine degli argomenti, ci tornerà utile nel momento in cui configureremo Flashgot.

Una nota sull’opzione +hold: essa serve a chiudere la finestra di terminale una volta terminato il download del file; se desideriamo invece chiuderla manualmente (ad esempio perché vogliamo essere sicuri sul buon esito del download), ci basterà cambiarla in -hold.

Salviamo e chiudiamo il file, e torniamo al terminale per rendere lo script eseguibile da tutti gli utenti:

# chmod a+x /usr/bin/myAxelgot.sh
# exit

Ora Axel è pronto per essere interfacciato a FlashGot: installiamo l’estensione e riavviamo Firefox, poi apriamo Strumenti / FlashGot / Altre Opzioni. Invece di andare a prendere un Download Manager dalla lista, clicchiamo su Aggiungi.

  • su nome mettiamo quello che desideriamo;
  • clicchiamo sfoglia per scegliere l’eseguibile: andiamo nella directory /usr/bin/, cerchiamo myAxelgot.sh e scegliamolo;
  • ora ci viene richiesto il modello degli argomenti: scriviamo
    n
    [FOLDER] [URL]

    la n in grassetto dovremo sostituirla col numero delle sezioni che desideriamo creare (in generale, maggiore è il numero, maggiore sarà la velocità di download, ma ricordiamoci che un numero troppo elevato può appesantire il server e può bloccare Axel); alla fine dovrebbe risultare come in questo esempio:

10 [FOLDER] [URL]

Infine premiamo OK: è tutto pronto! :D

Questo metodo ha diversi vantaggi:

 

  • supporta il resume: se decidessimo di interrompere il download la sera, la mattina dopo, ricliccando sul collegamento del file da scaricare con Firefox, il download verrà ripreso;
  • per modificare il numero di sezioni in cui dividere il download, basterà riaprire le opzioni di Flashgot, senza dover accedere ad un terminale di root per modificare lo script originale;
  • la directory di destinazione sarà la stessa specificata nelle preferenze (scheda Principale, sottosezione download) di Firefox, poiché abbiamo usato una variabile per indicarla, e poiché il segnaposto [FOLDER] si riferisce alle opzioni principali di Firefox; inoltre, quando sceglieremo “scarica tutto con Flashgot”, lo script scaricherà i file esattamente nella directory che sceglieremo dalla finestra di dialogo che si aprirà.

Proviamolo con lo stesso file di prima:

502 KB/s… abbiamo raggiunto il nostro obiettivo… cioè saturare la banda! :mrgreen: (ho una 4 Mb/s).

Inoltre è da provare con l’opzione “scarica tutto con Flashgot”… sia a causa del download accelerator, sia per la leggerezza di xterm, le cose vengono giù che è un piacere! :mrgreen:

63 Risposte a “Firefox: aumentare la velocità di download con Axel e Flashgot”

  1. mighelone Dice:

    Molto interessante, comunque esiste qualcosa di simile già pronto anche per linux, si chiama DownThemAll!

  2. notoriousxl Dice:

    :o
    L’ultima volta che avevo provato quell’estensione non aveva tutta quella roba… grazie per la segnalazione! :-D

  3. mighelone Dice:

    Di niente, cmq penso che sia possibile far convivere le due cose, più tardi ci provo! Non conoscevo flashgot finora, hai provato aria2? Supporta anche il protocollo bittorrent.

  4. notoriousxl Dice:

    Penso anche io che possano convivere (in fondo sono estensioni). Aria2 quando ho un po’ di tempo lo provo ;) (come Axel, dovrebbe essere “interfacciabile” a Flashgot tramite uno script).

  5. x0r Dice:

    bel tutorial

    perchè non nè fai un altro con wget e aria2?
    non dovrebbe essere difficile

  6. notoriousxl Dice:

    Adesso sono “costretto” ad usare il mac; quando avrò un attimo di tempo proverò ;)
    In teoria basterebbe sostituire nello script
    -e axel -a -n $1 -o “$2″ $3
    con
    -e [comando]

    … facendo attenzione a mettere il parametro $2 tra virgolette (nel caso la directory di download impostata su firefox abbia degli spazi)

  7. paf Dice:

    grazie per la dritta! funziona a perfezione.
    Io usavo prozilla, che funzionava molto bene lo stesso, ma nella kubuntu non è nei reps ufficiali e non ho avuto tempo di compilarlo.
    Ottima soluzione

  8. notoriousxl Dice:

    @paf
    di niente :)

  9. Death Dice:

    a me non funziona come devo fare?

  10. notoriousxl Dice:

    Hai seguito tutti i passaggi? Oppure che errore ti da’?
    È strano che non ti funzioni, gli altri visitatori non hanno incontrato problemi… :P

  11. Death Dice:

    apre la shell con scritto con i vari comandi per axel, ma senza scaricare nulla

  12. Death Dice:

    ho seguito alla lettera tutti i passaggi ma niente da fare, apre la stessa shell

  13. notoriousxl Dice:

    La finestra di terminale si chiude subito o resta aperta? Se resta aperta, da’ qualche messaggio di errore?

  14. Death Dice:

    la finestra di terminale in principio restava aperta, poi ho modificato il +hold in -hold e ho potuto visualizzarne il contenuto

  15. notoriousxl Dice:

    Perfetto, incolla qui quello che ti dice ;)

  16. Death Dice:

    aspetta ti riporto con esattezza il contenuto

  17. notoriousxl Dice:

    (mi è venuto un dubbio:

    Nel codice dello script

    xterm +hold -title "$3 - sto usando $1 connessioni" -e axel -a -n $1 -o "$2" $3

    Nella pagina Web va a capo – su WordPress.com non posso modificare i CSS – ma in realtà sta su un’unica riga – se hai fatto copia e incolla, comunque, non dovrebbe essere questo il problema

    )

  18. Death Dice:

    ma è scomparso tutto quello che ho scritto

  19. Death Dice:

    Usage: axel [options] url1 [url2] [url...]

    –max-speed=x -s x Specify maximum speed (bytes per second)

  20. Death Dice:

    etc…..

    e in fondo report bugs to lintux@lintux.cx

  21. notoriousxl Dice:

    Proviamo a lanciarlo manualmente: apri un terminale e copia il seguente comando:

    /usr/bin/myAxelgot.sh 10 ~/Desktop/ url

    Sostituendo url con l’indirizzo di un file, ad esempio la iso di Debian.

    Se non inizia a scaricarlo, incollami qui l’output completo (mi basta la parte dove dice ERROR, “usage” non mi interessa) ;)

  22. Death Dice:

    non vi è alcun error usage
    in pratica è come se axel fosse in attesa di direttive
    prova a digitare axel su bash e vedrai il contenuto della schermata

  23. notoriousxl Dice:

    Anche se lo lanci da terminale, come ho detto sopra?

    Incollami l’output di

    cat /usr/bin/myAxelgot.sh

  24. Death Dice:

    #!/bin/bash
    # myAxelgot.sh
    # Script per usare Axel in Flashgot, utilizzando xterm
    # Primo argomento: il numero di segmenti in cui spezzare il file
    # Secondo argomento: la directory in cui scaricare
    # Terzo argomento: url del file da scaricare
    # Autore: Andrea Romagnoli

    xterm -hold -title “$3 – sto usando $1 connessioni” -e axel -a -n $1 -o “$2″ $3
    antonio@Slayer:~$

  25. notoriousxl Dice:

    Lancia

    xterm -hold -title “$3 – sto usando $1 connessioni” -e axel -a -n $1 -o “$2″ $3

    da “Esegui applicazione” (alt+F2) e non da terminale, vediamo che succede

  26. notoriousxl Dice:

    no aspetta, scusa…

    ovviamente devi sostituire $1, $2 e $3 con, rispettivamente
    10 (prova anche un numero più basso)
    ~/Desktop/
    un link di un file da scaricare

  27. Death Dice:

    nulla

  28. Death Dice:

    dammi un link anche debian

  29. Death Dice:

    non succede nulla

  30. notoriousxl Dice:

    Nel testo che hai incollato c’è un carattere strano dopo il $2; modifica lo script (con i privilegi di root) e incollaci questo:

    xterm -hold -title “$3 - sto usando $1 connessioni” -e axel -a -n $1 -o “$2" $3

    È una sola riga, se vuoi essere sicuro ricopiala a mano

    Speriamo sia questo il problema.

  31. notoriousxl Dice:

    Aspetta, ci sono i caratteri tutti sballati (i doppi apici, WordPress maledetto); ricopiala a mano, ti conviene

  32. Death Dice:

    è identico al precedente

  33. Death Dice:

    fa la stessa cosa di prima

  34. notoriousxl Dice:

    axel -a -n 10 -o ~/Desktop/ http://download.tuxfamily.org/technosalad/utils/nodes.dat
    Questo che ti fa?

  35. Death Dice:

    ha funzionato

  36. notoriousxl Dice:

    xterm -hold axel -a -n 10 -o ~/Desktop/ http://download.tuxfamily.org/technosalad/utils/nodes.dat
    Anche questo funziona?

  37. Death Dice:

    xterm: bad command line option “axel”

    usage: xterm [-/+132] [-C] [-Sccn] [-T string] [-/+ah] [-/+ai] [-/+aw]
    [-b number] [-/+bc] [-bcf milliseconds] [-bcn milliseconds] [-bd color]
    [-/+bdc] [-bg color] [-bw number] [-/+cb] [-cc classrange] [-/+cjk_width]
    [-class string] [-/+cm] [-/+cn] [-cr color] [-/+cu] [-/+dc]
    [-display displayname] [-e command args ...] [-fa pattern] [-fb fontname]
    [-/+fbb] [-/+fbx] [-fd pattern] [-fg color] [-fi fontname] [-fn fontname]
    [-fs size] [-fw fontname] [-fwb fontname] [-fx fontname] [%geom] [#geom]
    [-geometry geom] [-hc color] [-help] [-/+hold] [-iconic] [-/+ie] [-/+im]
    [-into windowId] [-/+j] [-/+k8] [-kt keyboardtype] [-/+l] [-/+lc]
    [-lcc path] [-leftbar] [-lf filename] [-/+ls] [-/+mb] [-mc milliseconds]
    [-/+mesg] [-/+mk_width] [-ms color] [-n string] [-name string] [-nb number]
    [-/+nul] [-/+pc] [-/+pob] [-rightbar] [-/+rv] [-/+rvc] [-/+rw] [-/+s]
    [-/+samename] [-/+sb] [-/+sf] [-/+si] [-/+sk] [-sl number] [-/+sm] [-/+sp]
    [-/+t] [-ti termid] [-title string] [-tm string] [-tn name] [-/+u8]
    [-/+ulc] [-/+ulit] [-/+ut] [-/+vb] [-version] [-/+wc] [-/+wf]
    [-xrm resourcestring] [-ziconbeep percent]

    Type xterm -help for a full description.

  38. Death Dice:

    direi di no, senza coprenderne il perchè. spero tu non stia perdendo la pazienza

  39. notoriousxl Dice:

    direi di no, senza coprenderne il perchè. spero tu non stia perdendo la pazienza

    Ci sono quasi arrivato a perderla :mrgreen:
    (scherzo :P )
    Mi ero dimenticato un -e :P
    xterm -hold -e axel -a -n 10 -o ~/Desktop/ http://download.tuxfamily.org/technosalad/utils/nodes.dat
    Prova adesso

  40. Death Dice:

    dice
    No state file, cannot resume!

  41. notoriousxl Dice:

    non ne va bene una eh… :evil: :mrgreen:
    Crea una cartella sul desktop “tmp” e poi prova a rilanciare il comando:
    xterm -hold -e axel -a -n 10 -o ~/Desktop/ http://download.tuxfamily.org/technosalad/utils/nodes.dat

  42. notoriousxl Dice:

    no scusa, il comando non è quello
    xterm -hold -e axel -a -n 10 -o ~/Desktop/tmp/ http://download.tuxfamily.org/technosalad/utils/nodes.dat
    sto fondendo :mrgreen:

  43. Death Dice:

    grandioso! ha funzionato. sei un genio

  44. notoriousxl Dice:

    Ok, più difficile adesso :mrgreen:
    Cancella la directory tmp e ricreala
    Poi lancia
    xterm -hold -title "sto usando 10 connessioni" -e axel -a -n 10 -o "~/Desktop/tmp/" http://download.tuxfamily.org/technosalad/utils/nodes.dat
    che è lo stesso comando che faccio lanciare allo script
    Se non funziona, prova a togliere le virgolette alla directory (il parametro -o ) e, dopo aver svuotato di nuovo la directory tmp, rilancialo.
    Se non funziona ancora, togli il parametro title (sempre dopo aver ripristinato tmp).
    Fammi sapere e ci riaggiorniamo a domani, che adesso vado a dormire :mrgreen:

  45. Death Dice:

    ok a domani

  46. Death Dice:

    togliendo le virgolette prova a partire ma resta bloccato all’inizio, senza title riconosce errori di sintassi,la versione originale porta errore

  47. notoriousxl Dice:

    Allora ripartiamo da qui

    http://notoriousxl.wordpress.com/2007/05/10/firefox-aumentare-la-velocita-di-download-con-axel-e-flashgot/#comment-203
    questo funziona giusto?

    Bene, allora modifica lo script (da root) cambiando il comando con
    xterm -hold -e axel -a -n $1 -o $2 $3

    Occhio che senza virgolette sulla directory, non puoi impostare, tramite flashgot, una directory il cui nome contenga spazi (le virgolette servono proprio a quello). Il title è solo una questione estetica, se da’ problemi (anche se non capisco perché… cosa fai, il copia e incolla da questo sito, per caso? Se sì, prova a scrivere le virgolette a mano) lo togliamo.
    Se vuoi gli spazi nel nome della directory di destinazione, devi cambiare mettere $2 tra virgolette.

  48. Death Dice:

    fa sempre la stessa cosa. ho ricopiato a mano

  49. Death Dice:

    ops non appare più nulla

  50. Death Dice:

    è tornato come prima

  51. Death Dice:

    credo che $1 $2 e $3 nel mio script non sappiano dove mirare

  52. notoriousxl Dice:

    Ricapitoliamo…

    Questo ti funziona?
    http://notoriousxl.wordpress.com/2007/05/10/firefox-aumentare-la-velocita-di-download-con-axel-e-flashgot/#comment-203

    Ieri mi hai detto di sì…

  53. notoriousxl Dice:

    credo che $1 $2 e $3 nel mio script non sappiano dove mirare

    Ma flashgot l’hai configurato bene? Sono paramatri che gli passa flashgot stesso…

  54. Death Dice:

    non avevo messo lo spazio tra folder e url.
    perdono! adesso funziona.
    sei un genio

  55. notoriousxl Dice:

    meglio così! ^_^

  56. notoriousxl Dice:

    Ho messo un a capo nell’esempio, per renderlo più chiaro (grazie a Death per la segnalazione)

  57. Death Dice:

    grazie a te per l’aiuto e la pazienza

  58. Il ponte sull’Ankh Dice:

    [...] dire che a questo link trovate un buon tutorial per integrare Axel (un downloader multithread da lina di comando) su [...]

  59. pippo Dice:

    Ho provato ad adeguare lo script utilizzando wget invece che axel, sostituendo il numero di parti in cui viene diviso il file col limite di banda in KB/s (opzione –limit-rate=”$LIMITE”k ).
    Sono riuscito ad integrarlo in firefox come spiegato utilizzando flashgot e va bene…
    Però mi piacerebbe trovare il modo di controllare il numero di files da scaricare simultaneamente uno dopo l’altro:
    mattiamo che un sito contenga…non so, 10 files .pdf.
    Con lo script proposto qui, se uso flashall (impostato per intercettare i .pdf) si aprono 10 terminali e partono simulatneamente i 10 download.
    Avreste qualche idea per creare una sorta di coda, in modo che ne scarichi per esempio uno solo alla volta?
    Vi ringrazio per le eventtuali risposte e per l’articolo scritto.
    A presto!

  60. notoriousxl Dice:

    @pippo: no, mi spiace. :(

  61. pippo Dice:

    stavo cercando qualcosa simile a downthemall che però permettesse di limitare la banda in download.
    In pratica mi interessano queste caratteristiche:

    1- integrabilità con flashgot o direttamente firefox
    2- limitabilità banda
    3- impostazione numero download simultanei

    Tra quelli che ho provato d4X è ok solo che non capisco come si possa impostare il massimo numero di download simultanei:
    se lancio flashall tutti i file (per esempio .pdf) vengono scaricati contemporaneamente, a me invece interesserebbe che venissero scaricati uno alla volta oppure due alla volta per esempio…

    Se avete esperienze o idee in merito, anche se la domanda và forse un attimo fuori tema…Vi ringrazio in anticipo.

  62. notoriousxl Dice:

    @pippo: sì, la domanda va fuori tema, ma non è un problema, non c’è bisogno di scusarsi! :wink:

    Il problema, se c’è, è un altro: essendo questo un blog, e non un forum, ci scrivo solo io; perciò, se fai domande non inerenti al post in questione (in cui parlo di cose che bene o male conosco), potresti andare al di fuori delle mie conoscenze… come in questo caso! :mrgreen:

    Ti consiglio pertanto di rivolgere questa domanda ad un forum di settore – casomai dopo ripassa qui e linkami la soluzione! :wink:

  63. pippo Dice:

    Ok, Intanto allora ti linko queste idee che coinvolgono wget e penso possano ance essere utilizzate con altri programmi del genere, tra cui appunto axel….spero possa essere utile.

    http://www.linux.com/articles/59457

    Saluti

Lascia un commento