Skip to content

Migrate Real-Debrid to TorBox (via CatBox)

Legal Responsibility

This guide covers the technical mechanics of migrating between cloud storage services. Users are solely responsible for ensuring all content accessed, stored, or streamed through this setup is legally obtained and complies with applicable copyright laws and the terms of service of Real-Debrid, TorBox, and other third-party services. ElfHosted provides hosting infrastructure only and does not provide, curate, or facilitate access to copyrighted content. See our Acceptable Use Policy for details.

This is the practical, soft-migrate path from a Real-Debrid + Decypharr (or Zurg) setup to TorBox + CatBox on ElfHosted. Both backends run in parallel through most of the migration, the existing media-server library stays intact, and the final cutover is just a stack switch with the broken-symlink cleanup already done.

If you haven't read the migration overview yet, start there for the why: the May 2026 infringing_file filter, the WEB-DL / WEBRip / scene-tag breakage, the single-IP-ban risk, and the soft-migrate principle. This page is the how.

Get your $1, 7-day free trial!

Why TorBox + CatBox specifically

Two reasons TorBox is the leading Real-Debrid replacement in 2026:

  • No single-IP ban risk. TorBox's Essential and Pro tiers allow concurrent streams from multiple IPs (5 and 10 respectively), so an arr stack streaming alongside your phone, a partner's device, and a VPN client doesn't trip an account suspension the way Real-Debrid's single-IP rule does.
  • No filename-based cache filter. TorBox doesn't run the May 2026 infringing_file style of filename-pattern filter that broke WEB-DL / WEBRip / scene-tagged releases across Real-Debrid libraries.

But TorBox enforces a 30-day cache retention policy: items not accessed for 30 days expire. A media-server library (Plex, Jellyfin, Emby) probes every item constantly (codec checks, thumbnails, intro detection, transcoding decisions), and every probe touches the item and resets the expiry. Without a virtualisation layer in front of TorBox, every Radarr / Sonarr grab gets pinned to your TorBox account forever, which is exactly the "automated retention" pattern TorBox's policy forbids.

CatBox solves this by virtualising your library: items live as symlinks pointing into a virtual WebDAV tree, the media-server probes are answered from a crowdsourced data pool shared across all CatBox tenants, and nothing is added to your TorBox account until you actually press play. After playback ends, CatBox removes the item from TorBox again. Your account reflects only what you've recently watched, your library can be any size, and your usage stays within policy.

This is the only safe way to combine TorBox with a media-server library at scale. Everything in this guide assumes a CatBox-fronted TorBox stack on ElfHosted.

