An infinite media library with Arrs, Usenet and zurg
Guide is here https://notes.debridmediamanager.com/guides/sonarr-radarr/
Spent a lot of time working on getting Sabnzbd endpoint to work with Sonarr and Radarr. zurg also now supports creating subdirectories and moving files inside a new __magic__ directory.
Enjoy this new library building experience with usenet!
Comments (11)
ok got it working, maybe I misinterpreted the renaming portion. The directories in the __magic__ directory seem to be named their hashes or IDs rather than the "titles" or some other human recognizable name. This is when browsing with Infuse. Not sure if there is an option to make this better.
having some troubles getting it set up even following the guide. Running in Docker, sonarr and radarr both show no results found for interactive search almost like it isnt searching at all. are we supposed to configure an indexer as well (sorry if that is basic)
yeah indexers are separate, zurg doesnt search anything. its only the download client, qbittorrent for torrents and sabnzbd for usenet. sonarr and radarr search whatever indexers you added, so with none configured interactive search returns no results found and thats the only thing it can do. add them under Settings >Indexers, or run prowlarr and sync them in. check System > Status too, itll be flagging the same thing. DMM offers indexer for sponsors though :)
this setup is a bit much for me idk Im lost all the github links lead to 404 errors
Did you already connect your github account to gatekeeper.debridmediamanager.com ?
You have tested different options for infinite library, everything has its pros and cons, but how does the latest zurg compare to decypharr or others in terms or relibility? For example with decypharr, quite often the mounts became stale, and i had to wait for it to restart or do it manually.
i have never had that problem with the builtin rclone integration. what OS are you using? i use linux and windows for development and my main server that my kids use is in linux as well
I am coming from DUMB and could never get a setup that I liked where everything "just worked" so I went back to spinning disks.... but this seems pretty awesome now. Right now I'm running a script to import all the existing media on my debrid into Radarr and Sonarr for tracking purposes and it seems to be working like a champ. So well, I'm now thinking of just finding some good DMM collections and importing them all and calling it a day. I'm curious if the way I setup using decypharr is necessary, or if I can link into sonarr/radarr some other way using zurg only. seems like the project is rapidly advancing... so that's amazing. Happy to test whatever. I set this up from a blank Ubuntu Server 24 install last night and it's working extremely well so far.
For Usenet, decypharr does nothing — zurg is the download client. Sonarr/Radarr hand an NZB to zurg's SABnzbd endpoint and import from __magic__ by rename. That's already all zurg. For torrents, I am yet to build zurg's qBittorrent API and no torrent blackhole — nzbs/ is its only watch directory. But for what you're describing, you may not need that half at all. Anything added to the account by any means appears in the mount on the next refresh. DMM adds straight to your RD account zurg picks it up. That's your collection import and no download client anywhere. Before you bulk import, pace it at >20secs per add. RD's throttle returns 451 infringing_file before it escalates to a 429.Don't read a 451 as 'RD blocks this'
Followed your guide and have news to report! Setup zurg 2026.08.26.0155-nightly, one instance, two providers — nzb (news-us.newsgroup.ninja, 50 conns) and realdebrid (~1,880 torrents, 62 TB). magic.enabled: true, SAB endpoint on. 4 *arrs with root folders inside magic (tv, tv-4k, movies, movies-4k). Plex on the same box. 8 cores / 15 GB / NVMe, no media stored locally. Torrents and Usenet both land in magic, one library, one set of root folders. Sonarr/Radarr grab an NZB via zurg's SAB endpoint or a magnet via decypharr 2.5-stable (qBittorrent emulation, mount.type: none — zurg owns the mount). Either way the release shows up in all, the *arr imports by rename, and it's a magic placement — data/local has stayed ~250 KB across 300+ imports, so nothing is being copied. Two settings make the decypharr half work, both non-obvious: folder_naming: filename_no_ext — the default original_no_ext looks for all/.mkv, but zurg serves all//.mkv. With the default the symlink silently fails and the torrent sits at downloading 0% forever with no error logged anywhere. unpack_rar: false — on by default, and it starts rewriting existing torrents on the account that zurg is serving. Plus /zurg_mnt bind-mounted rslave into decypharr, skip_repair: true (zurg owns repair), and a remote path mapping /app/downloads// -> /zurg_mnt/zurg/magic/ on each *arr. Profiles are TRaSH remux (Remux + WEB 1080p / 2160p) rather than the stock Bluray+WEB ones, since the debrid library is ~90% remux and those profiles reject Remux outright. Usenet speed, RAR vs not Measured on this box, single provider, 50 connections, on the current nightly. Import time from grab to imported: RAR-packed: n=54, avg 2.58 GB, median 677s Direct .mkv: n=28, avg 12.16 GB, median 122s So roughly 25x slower per GB for RAR sets, despite being a fifth the size. Reads like latency walking volume headers rather than throughput — bumping connections doesn't obviously help if it's serialised per-volume. Is there a knob for concurrency or read-ahead specifically on RAR header traversal, or is that just the shape of it? Stalled removal How quickly should a stalled or dead grab get failed and handed back to the *arr now? I know 08.24 made a release with gone articles report Failed and 08.25 stopped the queue holding them forever — both working here. What I'm not clear on is the timing: is there a threshold before zurg calls it, does stalled_download_mins apply to the NZB side or only torrents, and is it worth tuning? All is working really well. Very cool... it's making my massive unraid server v jealous.
like this detailed write up! let me read
