npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

iobroker.dl-manager

v0.4.0

Published

ioBroker adapter for download managers: JDownloader, qBittorrent, Transmission, Deluge, SABnzbd, NZBGet, aria2 and pyLoad

Readme

ioBroker.dl-manager

Release: npm version stable Installations npm downloads

Build: Test and Release Node TypeScript License Sentry

Support: Ko-fi PayPal

Monitors and controls your download programs from ioBroker — JDownloader 2, qBittorrent, Transmission, Deluge, SABnzbd, NZBGet, aria2 and pyLoad — in one instance.

🇺🇸 Documentation · 🇩🇪 Dokumentation


Features

  • Every configured program is a device with its speed, limits, free space, pause switch and an input to add a download
  • Every download is a channel of its own with status, progress, size, speed and time left — ready for Blockly without parsing anything
  • One status list for all programs: queued, downloading, waiting, paused, checking, post-processing, seeding, completed, failed
  • A summary over all programs: any download active, total speed, pause all, last finished and last failed download
  • Several programs of the same kind side by side (for example two qBittorrent servers)

Sentry / Error reporting

This adapter uses Sentry libraries to automatically report exceptions and code errors to the developers. Reporting is active by default. It stays off when the ioBroker diagnostics setting is none (diag in the system configuration), when data reporting is disabled for this instance or its host (disableDataReporting), and on CI systems. A report contains the error with its stack trace and technical context such as versions and platform, plus an anonymous installation ID.

For details and how to disable it, see the Sentry plugin documentation. Error reporting requires js-controller 3.0 or newer.


Requirements

  • Node.js >= 22
  • ioBroker js-controller >= 7.2.2
  • ioBroker Admin >= 8.0.14
  • At least one of the supported download programs, reachable from the ioBroker host

| Program | Tested with | Access | | ------------- | --------------------------------------- | ---------------------------------------------------------------------- | | JDownloader 2 | build 48637 (local API), My.JDownloader | local API without password, or your My.JDownloader e-mail and password | | qBittorrent | 4.6.7, 5.1.4, 5.2.3 | user and password, or API key (5.2 and later) | | Transmission | 4.0.6, 4.1.3 | user and password (if set in Transmission) | | Deluge | 2.1.1, 2.2.0 | web UI password | | SABnzbd | 4.5.5, 5.1.3 | API key | | NZBGet | 24.8, 26.3 | control user and password | | aria2 | 1.37.0 | RPC secret | | pyLoad-ng | 0.5.0b3.dev101 | API key, or user and password |

Every version in this table was started in a container and put into each status it can reach; the adapter's tests run against those recorded answers.

The adapter CANNOT be installed via GitHub: The adapter must be installed via the ioBroker repository (stable or latest).


Configuration

| Setting | Meaning | | ------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Programs | One card per program. + adds one: choose the program, and its dialog asks only for what that program needs — a name, address, port (empty = its default), its login and, under Advanced, HTTPS and path | | Query interval | How often every program is asked (seconds, 10 to 3600, default 10). My.JDownloader is asked at most every 30 seconds | | Downloads in the object tree | All (default), Without completed or Only unfinished (no completed, no seeding). Failed downloads always stay. The program keeps every download, and the totals count all of them | | At most this many downloads per program | Default 100, 0 = all. Above the limit, running and failed downloads keep their channel first, completed and seeding ones give it up first. More than 200 per program slow ioBroker down — the settings page and the log warn about it |

Every program can be added as often as you like — two qBittorrent servers, a local JDownloader and one at a friend's. A second entry for the same program (the same address, or the same JDownloader of a My.JDownloader account) is refused. Each card shows whether the program answers, its speed and running downloads, and has an on/off switch, a connection test, edit and delete; its details show the object ID. A change on a card applies at once — the instance does not restart. Passwords and API keys are stored encrypted.

The name is only a label. The object ID is given by the adapter once, when the program is added: the program and the machine it runs on (qbittorrent-nas, transmission-192-168-1-20, aria2-<ioBroker host> for localhost), for My.JDownloader the last four characters of the account's id for that JDownloader (jdownloader-7f11). A second program on the same machine gets its port, then a counter. Renaming, a new address or switching a JDownloader between local and My.JDownloader keeps the ID.

JDownloader: the dialog switches between Local network and Through My.JDownloader. The local API (JDownloader → Settings → Advanced settings → DeprecatedApi) has no password — use it only when JDownloader runs on the ioBroker host or in the same Docker network. Through My.JDownloader you log in with your account and pick the JDownloader from a list.

