qbittorrent-api

    1.0.0 • Public • Published

    # Description

    Wrapper around qBittorrent's API to manage your torrents from Node. Documented and everything.

    Installation

    npm i qbittorrent-api

    Overview

    Documentation

    Connect to host

    connect(host, [username], [password])

    Arguments

    • host
    • username optional
    • password 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);
    });

    Methods

    Add a torrent

    add(torrent, [savePath], [label], [callback])

    Arguments

    • torrent - Path or URL to torrent file, Readable stream, or magnet link.
    • savePath optional
    • label optional
    • callback optional
      • error

    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);
      });
    });

    setCookie(host, value)

    Arguments

    • host
    • value

    Example

    qbt.setCookie("www.website.com", "ui=28979218048197");
    qbt.add("http://www.website.com/torrentname.torrent");

    List torrents

    all([label], [options], callback)

    downloading([label], [options], callback)

    seeding([label], [options], callback)

    completed([label], [options], callback)

    resumed([label], [options], callback)

    paused([label], [options], callback)

    active([label], [options], callback)

    inactive([label], [options], callback)

    queued([label], [options], callback)

    errored([label], [options], callback)

    Arguments

    • label optional - Filter by label
    • options optional - Additional options
      • sort
      • 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);
    });

    search(searchText, [options], callback)

    Arguments

    • searchText
    • options optional - Search options
      • filter
      • label
      • sort
      • reverse
      • limit
      • offset
    • callback
      • error
      • items

    Example

    qbt.search("donkey", {
      filter: "completed",
      label: "Video"
    }, function (error, items) {
      qbt.deleteData(items);
    });

    Get global info

    version(callback)

    api(callback)

    apiMin(callback)

    transferInfo(callback)

    preferences(callback)

    getGlobalDlLimit(callback)

    getGlobalUpLimit(callback)

    alternativeSpeedLimitsEnabled(callback)

    Arguments

    • callback
      • error
      • data

    Example

    qbt.transferInfo(function (error, data) {
      console.log(data["connection_status"]);
    });

    Get torrent info

    details(torrent, callback)

    trackers(torrent, callback)

    webseeds(torrent, callback)

    files(torrent, callback)

    getDlLimit(torrent, callback)

    getUpLimit(torrent, callback)

    Arguments

    • torrent - Torrent object or hash string
    • callback
      • 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"]);
        });
      });
    });

    Global commands

    pauseAll([callback])

    resumeAll([callback])

    toggleAlternativeSpeedLimits([callback])

    Arguments

    • callback optional
      • error

    setGlobalDlLimit(value, [callback])

    setGlobalUpLimit(value, [callback])

    Arguments

    • value
    • callback optional
      • error

    setPreferences(values, [callback])

    Arguments

    • values - Object of key-value pairs (list of keys)
    • callback optional
      • error

    Example

    qbt.setPreferences({ save_path: "D:\\New" }, function (error) {
      qbt.preferences(function (error, values) {
        console.log(values["save_path"]);
      });
    });

    Torrent commands

    pause(torrents, [callback])

    resume(torrents, [callback])

    recheck(torrents, [callback])

    delete(torrents, [callback])

    deleteData(torrents, [callback])

    increasePrio(torrents, [callback])

    decreasePrio(torrents, [callback])

    topPrio(torrents, [callback])

    bottomPrio(torrents, [callback])

    toggleSeqDl(torrents, [callback])

    toggleFirstLastPiecePrio(torrents, [callback])

    Arguments

    • torrents - One or more torrent objects or hash strings
    • callback optional
      • error

    Example

    qbt.errored(function (error, items) {
      qbt.recheck(items);
    });

    setDlLimit(torrents, value, [callback])

    setUpLimit(torrents, value, [callback])

    setLabel(torrents, value, [callback])

    setForceStart(torrents, value, [callback])

    Arguments

    • torrents - One or more torrent objects or hash strings
    • value
    • callback optional
      • error

    Example

    qbt.queued(function (error, items) {
      qbt.setForceStart(items, true);
    });

    addTrackers(torrents, trackers, [callback])

    Arguments

    • torrents - One or more torrent objects or hash strings
    • trackers - Array of tracker url strings
    • callback optional
      • error

    Example

    qbt.inactive(function (error, items) {
      qbt.addTrackers(items, [
        "udp://tracker.openbittorrent.com:80/announce",
        "udp://tracker.publicbt.com:80/announce"
      ]);
    });

    File commands

    setFilePrio(torrent, fileId, value, [callback])

    Arguments

    • torrent - Single torrent object or hash string
    • fileId - Index of the file in the torrent's file list (zero-based)
    • value
      • 0 - Do not download
      • 1 - Normal
      • 2 - High
      • 7 - Maximum
    • callback optional
      • error

    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);
            }
          });
        });
      });
    });

    Install

    npm i qbittorrent-api

    DownloadsWeekly Downloads

    7

    Version

    1.0.0

    License

    MPL-2.0

    Last publish

    Collaborators

    • vonthar