qbittorrent_api 1.3.0 copy "qbittorrent_api: ^1.3.0" to clipboard
qbittorrent_api: ^1.3.0 copied to clipboard

This package provides methods for making requests to qBittorrent Web API using Dart.

qbittorrent_api #

Dart wrapper for qBittorrent Web API.

pub package

Overview #

This package provides a Dart wrapper for qBittorrent Web API.

To use this package, you will need a qBittorrent server running with the Web API enabled.

Web API Version #

Supported Web API version: qBittorrent v4.1+

Setup #

Create a QBittorrentApiV2 instance by providing the URL of your qBittorrent server.

final qbittorrent = QBittorrentApiV2(
  baseUrl: 'http://localhost:8080',
  cookiesStrategy: const DiskCookiesStrategy(directory: '.cookies'),
  logger: true,
);

Cookies Strategy #

  • InMemoryCookiesStrategy: Stores cookies in memory. (Default)
  • DiskCookiesStrategy: Stores cookies in files on disk.
  • WebCookiesStrategy: Dummy strategy for not managing cookies (for Flutter Web).

For Flutter Web Application #

  • set cookiesStrategy to WebCookiesStrategy as cookies are managed by the browser.
final qbittorrent = QBittorrentApiV2(
  baseUrl: 'http://localhost:8080',
  cookiesStrategy: UniversalPlatform.isWeb ? const WebCookiesStrategy() : const InMemoryCookiesStrategy(),
  logger: kDebugMode,
);

Basic Usage #

This package provides methods to interact with various API endpoints. Belows are some of the examples.

To see all available methods, check out qBittorrent WebUI API Documentation.

Login #

await qbittorent.auth.login(username: 'username', password: 'password');

Add New Torrent #

// Add torrents by urls.
final torrents = NewTorrents.urls(urls: ['https://example.torrent', 'https://example-2.torrent']);
await qbittorrent.torrents.addNewTorrents(torrents: torrents);

// Add torrents by files.
final torrents = NewTorrents.files(files: [File('./example.torrent')]);
await qbittorrent.torrents.addNewTorrents(torrents: torrents);

// Add torrent by bytes.
final newTorrents = NewTorrents.bytes(bytes: [FileBytes(filename: 'example.torrent', bytes: bytes)]);
await qbittorrent.torrents.addNewTorrents(torrents: torrents);

Subscribe to Torrent List #

const interval = Duration(seconds: 3);  // Refresh interval
final stream = qbittorrent.sync.subscribeMainData(interval: interval).listen((data) {
  // Handle main data update
});

Subscribe to Torrent Properties #

const hash = "123123";                  // Torrent hash
const interval = Duration(seconds: 3);  // Refresh interval
final stream = qbittorrent.torrents.subscribeProperties(hash: hash, interval: interval).listen((data) {
  // Handle torrent properties update
});

Having Bugs? #

  • This package is under active development. If you find any bug, please create an issue on Github.

Support #

"Buy Me A Coffee"

6
likes
140
points
239
downloads

Publisher

unverified uploader

Weekly Downloads

This package provides methods for making requests to qBittorrent Web API using Dart.

Repository (GitHub)

Documentation

API reference

License

MIT (license)

Dependencies

cookie_jar, dio, dio_cookie_manager, equatable, http_parser, json_annotation, path

More

Packages that depend on qbittorrent_api