pyLoad Download Manager through Optware

We need a usb-flash formatted EXT2 or a usb-hdd formated EXT3, will not work fine on Fat32 or Ntfs.

To start the optware environment:
Go to and install Download Master (uninstall or disable after, if you are not using it)
Login to router with putty terminal and copy/paste the following commands

ipkg update
ipkg upgrade
ipkg install python py25-crypto libcurl py25-curl py25-openssl py25-django
ipkg install tesseract-ocr unzip sqlite py25-pil unrar ossp-js nano
cd /opt/

Download the latest version (v0.4.9 at this moment), just change version number if is updated.

unzip && rm
cd /opt/pyload

Generate ssl keys, you have to input data required... or just press ENTER and fields will remains blanks

/opt/bin/openssl genrsa -out ssl.key 1024
/opt/bin/openssl req -new -key ssl.key -out ssl.csr
/opt/bin/openssl req -days 36500 -x509 -key ssl.key -in ssl.csr > ssl.crt

Change the default configuration-directory

python --changedir --configdir=/opt/pyload/.pyload

Press Enter once to confirm the path and Enter again to exit the dialog.

Go to installation-process, just hit Enter key, change username, password and port or leave it 8000

python -s

Choose your Language / Wähle deine Sprache ([en], de, fr, it, es, nl, sv, ru, pl, cs, sr, pt_BR): Enter

Welcome to the pyLoad Configuration Assistent.
It will check your system and make a basic setup in order to run pyLoad.

The value in brackets [] always is the default value,
in case you don't want to change it or you are unsure what to choose, just hit enter.
Don't forget: You can always rerun this assistent with --setup or -s parameter, when you start pyLoadCore.
If you have any problems with this assistent hit STRG-C,
to abort and don't let him start with pyLoadCore automatically anymore.

When you are ready for system check, hit enter. Enter

## System Check ##
Python Version: OK
pycurl: OK
sqlite3: OK

pycrypto: OK
py-OpenSSL: OK

py-imaging: OK
tesseract: OK

PyQt4: missing

jinja2: OK
beaker: OK
JS engine: missing

System check finished, hit enter to see your status report. Enter

## Status ##

Features available: container decrypting, ssl connection, automatic captcha decryption, Webinterface, extended Click'N'Load

Continue with setup? ([y]/n): Enter

Do you want to change the config path? Current is /tmp/mnt/sda1/asusware/pyload/.pyload
If you use pyLoad on a server or the home partition lives on an iternal flash it may be a good idea to change it.
Change config path? (y/[n]): Enter

Do you want to configure login data and basic settings?
This is recommend for first run.
Make basic setup? ([y]/n): Enter

## Basic Setup ##

The following logindata is valid for CLI, GUI and webinterface.
Username [User]: your_username
Password: your_password
Password (again): your_password

External clients (GUI, CLI or other) need remote access to work over the network.
However, if you only want to use the webinterface you may disable it to save ram.
Enable remote access ([y]/n): Enter

Language ([en], de, fr, it, es, nl, sv, ru, pl, cs, sr, pt_BR): Enter
Downloadfolder [Downloads]: /mnt/sda1/downloads Enter (If your hdd has a label, replace "sda1" with "your device label")
Max parallel downloads [3]: Enter
Use Reconnect? (y/[n]): Enter

Do you want to configure ssl?
Configure ssl? (y/[n]):Enter

If you're done and everything went fine, you can activate ssl now.
Activate SSL? ([y]/n): Enter

Do you want to configure webinterface?
Configure webinterface? ([y]/n): Enter

## Webinterface Setup ##

Activate webinterface? ([y]/n): Enter

Listen address, if you use or localhost, the webinterface will only accessible locally.
Address []: Enter
Port [8000]: Enter

pyLoad offers several server backends, now following a short explanation.
builtin: Default server, best choice if you dont know which one to choose.
threaded: This server offers SSL and is a good alternative to builtin.
fastcgi: Can be used by apache, lighttpd, requires you to configure them, which is not too easy job.
lightweight: Very fast alternative written in C, requires libev and linux knowlegde.
Get it from here:, compile it
and copy to module/lib

