![require(esm) Backported to Node.js 20, Paving the Way for ESM-Only Packages](https://cdn.sanity.io/images/cgdhsj6q/production/be8ab80c8efa5907bc341c6fefe9aa20d239d890-1600x1097.png?w=400&fit=max&auto=format)
Security News
require(esm) Backported to Node.js 20, Paving the Way for ESM-Only Packages
require(esm) backported to Node.js 20, easing the transition to ESM-only packages and reducing complexity for developers as Node 18 nears end-of-life.
node-qbittorrent
Advanced tools
> TypeScript api wrapper for [qBittorrent](https://www.qbittorrent.org/) using [got](https://github.com/sindresorhus/got)
TypeScript api wrapper for qBittorrent using got
npm install @ctrl/qbittorrent
import { QBittorrent } from '@ctrl/qbittorrent';
const client = new QBittorrent({
baseUrl: 'http://localhost:8080/',
username: 'admin',
password: 'adminadmin',
});
async function main() {
const res = await qbittorrent.getAllData();
console.log(res);
}
Docs: https://qbittorrent.vercel.app
qBittorrent Api Docs: https://github.com/qbittorrent/qBittorrent/wiki/WebUI-API-(qBittorrent-4.1)
These functions have been normalized between torrent clients to easily support switching between multiple torrent clients. See below for alternative supported torrent clients
Returns all torrent data and an array of label objects. Data has been normalized and does not match the output of native listTorrents()
.
const data = await client.getAllData();
console.log(data.torrents);
Returns one torrent data from torrent hash
const data = await client.getTorrent('torrent-hash');
console.log(data);
Pause or resume a torrent
const paused = await client.pauseTorrent();
console.log(paused);
const resumed = await client.resumeTorrent();
console.log(resumed);
Remove a torrent. Does not remove data on disk by default.
// does not remove data on disk
const result = await client.removeTorrent('torrent_id', false);
console.log(result);
// remove data on disk
const res = await client.removeTorrent('torrent_id', true);
console.log(res);
Add a torrent, has client specific options. Also see normalizedAddTorrent
const result = await client.addTorrent(fs.readFileSync(torrentFile));
console.log(result);
Add a torrent and return normalized torrent data, can start a torrent paused and add label
const result = await client.normalizedAddTorrent(fs.readFileSync(torrentFile), {
startPaused: false;
label: 'linux';
});
console.log(result);
All of the following npm modules provide the same normalized functions along with supporting the unique apis for each client.
deluge - https://github.com/scttcper/deluge
transmission - https://github.com/scttcper/transmission
utorrent - https://github.com/scttcper/utorrent
FAQs
A client implementation of qBittorrent WebAPI
The npm package node-qbittorrent receives a total of 0 weekly downloads. As such, node-qbittorrent popularity was classified as not popular.
We found that node-qbittorrent demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
require(esm) backported to Node.js 20, easing the transition to ESM-only packages and reducing complexity for developers as Node 18 nears end-of-life.
Security News
PyPI now supports iOS and Android wheels, making it easier for Python developers to distribute mobile packages.
Security News
Create React App is officially deprecated due to React 19 issues and lack of maintenance—developers should switch to Vite or other modern alternatives.