English | Italiano
A Chrome extension (Manifest V3) to send links to a pyLoad server — an alternative to Yape. Compatible with pyLoad 0.5.0 (pyload-ng): it uses the /json/add_package endpoint with the browser session and CSRF token, since the legacy /api/login and /api/addPackage endpoints respond 404 "Obsolete API" on 0.5.0.
-
Context menu — right-click on a link, an image, a video, selected text or the page → "Download with pyLoad". All URLs are automatically extracted from selected text.
-
Download interception (optional) — the download starts normally in Chrome, and at the same time an in-page modal asks what to do with it:
- Continue with pyLoad — the Chrome download is cancelled and the link is sent to the server instead;
- Continue with Chrome — nothing happens, the download keeps going on its own;
- Cancel (also with Esc or by clicking outside the modal) — the download is stopped and nothing is sent to pyLoad.
Where the modal cannot be injected (
chrome://pages, Web Store…) a centered chooser window opens instead. If sending to pyLoad fails (e.g. expired session), the Chrome download is left running so nothing is lost. -
Icon click — the pinned extension icon works as an interception toggle: green ON badge when active.
-
Notifications confirming success or reporting errors after every send.
-
Multilingual — English (default) and Italian, selected automatically from the browser language (
chrome.i18n,_locales/folder).
- Download or clone this repository.
- Open Chrome and go to
chrome://extensions. - Enable Developer mode (top right).
- Click "Load unpacked" and select the repository folder.
Open the extension Options (right-click the icon → Options) and set:
| Field | Description |
|---|---|
| Protocol | http or https |
| Address | Host or IP of the pyLoad server (e.g. 192.168.1.10, paths for reverse proxies work too: nas.local/pyload) |
| Port | Web interface port (pyLoad default: 8000; leave it empty behind a reverse proxy) |
| Destination | Queue (start immediately) or Collector (add without starting) |
| Fixed package name | If empty, the package name is derived from the file name or the site of the link |
| Intercept downloads | Enables the prompt before every Chrome download |
The "Test connection" button checks that the server responds and the session is active.
pyLoad 0.5.0 no longer exposes an API login: the extension reuses the browser session.
- Log in normally to the pyLoad web interface in a browser tab.
- The extension reuses that session cookie and extracts the CSRF token from the
/dashboardpage before every send. - If the session is missing or expired, the extension shows a link to reopen the web interface and log in again.
No credentials are stored in the extension.
GET /dashboard— session check and CSRF token extraction from the<meta name="csrf-token">tagPOST /json/add_package—multipart/form-databody withadd_name,add_links(newline-separated URLs) andadd_dest(0 = Collector, 1 = Queue);X-CSRFTokenandX-Requested-With: XMLHttpRequestheaders, session cookies included (field names as in the pyload-ngjson_blueprint.pysource)
Note: the documented /api/* endpoints of pyLoad 0.5.0 (e.g. /api/add_package) do not accept the session authentication used by the web frontend; the extension uses the same /json/* endpoints as the web interface.
The bundled icons are a pyLoad-style recreation (download arrow on a blue circle). To use the official logo, replace the files in icons/ (icon16.png, icon48.png, icon128.png) with the resized official PNG.