Consumers
The blocklists are consumed by Cleanuparr. qBittorrent itself does not read any URL from this repository -- the only direct consumer is Cleanuparr, which exposes two independent features that each pull a different file:
| Cleanuparr feature | File consumed | What it does |
|---|---|---|
| Blocklist Sync | blacklist |
Pushes the full pattern set to qBittorrent's "Excluded file names" via the qBittorrent Web API |
| Malware Blocker | whitelist (whitelist mode) or blacklist (blacklist mode) |
Inspects torrents in the Sonarr/Radarr queue and removes ones that violate the rules |
The two features are configured independently in Cleanuparr's settings,
each with its own URL and refresh schedule. Use both, either, or neither.
This repository is set up so that both can be used together: Blocklist
Sync against blacklist, Malware Blocker against whitelist in whitelist
mode.
Raw URLs
Point Cleanuparr's features at the raw file URLs, not the Gitea blob viewer URLs:
https://git.hisp.no/arr/blocklists/raw/branch/main/blacklist
https://git.hisp.no/arr/blocklists/raw/branch/main/whitelist
The raw/branch/main/ path serves the file contents directly with the
correct text/plain content type. Using src/branch/main/ instead serves
the HTML viewer page and will break the consumer.
Blocklist Sync (push to qBittorrent)
Cleanuparr's Blocklist Sync fetches a blocklist URL on its configured interval, then pushes the full pattern list into qBittorrent's "Excluded file names" setting via the qBittorrent Web API. The user does not configure qBittorrent's exclusion list directly -- everything happens through Cleanuparr.
What it supports
- Blacklists only. There is no whitelist mode for Blocklist Sync.
- Full replacement of qBittorrent's exclusion list on every push. Any patterns set manually in qBittorrent will be overwritten.
- All connected qBittorrent instances receive the same list (one push per configured download client in Cleanuparr).
Configuration
In Cleanuparr's settings, enable Blocklist Sync and point it at:
https://git.hisp.no/arr/blocklists/raw/branch/main/blacklist
Cleanuparr fetches on its configured interval, then writes the patterns to qBittorrent. Check Cleanuparr's logs to confirm the push succeeded after each sync.
How qBittorrent uses the pushed list
Once Cleanuparr has pushed the patterns, qBittorrent treats them exactly the same as if they had been set manually. When a torrent is added, qBittorrent iterates the files inside it and checks each filename against the excluded patterns. Matching files are marked as "do not download" and will not be written to disk. The rest of the torrent downloads normally.
This means the list operates at the file level within a torrent, not
the torrent level. A torrent containing movie.mkv and movie.nor.srt
downloads both files because *.srt is in the whitelist (and therefore
not in the pushed pattern list).
Why this URL
The blacklist file in this repository is the upstream Cleanuparr blacklist
with the locally-maintained whitelist already subtracted. Anything in
whitelist is therefore not pushed to qBittorrent, so subtitles, AV1
webm releases, and other extensions you want kept will not be excluded
when qBittorrent downloads a torrent.
Malware Blocker (Sonarr/Radarr queue)
Cleanuparr's Malware Blocker inspects torrents in the Sonarr and Radarr download queues, examines the files they contain, and removes any torrent that violates the configured rules. It runs independently from Blocklist Sync and uses its own URL and refresh schedule.
What it supports
- Whitelist mode -- only torrents whose contained files all match the whitelist patterns are kept. Everything else is removed from the queue.
- Blacklist mode -- torrents containing any file matching the blacklist patterns are removed.
- Sonarr and Radarr queues -- both supported, configured per-arr in Cleanuparr's settings.
Recommended mode and URL
This repository is configured for whitelist mode: a small explicit list of allowed extensions is easier to reason about than the much larger upstream blacklist, especially when the goal is "only let through legitimate video and subtitle files."
Point Malware Blocker at:
https://git.hisp.no/arr/blocklists/raw/branch/main/whitelist
In whitelist mode, only torrents whose contained files all have whitelisted
extensions are allowed to remain in the queue. A torrent with movie.mkv
and movie.nor.srt passes (both extensions are whitelisted). A torrent
with movie.mkv and setup.exe is removed from the queue before it
reaches qBittorrent.
If you would rather use blacklist mode, point Malware Blocker at the
blacklist URL instead -- the same one Blocklist Sync uses. Both modes
use the same data files; only the matching logic differs.
Why two layers are useful
Blocklist Sync and Malware Blocker operate at different layers:
- Malware Blocker (queue layer) stops bad torrents from being added to qBittorrent in the first place. A torrent that fails the whitelist check never reaches the download client.
- Blocklist Sync (file layer) keeps qBittorrent from writing individual junk files (samples, NFOs, mixed-in executables) to disk while still allowing the legitimate files in a release through.
Used together, the two layers give you a queue-level allow list and a
file-level deny list, both maintained from the same whitelist source of
truth.
Troubleshooting
A file I whitelisted is still being blocked
Check each layer in order:
- Sync ran successfully? Open the Gitea Actions page for the repository and verify the most recent run is green and newer than your whitelist commit.
- Blacklist was updated? Read
blacklistin Gitea and confirm your whitelisted entry is no longer present. - Cleanuparr refreshed? Blocklist Sync runs on its configured interval, not on demand. Check Cleanuparr's logs to confirm it picked up the new file. Trigger a manual run from Cleanuparr's UI if available.
- Cleanuparr pushed to qBittorrent? After fetching the new file, Cleanuparr writes it to qBittorrent. Check qBittorrent's Options -> Downloads -> Excluded file names and confirm the new list is in place.
- Exact string match? Whitelist entries must match blacklist entries
exactly.
*.srtin whitelist does not strip*sample.srtfrom blacklist. See Lists for pattern semantics.
A file I did not whitelist is passing through
Check whether the pattern is in the blacklist at all:
- Open
blacklistin Gitea and search for the extension. - If it is not there, upstream Cleanuparr does not block it. You can add
it to
blacklistdirectly (manual local addition, preserved by the three-way merge) or file an upstream issue.
Cleanuparr returns 404 for the blocklist URL
Verify the URL uses raw/branch/main/, not src/branch/main/:
# Correct
https://git.hisp.no/arr/blocklists/raw/branch/main/blacklist
# Wrong (serves HTML, not the file)
https://git.hisp.no/arr/blocklists/src/branch/main/blacklist
Also check the repository name and branch are correct
(arr/blocklists, main).
Malware Blocker is removing legitimate torrents
Make sure Malware Blocker is in whitelist mode and pointed at whitelist,
not blacklist. In blacklist mode it uses the much larger upstream
blacklist and may remove a torrent that contains a single junk file
inside an otherwise legitimate release.
Blocklist Sync did not push to qBittorrent
Check Cleanuparr's connection to qBittorrent:
- Cleanuparr settings -> Download clients -- verify the qBittorrent host, port, username, and password.
- Cleanuparr logs -- look for Blocklist Sync errors after the most recent scheduled run. Connection failures are logged at error level.
- qBittorrent Web API enabled -- the push uses the Web API, which must be enabled in qBittorrent's options under Web UI.