What you need before starting

  • An existing ElfHosted personal media stack with Plex / Jellyfin / Emby + Radarr / Sonarr + Decypharr (or Zurg) on Real-Debrid
  • A TorBox account (Essential or Pro), with API key and account password. Some ElfHosted bundles include a TorBox subscription, in which case the credentials are pre-populated
  • CatBox added to your stack (every TorBox-bundled stack has it; otherwise add via ElfBot or by switching to a TorBox-bundled tier)
  • Decypharr or Zurg still running with its existing config (you'll keep these alive through most of the migration)

Step 1: Get CatBox connected to TorBox

  1. Open CatBox from your ElfHosted apps dashboard.
  2. Navigate to /ui/settings.
  3. Paste your TorBox API key (from the TorBox settings page).
  4. Paste your TorBox account password (the one you log into torbox.app with, not the API key).
  5. Save.

Both credentials hot-swap on save with no restart. The account password is required for TorBox's WebDAV endpoint, which is what makes the crowdsourced-probe pattern work without touching items in your TorBox library.

If you use Plex / Emby / Jellyfin's DirectStream feature, also connect each media server token from the same settings page so CatBox can issue 307 redirects to TorBox's CDN for direct-playback streams.

Step 2: Import your Real-Debrid hashlist into CatBox

CatBox's RealDebrid import UI is the centrepiece of this migration. It reads your existing RD hashlist, cross-checks every hash against TorBox's global cache, virtualises the cached subset into CatBox's catalog, and (next step) repoints existing symlinks to the new TorBox-backed paths.

  1. In CatBox, navigate to /ui/import/rd.
  2. CatBox auto-detects whichever of these is available:
    • Decypharr (reads from Decypharr's /debug/ingests) — preferred if Decypharr is still running.
    • Zurg (reads from Zurg's /debug/torrents) — preferred if Zurg is still running.
    • DebridMediaManager JSON export (upload / paste the JSON dump) — fallback if Decypharr and Zurg are already offline.
  3. Select the source and let CatBox pull the hashlist.
  4. CatBox checks every hash against TorBox's cache and shows you the result: how many are cached on TorBox (can be imported virtually), how many are uncached (need a re-search), how many are unidentified (orphaned RD entries with no arr-managed equivalent).

Nothing is added to your TorBox account at this point. The cached items become virtual symlinks in CatBox's catalog, identical to how an Arr-submitted release would look.

Your Real-Debrid library is currently a forest of symlinks like:

/storage/symlinks/movies/Foo (2024)/foo.mkv -> /storage/realdebrid-zurg/__all__/Foo (2024).../foo.mkv

The repoint UI at /ui/import/rd/repoint finds each of those symlinks, identifies which ones have a TorBox-cached equivalent from the previous step, and shows you the proposed new target:

/storage/symlinks/movies/Foo (2024)/foo.mkv -> /storage/torbox/Foo (2024).../foo.mkv  (new)
  1. Review the preview. Each row shows the old target, the new target, and whether it could be matched.
  2. Click apply to rewrite the symlinks atomically (symlink-temp + rename, never a partial-write window).
  3. Already-repointed symlinks are skipped on re-run, so you can apply, look at what's left, and re-apply as you import additional hashes.

Large libraries paginate at 500 rows per page; the next / prev buttons step through. Apply works on the current page, so a large library is a few clicks rather than one big batch.

After this step, the cached subset of your library is playable from TorBox via CatBox's virtual library, and the uncached / orphaned subset still resolves into the Real-Debrid mount.

Step 4: Add CatBox to Prowlarr and the arrs

CatBox as a Prowlarr indexer

CatBox exposes a Torznab search endpoint that queries TorBox's cache directly. Adding it to Prowlarr means future arr searches see TorBox-cached releases as first-class hits rather than discovering them via other indexers and submitting blind.

  1. Open Prowlarr from your apps dashboard.
  2. Add a Generic Torznab indexer with:
    • URL: http://catbox:8080/torznab
    • API key: (leave empty)
  3. Save.
  4. Sync indexers to Radarr / Sonarr (Prowlarr → Apps → trigger sync).

In freshly provisioned Prowlarr instances on TorBox-bundled stacks, the CatBox indexer is pre-configured but disabled by default; you only need to enable it.

CatBox as the qBittorrent download client

In Radarr / Sonarr (and Lidarr / Readarr if you use them), add CatBox as a qBittorrent-API download client:

  • Host: catbox
  • Port: 8080
  • Use SSL: off
  • Username / password: any values (CatBox doesn't authenticate at this layer; SSO upstream handles it)
  • Category: must match the arr name — one of radarr, sonarr, radarr4k, sonarr4k, sonarranime

The category is load-bearing: it becomes the top-level directory in CatBox's symlink tree, and the elf-import script and other downstream tooling rely on these exact category names.

Leave Decypharr in place for now. Both download clients can coexist; the arrs will route new grabs through whichever client comes first in their priority order. Put CatBox above Decypharr so new grabs prefer the TorBox path.

Step 5: Purge dead Real-Debrid content with LitterBox

Real-Debrid's May 2026 infringing-file filter, account purge waves, and provider-side takedowns have left most long-lived RD libraries with a noticeable percentage of items that report downloaded in the API but return errors at playback. These need to be deleted from RD itself before you clean up the symlinks, otherwise the next symlink scan won't see them as dangling.

LitterBox is ElfHosted's open-source RD library cleanup tool. It signs into Real-Debrid via OAuth (token stays in your browser; the LitterBox proxy is stateless and never logs or stores anything), counts the broken / filter-flagged / error-state torrents, and offers a one-click bulk-delete with a type-to-confirm guard.

  1. Open https://litterbox.elfhosted.com in a browser.
  2. Sign in with Real-Debrid (OAuth flow, no API-key entry).
  3. LitterBox runs its fast pass: a baked-in regex against known filter-correlated release patterns. This catches the bulk of the May 2026 filter class in seconds.
  4. Optionally run the deep probe: a per-torrent /unrestrict/link walk that surfaces ground-truth filter signals (HTTP 451 + error code 35). Slower (rate-limited to 250 req/min by RD's ceiling) but catches the long tail the regex misses.
  5. Review the counts and the sample list.
  6. Type-to-confirm and bulk-delete.

The deletions take effect on RD immediately. The corresponding symlinks in your library are now broken.

ElfBot's broken-symlink tooling cleans up the dangling symlinks LitterBox just created.

  1. Open ElfBot from your apps dashboard (or directly at https://<username>-elfbot.elfhosted.com).
  2. Run Broken Symlink Report. ElfBot scans the library and reports every dangling symlink it finds.
  3. Review the report. The count should roughly match what LitterBox just purged, plus any pre-existing dead symlinks from earlier RD account events.
  4. Run Delete Broken Symlinks and confirm.

The arrs will now see those items as missing on the next refresh.

Step 7: Re-search the arrs to backfill from TorBox

With the broken symlinks gone, Radarr / Sonarr know the items are missing and will search for replacements. Because CatBox is now a Torznab indexer in Prowlarr, releases that TorBox has cached will surface as search results and be grabbed straight through CatBox.

Two ways to drive this:

  • Manual: in each Arr, go to the library view, filter to "missing", and trigger Search Missing. Fastest for small libraries.
  • Automated: Cleanuparr handles this on a schedule. It detects missing-but-monitored items and re-queues searches automatically. Recommended for large libraries; install if it's not already part of your stack.

CatBox only accepts releases that are already in TorBox's global cache (via TorBox's add_only_if_cached flag), so every grab is instant-play with no risk of pinning new content to your TorBox account.

If a missing item isn't cached on TorBox at all, the arr's other indexers may still surface it (for example, a public tracker that happens to have a Real-Debrid-cached release of the same content) and Decypharr is still in place to grab it. The hybrid period exists to absorb exactly this.

Step 8: Run hybrid for a few days

At this point you have:

  • CatBox handling new grabs to TorBox-cached content
  • Decypharr still grabbing anything CatBox can't (falling back to RD)
  • The cached subset of your old library serving from TorBox via the repointed symlinks
  • The uncached subset still serving from Real-Debrid

Live with this for a few days. Watch a few items from each origin. Verify:

  • Playback works against both backends.
  • Plex / Jellyfin / Emby thumbnails and metadata look correct on TorBox-backed items.
  • New grabs from the arrs are showing up in your library quickly.

If anything looks off, you can pause and investigate; nothing in the migration so far is destructive.

Step 9: Cut over

When you're satisfied the new path works, the final cutover is a stack switch in the ElfHosted store:

  1. Switch your personal media stack subscription from your current Real-Debrid-bundled tier to a TorBox-bundled tier (through the store's subscription-switching flow).
  2. Provisioning swaps the underlying stack: Decypharr and the Real-Debrid mounts come down, CatBox is now the sole downloader.
  3. Any symlinks still pointing into the Real-Debrid mount break.

Run ElfBot's Broken Symlink Report + Delete Broken Symlinks one more time to clean those up. The arrs re-search for what's missing, and Cleanuparr keeps the queue moving. Within a day or two, anything TorBox has cached is back in your library.

You're done. Watch state preserved, library structure preserved, downloader and storage backend swapped end-to-end.

The single biggest gap in a TorBox-only stack is items TorBox hasn't cached. Usenet via NzbDAV complements TorBox almost perfectly: it has no cache-retention game (Usenet retention is per-provider and typically measured in years), it's a completely independent content path, and on a hybrid TorBox + Usenet stack the arrs route to whichever backend has the release.

After the TorBox cutover, see the Usenet migration guide for the bolt-on. Most users land on this combination as their long-term answer; it's the highest-coverage, most-resilient setup ElfHosted supports.

Troubleshooting

CatBox shows zero hashes after the RD import

CatBox needs Decypharr or Zurg to be reachable. If both are already down, use the DMM JSON export path: dump your hashlist from DebridMediaManager and paste the JSON into the import UI.

The repoint UI shows lots of unmatched rows

These are items in your RD library that aren't currently cached on TorBox. They stay pointing at RD until either (a) they get cached on TorBox and you re-run the import, or (b) the arrs re-search and grab a TorBox-cached alternative release. Both are fine.

LitterBox flags way more torrents than I expected

That's typical for libraries that have been through one or more RD account purges. Run the deep probe to confirm the count is real, then bulk-delete with confidence; the dashboard shows you a sample of what's being removed before you confirm.

Playback fails on items I just repointed

Check CatBox's settings page: the TorBox account password (not the API key) is required for the crowdsourced-probe path. Without it, CatBox falls back to the playback path for probes, which can fail under load. Set the password and the issue clears.

Some items show up duplicated in Plex / Jellyfin

If both the old (RD-mounted) and new (TorBox virtual) versions of the same item exist as separate symlinks, your media server will see two files. The repoint step overwrites the old symlink in place, so this is rare; if it happens, the duplicate is usually a leftover from an arr's Recycle Bin or similar. Empty those and rescan.

How do I get help?

  1. For general use of the individual tools, refer to each app's upstream site
  2. For specific support re your ElfHosted configuration, see the ElfHosted support options

What users say..

We're rocking some excellent ⭐⭐⭐⭐⭐ TrustPilot Reviews, and here's what some of our usersfriends say..

I am new here, but today I learned realized that Elfhosted is one of the best free and open source software communities I've seen, and FOSS communities have been at the center of my life since the 90s (Perl, PHP, Symfony, Drupal, Ethereum, etc.). Great open software built by great people who care = great community, and that is something special.

You've done an amazing job @Funky Penguelf with the platform you provide and this place has an awesome mix of active community caretakers and software creators that I've seen here so far like BSM, Spoked, LayeZee and other elf vengers. Keep up the energy, productivity and community and take time to enjoy it and appreciate each other!

⭐⭐⭐⭐⭐ @skwah (Discord)

I self host and share a fully automated ‘arr stack with Plex. Been doing so for around 4 years. Also recently got into real debrid and hosting a Comet and Annatar for Stremio. The amount of time and head banging I’ve put into it is in the hundreds to thousands of hours. From setting it up to keeping it running smoothly. Let’s not forget the cost of my server and how much it cost to keep it running.

Anyway I wanted to see what ElfHosted was about to compare. Yeah I had the whole thing setup in just a few hours. It also passes the headache of maintaining it to ElfHosted. Will I keep it no because nerdy things and maintaining my server are my hobby and quirky passion project. Will I recommend it to my friends who don’t have the money up front to buy a server, the knowledge to maintain it or desire.

Just my server alone was $2k. Power cost to keep it on yearly is $250ish, annual memberships to RD, Usenet and indexers are around $100. Then whatever a value my free time at. Which is currently at minimum my hourly pay at work or more. Yeah so take the monthly cost of all that and compare to ElfHosted Ultimate Stream package at $39 monthly, add RD to the cost and get nearly all your time back is incredibly cheap.

Lastly it seems like a lot of people forget how quickly an ultimate cable package used to cost. Or how quick paying for every stream service would add up to. Which when using ElfHosted with RD is essentially and more what you get. Quick hint it’s far above the asking price.

⭐⭐⭐⭐⭐ /u/MMag05. (Reddit)

As a happy Elfhosted customer—who also self hosts MANY things across about 10 severs (dedicated, VPSes, and VMs running on Synology), I wouldn’t switch to self hosting the services I get from Elfhosted. They just work with very little effort configuring things, and the support the owner and his team provides is second to none. Plus I love being part of a fledgling—but quickly growing—enterprise.

⭐⭐⭐⭐⭐ /u/jatguy. (Reddit)

I recently found ElfHosted and decided to start out with the Infinite Starter Kit. Within a week I realized that this was for me and upgraded to the Hobbit plan. Give it another week and I was up to the Ranger plan.

I just love the simplicity and the fact that things just work. For years I've ran a home server and between the constant maintenance and always upgrading harddrives, it became apparent I wanted to make it easier on my self. Enter ElfHosted.

Setup was super easy with the guided documentation and the discord community. It seems that somebody is available at all hours of the day to help with questions. I started with the Arrs, which I knew from my prior hosting... but saw a newer product called Riven. I decided to jump in feet first. I enjoy being on the front end of an up and coming replacement for the Arrs and will soon be upgrading to the annual plan!

⭐⭐⭐⭐⭐ @.theycallmebob. (Discord)

I’ve been using this service for a while now, and honestly, it’s a game-changer compared to anything else I’ve tried for managing my media library. The support is fantastic—super quick, and if the staff aren’t around (which rarely happens), the community steps up right away. I can’t imagine going back to any other platform.

Before this, I had my own setup with a NUC, NAS, and tools like Sonarr and Radarr. It worked pretty well for a while, and my internet speed was high enough to stream without any buffering. But in the end, it wasn’t worth the time or headache of managing all the storage and keeping everything running smoothly.

Now, with this service, everything runs smoothly in 1080p+ with no buffering issues. The interface is really easy to use, which makes managing everything a breeze. Plus, having a whole community of smart people available for guidance is a huge bonus.

I was sold from the start, which is why I quickly upgraded from a 1-month to a 3-month subscription, and I’m planning to switch to a 1-year plan soon. This service totally pays for itself, and I’m sure you won’t be disappointed. It’s been really impressive.

⭐⭐⭐⭐⭐ @seapound (Discord)

Best possible options for anyone looking for the do-it-all option along with the best customer service ive experienced in this space so far. Id rate it a 6 if I could but its limited to 5/5...

⭐⭐⭐⭐⭐ @hashmelters (Discord)

(responding to a Reddit thread re the cost of ElfHosted vs mainstream streaming / self-hosting):

I didn't know that the goal of this project was to compete with large companies running/renting entire DCs. I was under the impression that the goal of this project was to manage the updating of almost selfhosted applications on a shared platform with other users. Basically, be my sysadmin for me.

That being said, paying for services is the 'easy button'. There is a real world cost incurred for the time saved. Time is money. Time is the most valuable currency that exists. Once time is spent, it's forever lost, one cannot retrieve it again (yet). In my mind, there are 3 options for use of time with respect to: mainstream, selfhosting, elfhosted.

  • mainstream - my time is valuable and I don't want curated content and I don't care what content that I have the ability to consume. I only like what's popular.

  • elfhosted - my time is valuable, I want my own curated content without being forced to browse past the same damn entry 500 times just to find out that I can't watch the movie I want because it's not available in my current location or was removed last week from mainstream providers.

  • selfhost - I care about costs and I have nothing but time to waste or I want to learn about the backend of the systems involved. I'll pay for my own VPS/homelab, electricity, manage the OS, manage app updates, figure out how to make the apps talk nice to each other, create my own beautiful frontend.

I know how much my time is worth, does that reddit poster know how much their time is worth? Without knowing what you are worth, you can't make effective capital expenditures with respect to the time it will take to recoup the capital.

I know I don't need elfhosted at all for my use case. I choose to stay with elfhosted because it's my 'easy button'. It's an efficient capital expense for the amount of time it saves me managing my own hardware, apps and saves me electricity costs. I'm also in a situation where I don't have upload bandwidth from my home to serve HD content to myself remotely. If I lived back in a city, I would still be here. My time is worth $$/hr.

⭐⭐⭐⭐⭐ @cobra2 (Discord)

"Just wanted to check in here and let @Darth-Penguini and anyone/everyone else know...WOW. I have been struggling with storage for years, maintenance of Docker containers, upkeep, all of it. Elfhosted is so freeing. It's an amazing service that I hope to be a member of for a long, long time!"

⭐⭐⭐⭐⭐ @Fingers91 (Discord)

"I just have to say, I am an incredibly satisfied customer. I had been collecting my own content for nearly 20 years. Starting off with just a simple external HD before eventually graduating to a seedbox with 100TB of cloud storage attached and fully automated processes with Sonarr and Radarr . However, the time came when the glory days of unlimited Google Drive storage ended. I thought my days of having my full collection at my fingertips via :plex: were behind me, until I found Real-Debrid and ElfHosted.

Now I essentially have the exact same access to content as I had before, but even better. Superior support and community involvement. Content is available almost immediately after being identified. A plethora of tools at my fingertips that give me more control and automation than ever before. Wonderfully well done and impressive! I am looking forward to being a customer for a very long time! Massive kudos to @funkypenguin 🤟

⭐⭐⭐⭐⭐ @BSM (Discord)

"I would recommend ElfHosted to anyone. It has been great so far and made life a lot easier than running my own setups. If you’re in the fence give them a try and help support this great community."

⭐⭐⭐⭐⭐ Zestyclose_Teacher20 (Reddit)

"thanks for the help and must say this is the best host I every had for my server 🙂 10/10 🙂 All other places I have try have I got a lot buff etc. Your host can even give me full power on a 4K Remux on 200GB big movie file . That's damn awesome 😄"

⭐⭐⭐⭐⭐ @tjelite (Discord)

"What an amazing support system these guys have Chris and Layzee i think it was! Both are very patient with me even though I am a newbie at all this. Very thorough and explained everything step by step with me

I couldn’t ask for anything better than the service I have received by these guys! Happy happy client❤️"

⭐⭐⭐⭐⭐ @dead.potahto (Discord)

"Very happy customer. Great service"

⭐⭐⭐⭐⭐ @ronney67 (Discord)

"Very good customer service, frequent updates, and excelent uptime!!!!!"

⭐⭐⭐⭐⭐ @ed.guim (Discord)

"I had my own plex-arrs setup on hetzner for years. Yesterday I deleted everything as elfhosted has gone above and beyond it. And it has a fantastic, active community as well! Very friendly, helpful and like-minded folks always willing to help and improve the system. Top notch!"

⭐⭐⭐⭐⭐ @alon.hearter (Discord)

"Absolutely Amazed with the patience and professionalism of all Elf-Venger Staff including bossman penguin❤️"

⭐⭐⭐⭐⭐ @dead.potahto (Discord)

"@BSM went above and beyond to make sure I had all the one on one support needed with my sub. Thank you for your patience! Elfhosted continues to be Elftastic !!"

⭐⭐⭐⭐⭐ @bfmc1 (Discord)

"really enjoying the service from elfhosted. The setup is really easy from the guides on the website. And the help on the discord channel is really quick."

⭐⭐⭐⭐⭐ @jrhd13 (Discord)

"Support is amazing, and once you find a setup which works best for you it works perfectly, very happy 😊"

⭐⭐⭐⭐⭐ @fiendclub (Discord)

"great fast service, resolved my problem and really friendly"

⭐⭐⭐⭐⭐ @allan.st.minimum (Discord)

"Great service and sorted out a billing issue super quick and easy."

⭐⭐⭐⭐⭐ @scottcall707 (Discord)

"Very friendly support, resolved a problem with my account! I also appreciate the community that has been built around the service!"

⭐⭐⭐⭐⭐ @leo1305 (Discord)

"excellent customer service and very fast replies"

⭐⭐⭐⭐⭐ @yo.hohoho (Discord)

"Loved the simplicity, experience and support"

⭐⭐⭐⭐⭐ @y.adhish (Discord)

"Very friendly help as always, problem solved, one happy elf here!"

⭐⭐⭐⭐⭐ @badfurday0 (Discord)

"Great Helpful and Fast support. Thanks!"

⭐⭐⭐⭐⭐ @.mxrcy (Discord)