Attention: In some rare cases the builtin server is not working, if you notice problems with the webinterface
come back here and change the builtin server to the threaded one here.
Server ([builtin], threaded, fastcgi, lightweight): threaded Enter
Setup finished successfully.
Hit enter to exit and restart pyLoad Enter

Download start/stop script
wget -c -O /opt/etc/init.d/S95Pyload
chmod 777 /opt/etc/init.d/S95Pyload

Start the server with

/opt/etc/init.d/S95Pyload start

Go to and happy downloading...


To start automatically after every router reboot, create post-mount script

nano /jffs/scripts/post-mount

Paste this lines

sleep 30
/opt/etc/init.d/S95Pyload start

Save with CTRL-O / Enter / and exit nano with CTRL-X

chmod a+rx /jffs/scripts/post-mount


nano /jffs/scripts/firewall-start

Paste this lines

iptables -I INPUT -p tcp --destination-port 8000 -j ACCEPT

Save with CTRL-O / Enter / and exit with CTRL-X

chmod a+rx /jffs/scripts/firewall-start

After reboot you should have access from wanipaddress:8000.

Video HERE...


  • Adrian Nowakowski

    is there way to instal here python28? pyload optware ng does not work for me in 56u

  • allexx88

    Nice how-to. pyload is available in Optware-ng, and it's using newer python27, just to note :-)

    • I can do all tutorials for optware-ng if you want, just let me know which one first...:)

  • Fanatico_PTY

    Not sure why, but I can't find a way to make it work after a router reboot, I'm using a RT-N16, any idea???

    • Post here:
      cat /jffs/scripts/post-mount

      • Fanatico_PTY


        login as: admin

        admin@'s password:

        ASUSWRT-Merlin RT-N16_3.0.0.4 Fri Jan 9 05:46:46 UTC 2015

        admin@RT-N16-785E:/tmp/home/root# cat /jffs/scripts/post-mount


        sleep 5

        /opt/etc/init.d/S95Pyload start


        • Ok,
          ls -l /jffs/scripts
          ls -l /opt/etc/init.d

          • Fanatico_PTY


            login as: admin

            admin@'s password:

            ASUSWRT-Merlin RT-N16_3.0.0.4 Fri Jan 9 05:46:46 UTC 2015

            admin@RT-N16-785E:/tmp/home/root# ls -l /jffs/scripts

            -rwxrwxrwx 1 admin root 50 Dec 31 2010 post-mount

            admin@RT-N16-785E:/tmp/home/root# ls -l /opt/etc/init.d

            -rwxrwxrwx 1 admin root 11505 Jul 23 2014 S50asuslighttpd

            -rwxrwxrwx 1 admin root 36804 Jul 23 2014 S50downloadmaster

            -rwxrwxrwx 1 admin root 5505 Dec 31 2010 S95Pyload



          • Strange, should work
            Try to increase sleep time to 30 seconds
            nano /jffs/scripts/post-mount
            sleep 30 instead sleep 5

          • Fanatico_PTY

            Done to 30 seconds and it's working now, awsome dude, Thanks!!!! owe you a beer

          • Really, nice!


  • Hadi

    thanks , how can I install it in debian without removing my transmission ? (RT-AC56U) please explain.

  • Bonny1992

    Please notice that you have the incorrect order using ipkg.

    You have:
    ipkg install python py25-crypto py25-curl libcurl py25-openssl py25-django

    when you should have:
    ipkg install python py25-crypto libcurl py25-curl py25-openssl py25-django

    • What's the difference if libcurl is before py25-curl?

      • Bonny1992

        On the last firmware it gives dependency error, resulting in non effectively installing py25-curl.

        • Ok, thanks

          • POCZESANIEC

            hey I have one problem have changed modem and have set bridge, and wanted to change IP but I can"t enter setup, I set local IP first and now when want to enter setu,. says me NO SUCH FILE OR DIRECTORY


To be notified by email when a new tutorial is posted :)

Thanks for Subscribing! I'll keeping you up-to-date with latest tutorials!

Something went wrong, try again...