pyLoad is a Free and Open Source download manager written in Python and designed to be extremely lightweight, easily extensible and fully manageable via web.
Continue reading about pyLoad amazing features on https://pyload.net .
Communication can be done in the or old school
pyLoad runs under Windows, MacOS and Unix based systems like Linux and FreeBSD.
Note: Currently MacOS and BSD platforms are NOT fully supported, some features may be unstable or missing.
Note: Embedded platforms, proprietary NAS and routers systems are NOT officially supported, pyLoad may be crash unexpectately or NOT work at all under them!
You need at least Python 2.6 or Python 3.3 to run pyLoad and all of its required software dependencies.
All the dependencies should be automatically installed by the PIP install procedure. If you prefer the Easy install procedure, all the needed packages should be already included in the Pre-built Package you'll choose.
Note: Test-suite packages are required only if you want to test your installation with the built-in test suite.
- Python 1
- CPython 1.0
- CPython 1.5
- CPython 1.6
- Python 2
- CPython 2.0
- CPython 2.1
- CPython 2.2
- CPython 2.3
- CPython 2.4
-
CPython 2.5(not supported anymore) - CPython 2.6 (supported but deprecated)
- CPython 2.7
- PyPy
- Python 3
- CPython 3.0
- CPython 3.1
- CPython 3.2
- CPython 3.3
- CPython 3.4
- CPython 3.5
- CPython 3.6
- PyPy3
Package name | Min version | Notes |
---|---|---|
argparse | * | |
Beaker | 1.6 | |
bottle | 0.10.0 | |
daemonize | * | |
future | * | |
psutil | * | |
pycurl | * | |
requests | 2.0 | |
tld | * | |
validators | * |
Package name | Min version | Purpose | Notes |
---|---|---|---|
beautifulsoup4 | * | Additional features | |
bitmath | * | Additional features | |
bjoern | * | Lightweight webserver | Unix only |
colorama | * | Colored log | |
colorlog | * | Colored log | |
dbus-python | * | Additional features | Unix only |
goslate | * | Text translation | |
IPy | * | Additional features | |
Js2Py | * | JavaScript evaluation | |
Pillow | 2.0 | Captcha recognition | |
pip | * | pyLoad auto-update | |
pycrypto | * | Click'n'Load support | |
pyOpenSSL | * | SSL connection | |
rarfile | * | Archive decompression | |
Send2Trash | * | Trash support | |
setproctitle | * | Additional features | |
watchdog | * | Additional features |
Package name | Min version | Notes |
---|---|---|
nose | * | |
requests | 1.2.2 | |
websocket-client | 0.8.0 |
Notice: Before start, make sure you have Python installed on your system. To learn how to install it see https://wiki.python.org/moin/BeginnersGuide/Download.
You can install pyLoad in several ways:
- PIP install (recommended on Unix based systems)
- Easy install (recommended on Windows)
- Manually install
Notice: Before start, make sure you have pip (and setuptools) installed on your system. To learn how to install them see https://pip.pypa.io/en/stable/installing/.
Type in your command shell with administrator/root privileges:
pip install --upgrade pyload-ng
If the above command fails, consider using the --user
option:
pip install --upgrade --user pyload-ng
If that fails too, try the Easy Install procedure or at least the Manually Install procedure.
- Download the Pre-built Package for your platform.
- Extract the downloaded archive.
- Run pyLoad from the extracted archive path.
- Get the latest tarball of the source code from the
Stable Branch OR the Testing BranchMaster Branch. - Extract the downloaded archive.
- Change directory to the extracted archive path.
- Run the built-in setup utility as described in the Configuration Section.
- If setup fails or pyLoad crashes on startup, try manually installing the software dependencies or report your issue.
To run pyLoad with default profile, just type in your command shell:
pyload
To run as daemon, type:
pyload --daemon
To show the help list, type:
pyload --help
That's all Folks!
Note: Depending on your environment, command
pyload
might be equivalent topyLoad.py
orpyLoad.exe
.
Note: On first start, the setup assistant will be automatically launched to help you to configure your profile.
Note: The web user interface will be accessible pointing your web browser to the ip address and configured port (defaults to
http://localhost:8010
).
Note: The remote API server instead will be listening to
http://localhost:7447
.
To run pyLoad with a custom profile, type:
pyload -p <profilename>
To run as daemon, type:
pyload -p <profilename> --daemon
Note: The
profile
argument must be a string name, NOT a directory path!
Note: The
profile
argument is optional, but if you do not enter any value, the profiledefault
will be used. New profiles will be created automatically inside the current config directory when declared.
After finishing the setup assistant pyLoad is ready to use and more configuration can be done via the web user interface. Additionally you could simply edit the config files located in your config directory.
To run the built-in setup utility, type:
pyload setup
OR enter (from the directory where pyLoad is installed):
python setup.py install
Note: The default path of the config directory is
%appdata%\pyload
on Windows platform and~/.pyload
otherwise.
Note: To learn how to change the config directory see the help list.
To start pyLoad in verbose (debug) mode, type:
pyload --debug
To enable the webserver debugging as well, append:
pyload --debug --webdebug
To stop a pyLoad instance, type:
pyload stop -p <profilename>
OR directly, to stop anyone:
pyload stop
To restart a pyLoad instance, type:
pyload restart -p <profilename>
To update the pyLoad core (plugins excluded), type:
pyload update
To run the built-in test suite, type:
pyload test
You can import pyLoad directly in your script:
import pyload-ng as pyload
Available methods for the above pyload
object are:
pyload.start(profile=None, configdir=None, refresh=0, remote=None, webui=None, debug=0, webdebug=0, daemon=False)
- DESCRIPTION: Start a process instance.
- RETURN: Multiprocessing instance.
- ARGUMENTS:
profile
sets the profile name to use (default
if none entered).configdir
sets the config directory path to use (%appdata%\pyload
on Windows platforms or~/.pyload
otherwise, if none entered).refresh
sets refresh/restore mode (0=off; 1=removes compiled and temp files; 2=plus restore default usernameadmin
and passwordpyload
).remote
enables remote API interface at enteredIP address:Port number
(use defaults if none entered).webui
enables web user interface at enteredIP address:Port number
(use defaults if none entered).debug
sets debug mode (0=off; 1=on; 2=verbose).webdebug
sets webserver debugging (0=off; 1=on).daemon
daemonizes process.
pyload.stop(profile=None, wait=300)
- DESCRIPTION: Terminate a process instance.
- RETURN: None type.
- ARGUMENTS:
profile
sets the profile name of the process to terminate (terminate all the running processes if none entered).wait
sets the timeout (in seconds) before force to kill the process.
pyload.restart(profile=None, configdir=None, refresh=0, remote=None, webui=None, debug=0, webdebug=0, daemon=False)
- DESCRIPTION: Restart a process instance.
- RETURN: Multiprocessing instance.
- ARGUMENTS:
profile
sets the profile name to use (default
if none entered).configdir
sets the config directory path to use (%appdata%\pyload
on Windows platforms or~/.pyload
otherwise, if none entered).refresh
sets refresh/restore mode (0=off; 1=removes compiled and temp files; 2=plus restore default usernameadmin
and passwordpyload
).remote
enables remote API interface at enteredIP address:Port number
(use defaults if none entered).webui
enables web user interface at enteredIP address:Port number
(use defaults if none entered).debug
sets debug mode (0=off; 1=on; 2=verbose).webdebug
sets webserver debugging (0=off; 1=on).daemon
daemonizes process.
pyload.setup()
- DESCRIPTION: Setup the package.
- RETURN: None type.
- ARGUMENTS: None.
pyload.update(dependencies=True, reinstall=False, prerelease=True)
- DESCRIPTION: Update the package.
- RETURN: None type.
- ARGUMENTS:
dependencies
sets to update package dependencies.reinstall
sets to reinstall all packages even if they are already up-to-date.prerelease
sets to update to pre-release and development versions.
pyload.status(profile=None)
- DESCRIPTION: Show the process PID.
- RETURN: PID list.
- ARGUMENTS:
profile
sets the profile name of the process to show (show all the running processes if none entered).
pyload.info()
- DESCRIPTION: Show the package info.
- RETURN: Info dict.
- ARGUMENTS: None.
pyload.version()
- DESCRIPTION: Show the package version info.
- RETURN: Version tuple.
- ARGUMENTS: None.
pyload.test()
- DESCRIPTION: Run the test suite.
- RETURN: None type.
- ARGUMENTS: None.
Note:
pyload.start
andpyload.restart
return immediately, even if the resulting instance is not already fully running!
Note: To stop a single pyLoad instance you MUST pass its profile name to the function
pyload.stop
, otherwise all the running instances of pyLoad will be terminated!
Note: Calling function
pyload.restart
without a proper profile name will force to try to terminate thedefault
profile one.
A quick example of how start & stop a couple instances of pyLoad launched concurrently:
import pyload-ng as pyload
pyload.start('myprofile1')
pyload.start('MyProfile2')
pyload.stop('myprofile1')
pyload.stop('MyProfile2')
- pyLoad repository: https://github.com/pyload/pyload.
- pyLoad documentation: https://github.com/pyload/pyload/wiki.
- pyLoad roadmap: https://github.com/pyload/pyload/milestones.
Note: To report issues or submit your contributions, you need to be registered on GitHub. It's free and take less a minute to signup.
To report an issue, suggest features, ask for a question or help us out, open a ticket.
Please, always title your issues with a pertinent short description and expone accurately the problem you encounter.
Don't foget to attach a full debug log of your bugged session from the first start or we cannot help you. To learn how to start pyLoad in debug mode see the Usage Section.
To submit your code to the pyLoad repository open a new Pull Request.
You have to sign our Contributor License Agreement to allow us to integrate your work in the pyLoad repository. You can sign it easily from within your pull request itself.
For further information see the License Section.
Please, follow the PEP 8 - Style Guide for Python Code.
Notice: Localization not yet available.
Note: The localization process is managed directly under the Crowdin page http://crowdin.net/project/pyload.
You can download the latest locale files from https://crowdin.com/download/project/pyload.zip.
To compile them, run the built-in setup utility (see the Configuration Section).
Notice: Stats not yet available.
Please refer to the included LICENSE for the extended license and CLA.
Please refer to the plugins LICENSE for the extended license.
Please refer to the included CREDITS for the extended credits.