Notice:
- Master Branch is under heavy development, very unstable, often broken.
- Stable Branch is production ready.
- Status
- Contact Us
- Description
- Supported Platforms
- Supported Interpreters
- Installation
- Usage
- Development
- Licensing
- Credits
- Release History
pyLoad is the Free and Open Source download manager written in Pure Python
and designed to be extremely lightweight, fully customizable and remotely
manageable.
pyLoad works with Windows, MacOS and Unix based systems like
Linux and FreeBSD.
Embedded platforms, proprietary NAS and routers systems are NOT officially
supported, pyLoad may crash unexpectately or NOT work at all under them!
Note: Currently, MacOS and BSD platforms are NOT fully supported, some features may be missing or unstable.
To run pyLoad you must have installed on your system the
Python interpreter.
You need at least Python2.6 or Python3.3 to run pyLoad.
Python versions from Python3.0 to Python3.2 are NOT supported!
An experimental support for PyPy is available;
as expected you need at least PyPy2.6 or PyPy3.3 to run pyLoad.
You can install pyLoad in several ways:
- PIP install (recommended on Unix based systems)
- Tarball Install
Please refer to https://requires.io/github/pyload/pyload/requirements/?branch=master for the package dependencies list.
All entries are mandatory for the own scope:
- Packages listed in
setup.txtare required by the built-insetup.pyto run itself. - Packages listed in
install.txtare required by the built-insetup.pyjust to install the pyLoad package. - Packages listed in
test.txtare required by the built-insetup.pyjust to test the pyLoad package.
Note: All the mandatory dependencies should be solved automatically if you choose the PIP install method.
Note: To install
pyLoadusing the PIP install method you need the package pip, version 7 or later. To learn how to install it see https://pip.pypa.io/en/stable/installing/.
Type in your command shell with administrator/root privileges:
pip install pyload-ng[full]
Under Unix based systems this usually means you have to use sudo:
sudo pip install pyload-ng[full]
The full option ensures that all the optional packages will downloaded and
installed as well as the mandatory ones.
You can install just the essential dependencies typing:
pip install pyload-ng
If the above commands fail, consider using the
--user option:
pip install --user pyload-ng
If this command fails too, try the others install methods. Leaves as last resort to report your issue.
- Get the latest tarball of the source code in format ZIP or TAR.
- Extract the downloaded archive.
- From the extracted directory path, run the command
python setup.py build. - Then run the command
python setup.py install.
To run pyLoad with the default profile, just type in your command shell:
pyload
To run as daemon, type:
pyload --daemon
To run in debug mode, type:
pyload --debug
To show the help list, type:
pyload --help
Note: Depending on your environment, command
pyloadmight be equivalent topyLoad.pyorpyLoad.exe.
Note: If you have installed the package
pyload.webui, the web user interface is reachable pointing your web browser to the configured ip address and port (default tohttp://localhost:8010).
Note: If you have installed the package
pyload.rpc, the remote API server is listening to the configured ip address and port (default tohttp://localhost:7447).
pyLoad's command line supports several options:
start, stop, restart, version.
Note: If you do not enter any option,
startwill be used.
To run pyLoad with a custom profile, type:
pyload start --profile <profilename>
Omitting the start option:
pyload --profile <profilename>
Shorten:
pyload -p <profilename>
Note:
<profilename>must be a plain text string, NOT a directory path!
Note: If you do not enter any
<profilename>, the stringdefaultwill be used.
To run pyLoad with a custom config folder:
pyload start --configdir <dirpath>
Omitting the start option:
pyload --configdir <dirpath>
Shorten:
pyload -c <dirpath>
Note: If you do not enter any
<dirpath>, the path%appdata%\pyloadwill be choosed for Windows platforms and~/.pyloadotherwise.
Notice: When a new profile is declared, a directory with the same name is created inside the config directory.
To quit a pyLoad instance, type:
pyload quit --profile <profilename>
To restart a pyLoad instance, type:
pyload restart --profile <profilename>
To import pyLoad in your script, enter:
import pyload
Available methods:
pyload.core.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:
profilesets the profile name to use (defaultif none entered).configdirsets the config directory path to use (%appdata%\pyloadon Windows platforms or~/.pyloadotherwise, if none entered).refreshsets refresh/restore mode (0=off; 1=removes compiled and temp files; 2=plus restore default usernameadminand passwordpyload).remoteenables remote API interface at enteredIP address:Port number(use defaults if none entered).webuienables web user interface at enteredIP address:Port number(use defaults if none entered).debugsets debug mode (0=off; 1=on; 2=verbose).webdebugsets webserver debugging (0=off; 1=on).daemondaemonizes process.
pyload.core.quit(profile=None, wait=300)- DESCRIPTION: Terminate a process instance.
- RETURN: None type.
- ARGUMENTS:
profilesets the profile name of the process to terminate (terminate all the running processes if none entered).waitsets the timeout (in seconds) before force to kill the process.
pyload.core.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:
profilesets the profile name to use (defaultif none entered).configdirsets the config directory path to use (%appdata%\pyloadon Windows platforms or~/.pyloadotherwise, if none entered).refreshsets refresh/restore mode (0=off; 1=removes compiled and temp files; 2=plus restore default usernameadminand passwordpyload).remoteenables remote API interface at enteredIP address:Port number(use defaults if none entered).webuienables web user interface at enteredIP address:Port number(use defaults if none entered).debugsets debug mode (0=off; 1=on; 2=verbose).webdebugsets webserver debugging (0=off; 1=on).daemondaemonizes process.
pyload.core.setup()- DESCRIPTION: Setup the package.
- RETURN: None type.
- ARGUMENTS: None.
pyload.core.upgrade(dependencies=True, reinstall=False, prerelease=True)- DESCRIPTION: Update the package.
- RETURN: None type.
- ARGUMENTS:
dependenciessets to update package dependencies.reinstallsets to reinstall all packages even if they are already up-to-date.prereleasesets to update to pre-release and development versions.
pyload.core.status(profile=None)- DESCRIPTION: Show the process PID.
- RETURN: PID list.
- ARGUMENTS:
profilesets the profile name of the process to show (show all the running processes if none entered).
pyload.core.info()- DESCRIPTION: Show the package info.
- RETURN: Info dict.
- ARGUMENTS: None.
pyload.core.version()- DESCRIPTION: Show the package version info.
- RETURN: Version tuple.
- ARGUMENTS: None.
pyload.core.test()- DESCRIPTION: Run the test suite.
- RETURN: None type.
- ARGUMENTS: None.
Note:
pyload.core.startandpyload.core.restartreturn immediately, even if the resulting instance is not already fully running!
Note: To terminate a single pyLoad instance you MUST pass its profile name to the function
pyload.core.quit, otherwise all the running instances ofpyLoadwill be terminated!
Note: Calling function
pyload.core.restartwithout a proper profile name will force to try to terminate thedefaultprofile one.
A quick example of how start & stop a couple instances of pyLoad launched
concurrently:
import pyload
pyload.core.start('myprofile1')
pyload.core.start('MyProfile2')
pyload.core.quit('myprofile1')
pyload.core.quit('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.
Note: To learn how to start
pyLoadin debug mode see the Usage Section.
To submit your code to the pyLoad repository open a new Pull Request.
If you want to contribute to the project you have to sign our Contributor License Agreement to allow us to integrate your work in the official 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.
You can download the latest locale files from
https://crowdin.com/download/project/pyload.zip.
Notice: Stats not yet available.
You are allowed to use this software under the terms of the GNU Affero General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.
Please refer to the included LICENSE for the extended Open Source License.
With an explicit permission of the authors you may use or distribute this software under a different license according to the agreement.
Contact us at licensing@pyload.net for any question about our code licensing.
Please refer to the included CLA for the extended agreement.
However, to summarise, this is essentially what you will be agreeing to:
- You affirm that you have the right to provide the contribution (i.e. it's your own work).
- You grant the project a perpetual, non-exclusive license to use the contribution.
- You grant the project rights to change the outbound license that we use to distribute the code.
- You retain full ownership (copyright) of your submission and are free to do with it as you please.
Please contact us at cla@pyload.net if you wish to contribute to the project, but feel you cannot sign the agreement.
Please refer to the included CREDITS for the extended credits.
Please refer to the included CHANGELOG for the detailed release history.
