Wrapper around qBittorrent's API to manage your torrents from Node. Documented and everything.
npm i huihuimoe/node-qbittorrent-api
or use yarn yarn add huihuimoe/node-qbittorrent-api
- Connect to host
- Add a torrent
- List torrents
- Global info
- Torrent info
- Global commands
- Torrent commands
- File commands
Arguments
host
username
optionalpassword
optional
Returns
Interface object to call methods on.
Example
var api = require("qbittorrent-api");
var qbt = api.connect("http://localhost:8080", "admin", "DELETETHIS");
qbt.version(function (error, data) {
console.log(data);
});
Arguments
torrent
- Path or URL to torrent file, Readable stream, or magnet link.savePath
optionallabel
optionalcallback
optionalerror
Example
qbt.add("magnet:?xt=urn:btih:PRFPQ2Z6XYO2SB3Z5N6A3RKW4KSJA62E");
qbt.add("http://torrents.linuxmint.com/torrents/linuxmint-17.3-cinnamon-64bit.iso.torrent", "D:\\Files", "software");
var stream = fs.createReadStream("~/torrents/2.Girls.1.Cup.torrent");
qbt.add(stream, "~/files/Tax Returns");
watcher.on("add", function (filePath) {
qbt.add(filePath, function (error) {
console.log("New torrent: " + filePath);
});
});
Arguments
host
value
Example
qbt.setCookie("www.website.com", "ui=28979218048197");
qbt.add("http://www.website.com/torrentname.torrent");
Arguments
label
optional - Filter by labeloptions
optional - Additional optionssort
reverse
limit
offset
callback
error
items
Example
qbt.all("Movies", { sort: "size", reverse: true }, function (error, items) {
items.forEach(function (item) {
console.log(item["name"] + ": " + item["size"]);
});
});
qbt.paused(function (error, items) {
qbt.resume(items);
});
Arguments
searchText
options
optional - Search optionsfilter
label
sort
reverse
limit
offset
callback
error
items
Example
qbt.search("donkey", {
filter: "completed",
label: "Video"
}, function (error, items) {
qbt.deleteData(items);
});
Arguments
callback
error
data
Example
qbt.transferInfo(function (error, data) {
console.log(data["connection_status"]);
});
Arguments
torrent
- Torrent object or hash stringcallback
error
data
Example
qbt.active(function (error, items) {
items.forEach(function (item) {
qbt.details(item, function (error, data) {
console.log(item["name"] + ": " + data["up_speed_avg"]);
});
});
});
Arguments
callback
optionalerror
Arguments
value
callback
optionalerror
Arguments
values
- Object of key-value pairs (list of keys)callback
optionalerror
Example
qbt.setPreferences({ save_path: "D:\\New" }, function (error) {
qbt.preferences(function (error, values) {
console.log(values["save_path"]);
});
});
Arguments
torrents
- One or more torrent objects or hash stringscallback
optionalerror
Example
qbt.errored(function (error, items) {
qbt.recheck(items);
});
Arguments
torrents
- One or more torrent objects or hash stringsvalue
callback
optionalerror
Example
qbt.queued(function (error, items) {
qbt.setForceStart(items, true);
});
Arguments
torrents
- One or more torrent objects or hash stringstrackers
- Array of tracker url stringscallback
optionalerror
Example
qbt.inactive(function (error, items) {
qbt.addTrackers(items, [
"udp://tracker.openbittorrent.com:80/announce",
"udp://tracker.publicbt.com:80/announce"
]);
});
Arguments
torrent
- Single torrent object or hash stringfileId
- Index of the file in the torrent's file list (zero-based)value
0
- Do not download1
- Normal2
- High7
- Maximum
callback
optionalerror
Example
qbt.paused(function (error, items) {
items.forEach(function (item) {
qbt.files(item, function (error, files) {
files.forEach(function (file, index) {
if (file.progress === 0) {
qbt.setFilePrio(item, index, 0);
}
});
});
});
});