qBittorrent WebUI API
Manage torrents via qBittorrent's WebUI API (v4.1+).
Setup
Config:
~/.clawdbot/credentials/qbittorrent/config.json
{
"url": "http://localhost:8080",
"username": "admin",
"password": "adminadmin"
}
Quick Reference
List Torrents
# All torrents
./scripts/qbit-api.sh list
Filter by status
./scripts/qbit-api.sh list --filter downloading
./scripts/qbit-api.sh list --filter seeding
./scripts/qbit-api.sh list --filter paused
Filter by category
./scripts/qbit-api.sh list --category movies
Filters:
all
,
downloading
,
seeding
,
completed
,
paused
,
active
,
inactive
,
stalled
,
errored
Get Torrent Info
./scripts/qbit-api.sh info <hash>
./scripts/qbit-api.sh files <hash>
./scripts/qbit-api.sh trackers <hash>
Add Torrent
# By magnet or URL
./scripts/qbit-api.sh add "magnet:?xt=..." --category movies
By file
./scripts/qbit-api.sh add-file /path/to/file.torrent --paused
Control Torrents
./scripts/qbit-api.sh pause <hash> # or "all"
./scripts/qbit-api.sh resume <hash> # or "all"
./scripts/qbit-api.sh delete <hash> # keep files
./scripts/qbit-api.sh delete <hash> --files # delete files too
./scripts/qbit-api.sh recheck <hash>
Categories & Tags
./scripts/qbit-api.sh categories
./scripts/qbit-api.sh tags
./scripts/qbit-api.sh set-category <hash> movies
./scripts/qbit-api.sh add-tags <hash> "important,archive"
Transfer Info
./scripts/qbit-api.sh transfer # global speed/stats
./scripts/qbit-api.sh speedlimit # current limits
./scripts/qbit-api.sh set-speedlimit --down 5M --up 1M
App Info
./scripts/qbit-api.sh version
./scripts/qbit-api.sh preferences
Response Format
Torrent object includes:
hash
, name
, state
, progress
dlspeed
, upspeed
, eta
size
, downloaded
, uploaded
category
, tags
, save_path
States:
downloading
,
stalledDL
,
uploading
,
stalledUP
,
pausedDL
,
pausedUP
,
queuedDL
,
queuedUP
,
checkingDL
,
checkingUP
,
error
,
missingFiles