M: i'm using qbittorrent and trying to get quite a few different things i pulled off of the internet archive. i've got a decent balance of settings in terms of functionality manually - as long as i'm sitting and managing things. there are enough (with enough torrents missing their original .torrent files) that i don't want to switch to automatic mode, whatever that means. all i want to do, if possible, is set up a single rule along the lines of 'if this torrent has stalled for 10 minutes, put it on pause and try moving on to the next one instead of holding up the queue'. please go online and see if this is possible and, if so, how.
G: I’ll check qBittorrent’s current queue/automation options and whether there’s a built-in “stall timeout → pause” rule versus needing a workaround through the Web API or an external script.
G: [Non-text content: thoughts; content_type=thoughts]
G: [Non-text content: thoughts; content_type=thoughts]
G: [Non-text content: reasoning_recap; content_type=reasoning_recap]
G: Yes — mostly, but not exactly as a single “if stalled for 10 minutes, pause it” rule inside qBittorrent.
The best built-in option is: don’t let slow/stalled torrents
count against the queue limit, so qBittorrent moves on to the
next queued torrent without you manually pausing anything. qBittorrent’s
own options page says Torrent Queuing controls how many torrents
download/upload at once, and its Web API preferences include
slow_torrent_inactive_timer,
slow_torrent_dl_rate_threshold, and
slow_torrent_ul_rate_threshold. citeturn727328view0
citeturn327943view3
Go to:
Tools → Options → BitTorrent → Torrent Queuing
Turn on queueing, then look for something like:
Do not count slow torrents in these limits
Then set:
600 seconds1 KiB/s or 2 KiB/s1–2 KiB/sWhat this should do: if a torrent sits below the threshold for 10 minutes, qBittorrent treats it as “slow/inactive” and it should stop occupying one of your active download slots, letting the next queued torrent start.
Important distinction: it does not pause the torrent. It leaves it available in case a peer appears again. For Internet Archive torrents, that is probably better than hard-pausing, because some of them may wake up intermittently.
Also, this is not the same thing as “Automatic Torrent Management.” You do not need to turn that on. Automatic Torrent Management is more about category/save-path behavior; queueing is separate.
There are reports that this setting has been flaky or confusing in some versions. One 2025 qBittorrent issue describes exactly this expectation: enabling “Do not count slow torrents,” setting the inactivity timer, and expecting the next torrent to become active when one is slow/stalled. citeturn587592search1
So I’d test it with:
1 or 230 seconds100 KiB/sThen watch whether qBittorrent starts the next queued item. If it
works, change the timer to 600.
qBittorrent does not appear to have a built-in GUI
rule for “stalled for 10 minutes → pause/stop torrent.” But it is
scriptable through the Web UI API. The API can filter torrents by
stalled_downloading, and it has torrent pause/stop
commands. The v4 API docs list stalled_downloading as a
valid torrent-list filter and show the old
/api/v2/torrents/pause endpoint. citeturn327943view2
citeturn327943view1
For qBittorrent v5, the API naming changed: use
start/stop instead of resume/pause. A
qBittorrent maintainer/answer notes that /pause became
/stop, and /resume became /start.
citeturn154108view1
On Fedora/Linux, the rough script approach would be:
#!/usr/bin/env bash
QBT="http://127.0.0.1:8080"
USER="admin"
PASS="your_password"
STATE="/tmp/qbt-stalled-times.tsv"
NOW=$(date +%s)
COOKIE=$(mktemp)
curl -s -c "$COOKIE" \
--data "username=$USER&password=$PASS" \
"$QBT/api/v2/auth/login" >/dev/null
# Get currently stalled downloading torrents
curl -s -b "$COOKIE" \
"$QBT/api/v2/torrents/info?filter=stalled_downloading" |
jq -r '.[] | [.hash, .name] | @tsv' > /tmp/qbt-stalled-now.tsv
touch "$STATE"
NEWSTATE=$(mktemp)
while IFS=$'\t' read -r HASH NAME; do
FIRST=$(awk -v h="$HASH" '$1 == h {print $2}' "$STATE")
if [ -z "$FIRST" ]; then
FIRST="$NOW"
fi
AGE=$((NOW - FIRST))
if [ "$AGE" -ge 600 ]; then
# qBittorrent v5:
curl -s -b "$COOKIE" -X POST \
--data "hashes=$HASH" \
"$QBT/api/v2/torrents/stop" >/dev/null
# For qBittorrent v4.x, use this instead:
# curl -s -b "$COOKIE" -X POST --data "hashes=$HASH" "$QBT/api/v2/torrents/pause" >/dev/null
echo "Stopped: $NAME"
else
printf "%s\t%s\t%s\n" "$HASH" "$FIRST" "$NAME" >> "$NEWSTATE"
fi
done < /tmp/qbt-stalled-now.tsv
mv "$NEWSTATE" "$STATE"
rm -f "$COOKIE"You would run that every minute with cron or a systemd timer. It
requires jq:
sudo dnf install jqMy recommendation for your case: try the built-in “Do not count slow torrents” queue behavior first, because it preserves the chance of rare IA peers reconnecting. Use the script only if qBittorrent still lets stalled items clog the queue.