This document provides a high-level introduction to pyLoad, explaining its purpose as a download manager and outlining the major components of the system architecture. This overview covers the fundamental concepts and primary systems that make up pyLoad.
For detailed information about specific subsystems, see the Core Architecture (#2), Plugin System (#3), Network Layer (#4), and Web Interface (#5) sections.
pyLoad is a free and open-source download manager written in pure Python, designed to automate file downloads from various hosting services. It provides a web-based interface for managing downloads, supports premium accounts for faster downloads, and uses an extensible plugin system to handle different hosting providers.
Key capabilities include:
http://localhost:8000Sources: README.md1-324
The following diagram illustrates the major functional areas of pyLoad and their relationships:
Sources: README.md26-48 src/pyload/webui/app/themes/pyplex/templates/base.html1-254
The pyLoad core manages the application lifecycle, configuration, and coordinates between all subsystems. It provides the central API that other components use to interact with the system.
pyLoad's extensibility comes from its plugin architecture, which supports four main plugin types:
A Flask-based web application provides the primary user interface, featuring:
Handles all HTTP communications including:
Manages persistent data storage and file operations:
Sources: src/pyload/webui/app/themes/pyplex/templates/base.html54-87 src/pyload/webui/app/themes/modern/templates/base.html54-87
The following diagram maps the high-level concepts to specific code entities and file structures:
Sources: src/pyload/webui/app/themes/pyplex/templates/base.html106-156 src/pyload/webui/app/themes/modern/templates/base.html106-156 src/pyload/webui/app/templates/base.html1-174
| Component | Technology | Purpose |
|---|---|---|
| Web Framework | Flask | HTTP server and web interface |
| Database | SQLite | Configuration and metadata storage |
| HTTP Library | pycurl | Network requests and downloads |
| UI Framework | Bootstrap + jQuery | Web interface styling and interactions |
| Templating | Jinja2 | HTML template rendering |
| Packaging | setuptools | Python package distribution |
| Containerization | Docker | Multi-architecture deployment |
pyLoad can be installed via pip and started with simple commands:
This creates the following directory structure:
~/Downloads/pyLoad: Download storage location~/.pyload: User configuration and data files<TMPDIR>/pyLoad: Temporary filesThe web interface becomes available at http://localhost:8000 with default credentials pyload:pyload.
Sources: README.md34-95
pyLoad supports multiple deployment methods:
Available container images:
pyload/pyload:alpine (amd64, arm, arm64v8)pyload/pyload:ubuntu-arm32v7 (arm32v7)Available through PyPI as pyload-ng with optional dependency groups:
pyload-ng[plugins]: Additional plugin dependenciespyload-ng[build]: Translation building toolspyload-ng[all]: All optional dependenciesSources: README.md163-227
Refresh this wiki