SABnzbd refuses host names it does not know — enter an IP address or add the name to host_whitelist in SABnzbd. Transmission answers only addresses in its rpc-whitelist — add the ioBroker host or switch the whitelist off.


State Tree

dl-manager.0
├── info                     connection, programsTotal, programsOnline, programsAllOnline
├── summary                  downloading, active, queued, downloadSpeed, uploadSpeed, pauseAll
│   └── last                 finished, finishedTime, failed, failedTime
└── <program>-<piece>        e.g. qbittorrent-nas
    ├── online, error, version, downloading, paused, downloadSpeed, uploadSpeed,
    │   speedLimit, uploadLimit, altSpeed, freeSpace, active, queued, total, add
    ├── last                 finished, finishedTime, failed, failedTime
    └── downloads
        └── <download>       status, progress, size, downloaded, speed, uploadSpeed, ratio, eta,
                             added, finished, category, error, paused, remove (+ program extras)

Only the datapoints a program really supports are created — pyLoad has no pause per download, SABnzbd and NZBGet no speed per download, only the torrent programs have upload and ratio.


Troubleshooting

| What you see | What it means | | ------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | online is false, error shows a network text | The program is not reachable from the ioBroker host — host, port, HTTPS, firewall | | A warning "login rejected" and an ioBroker notification | The program refused the login. The adapter asks it no more (qBittorrent and Transmission lock an address after failed logins) until its card changes; the warning names what to check on the card | | error is Unknown | The program has not been asked yet, the adapter is stopped, or its card cannot run — the card says why | | A download disappears | The program removed it, or the tree settings leave it out — its status is not shown, or the program has more downloads than the limit | | pyLoad reports "too many requests" | pyLoad allows 100 calls a minute — raise the query interval |

The test button on a program's card asks the program once and shows its answer.


Changelog

0.4.0 (2026-10-02)

  • Fixed: saving a card while a second admin tab changed the programs could bring back a deleted card or undo a learned My.JDownloader connection
  • Fixed: a switched-off program no longer blocks its address when you add the same program again
  • Fixed: an updated JDownloader, qBittorrent or aria2 shows its new version without restarting the adapter
  • Fixed: the details of a card open even when the program settings cannot be read
  • Fixed: an empty entry in a Transmission or SABnzbd list no longer stops the query
  • Fixed: a download added while JDownloader is paused no longer starts all its downloads again
  • Changed: a card that cannot run shows what is wrong on the card; its error datapoint says Unknown
  • Changed: a program that is down behind a reverse proxy counts as not reachable
  • Changed: a new instance starts switched off until you set it up

0.3.2 (2026-09-30)

  • Changed: your programs and their access data moved out of the object tree into a file of the instance, which every ioBroker backup includes — an object export no longer shows them

0.3.1 (2026-09-30)

  • Changed: after adding, editing, switching or deleting a program on its card you now see at once whether it worked — the program answers, is not reachable, or is gone
  • Fixed: the warning for a rejected login names what to check on the card and says so when the card holds no login at all, as with Transmission's login switch
  • Changed: the query interval now starts at 10 seconds; a smaller value stored before keeps working and simply runs at 10 seconds from now on
  • Fixed: when several programs answered at the same moment, the totals could briefly show an older speed or count

0.3.0 (2026-09-29)

  • Fixed: saving a program card no longer hangs, and the settings page can no longer undo a change made on a card
  • Changed: a change on a card applies at once without restarting the adapter; passwords are no longer kept in plain text
  • Changed: device IDs follow the program and machine (My.JDownloader: its id) and never change; the name is a label
  • Changed: the last finished and failed download moved into a last channel below each program and the summary
  • Changed: the card shows the object ID in its details and has no pause switch; the paused datapoint stays
  • Fixed: a JDownloader renamed in its own settings keeps its My.JDownloader connection

0.2.0 (2026-09-29)

  • New: programs are set up as cards — a dialog with only the program's fields, and test, pause and on/off on every card
  • New: for My.JDownloader you pick the JDownloader from a list of your account after logging in
  • New: a second entry for the same program (same address, or same My.JDownloader device) is refused
  • Changed: switching a JDownloader between local and My.JDownloader keeps its rooms and functions
  • Fixed: a download that showed up again could show empty values until something about it changed

Older changelogs can be found there

Support

Support Development

This adapter is free and open source. If you find it useful, consider buying me a coffee:

Ko-fi PayPal


License

MIT License

Copyright (c) 2026 krobi [email protected]

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.


Developed with assistance from Claude.ai