unsubbed.co

Sortarr

Released under MIT, Sortarr provides sonarr and Radarr library insights on self-hosted infrastructure.

Read-only media library analytics for Sonarr and Radarr, honestly reviewed. What you actually get when you self-host it.

TL;DR

  • What it is: A read-only analytics dashboard that plugs into your Sonarr and Radarr APIs and surfaces disk-usage data those apps collect but never present clearly [1][README].
  • Who it’s for: Self-hosters running Sonarr and/or Radarr with libraries large enough that “why is my array filling up?” is a real weekly question. Not for anyone without an existing Arr setup — there is nothing to connect it to [1].
  • Cost savings: Sortarr is MIT-licensed and free. There is no direct SaaS competitor — the alternative is manual analysis with ncdu, spreadsheets, or ignoring the problem entirely until a drive fills up.
  • Key strength: Read-only by design. It cannot delete, move, or modify your media. The “GiB per hour” metric — file size relative to runtime — is a genuinely useful lens that neither Sonarr nor Radarr exposes natively [1][README].
  • Key weakness: Early-stage project (version 0.8.7, 163 GitHub stars, 3 forks). Limited third-party reviews. The security model was substantially rebuilt in 0.8.3, meaning anyone running an older install has a mandatory migration step before upgrading [README].

What is Sortarr

Sortarr is a small Python web application that connects to your Sonarr and Radarr instances via their APIs and produces a sortable, filterable table view of your media library’s disk footprint. You give it API keys, it reads your library, and it shows you what is actually sitting on your drives and how efficiently that space is being used.

The pitch from the developer on launch: “I run Plex on UnRaid with a fairly large Sonarr and Radarr managed library. I didn’t want another automation tool that deletes or replaces media, I wanted visibility first.” [1] That sentence is the entire product philosophy. Sortarr does not touch your files. It does not trigger upgrades or deletions. It just surfaces the data.

What specifically does it surface? Per-show and per-movie disk usage, runtime versus file size (the GiB-per-hour view), season-level breakdowns, codec and format metadata, and optional enrichment from playback providers like Tautulli, Jellystat, or Plex so you can cross-reference “how much space is this show using” with “does anyone actually watch it” [1][README]. That combination is the thing Sonarr and Radarr themselves do not give you.

The project runs on Docker, requires no database setup, and exposes a small REST API so other scripts and dashboards can pull from it [README]. As of this review it sits at 163 GitHub stars and 3 forks — a small but growing audience, entirely within the self-hosted media stack community.


Why people choose it

The honest answer to “why Sortarr” is narrow: you already run Sonarr and/or Radarr, your storage is filling up, and you want to understand why before you do anything about it. That is the exact use case the developer shipped it to solve, and it is the only use case the project claims to cover [1].

The Reddit launch thread [1] gives the clearest picture of who reached for it. The r/unRAID community — people running large Plex libraries on UnRAID servers — responded positively to the combination of three things: it is read-only (no automation anxiety), it is Docker-friendly with no extra database, and it surfaces the GiB-per-hour metric that neither Sonarr nor Radarr shows. Several users in that thread mentioned feeding its HTTP API into custom scripts or dashboards rather than using the web UI directly.

The developer noted explicitly that feedback was still being collected and the project was early in development at the time of posting [1]. There are no independent third-party reviews of Sortarr at the time of writing beyond that thread — the project is too niche and too new to have attracted mainstream coverage. Take that as a signal: this is real self-hosted infrastructure software with a small, technically competent user base, not a polished product with a marketing budget.

What it is not competing with is worth stating clearly. Sortarr does not compete with Sonarr or Radarr — it depends on them. It does not compete with Tautulli or Jellystat — it integrates with them. It fills the gap those tools leave: playback analytics tell you what people watch, Sortarr tells you what your storage actually looks like and whether the disk allocation matches the value you are getting from each title.


Features

Based on the README and the developer’s description:

Core library view:

  • Connects to Sonarr and Radarr via their API URLs and API keys [README]
  • Per-show and per-movie disk usage breakdown [1]
  • GiB-per-hour metric: file size relative to runtime, useful for spotting bloated encodes [1]
  • Sort and filter across any column [README]
  • Season-level summary rollups for Sonarr libraries [README]
  • CSV export for external analysis or scripting [1][README]

Custom format score analysis (Sonarr):

  • Lowest and highest Custom Format Score columns, sorting, filtering, and CSV export added in 0.8.7 [README]
  • Season summary rollups for score-based analysis [README]

Playback enrichment (optional):

  • Tautulli integration for playback context [1]
  • Jellystat support [README]
  • Plex data-route enrichment for stream and metadata details [README]

Multi-instance and comparison:

  • Supports multiple Sonarr and Radarr instances [1]
  • Format, codec, and HDR comparison across library entries [1]

Infrastructure:

  • Docker and Docker Compose deployment [README]
  • No database setup required — just point at your Arr instances [1]
  • REST API for integration with external scripts and dashboards [1]
  • Authentication: Basic auth or External (reverse proxy header) [README]
  • Container hosted on GHCR (ghcr.io) [README]
  • German translation available; multi-language UI [README]

Security (post-0.8.3):

  • Setup gate requiring re-entry of API keys and auth configuration on upgrade from pre-0.8.3 installs [README]
  • Secret management rebuilt to use file references and Credential Manager instead of plaintext values [README]
  • *_FILE, *_CRED_TARGET, and wincred: references for secrets [README]
  • CSRF fix for reverse-proxy deployments that terminate HTTPS internally [README]

Pricing: self-hosted math

Sortarr is MIT-licensed and costs nothing in licensing fees. There is no SaaS tier, no managed cloud version, and no commercial edition. The project exists solely as a self-hosted Docker container.

If you already run a home server or NAS: the marginal cost of adding Sortarr is effectively zero. It is a lightweight Python app — the README lists no minimum RAM requirement, and the Docker image is small. It adds negligible load to a machine already running Sonarr, Radarr, and Plex.

If you would need a dedicated VPS: a $4–6/mo Hetzner or Contabo VPS is more than sufficient, though running Sortarr on a VPS without your Arr instances on the same network requires exposing your Sonarr/Radarr APIs externally, which creates an attack surface. In practice, Sortarr belongs on the same local network as your Arr stack.

The real cost comparison is not Sortarr versus a paid alternative — no direct paid equivalent exists. It is Sortarr versus the status quo of either guessing which shows are eating your drives or writing your own scripts to answer that question. The developer wrote Sortarr because the existing tools did not answer this. If you have the same itch, the cost is an afternoon of setup.


Deployment reality check

The setup path is Docker Compose. You provide environment variables or a config file with your Sonarr URL, Radarr URL, and API keys, and the container starts serving the dashboard. No Postgres, no Redis, no separate database [1][README].

What you actually need:

  • A Docker host on the same network as your Sonarr and Radarr instances
  • Sonarr and/or Radarr already running with API access enabled
  • API keys for each Arr instance
  • A reverse proxy (Caddy, nginx, or Traefik) if you want HTTPS and external access
  • Optional: Tautulli, Jellystat, or Plex for playback enrichment [1]

What can go sideways:

The 0.8.3 security migration is mandatory for anyone upgrading from an older install. The README is direct about this: you will be redirected to a setup screen, you must re-enter your API keys, choose an authentication method, and generate a session secret [README]. The process is one-time, but if you have an older automated Docker Compose setup that restarts without supervision, you may find Sortarr locked at the setup gate until you manually complete migration.

The CSRF fix in 0.8.7 addresses a specific failure mode: reverse proxies that terminate HTTPS externally but forward to Sortarr over plain HTTP without forwarding the original scheme headers. If you see setup form POST failures with that configuration, you are hitting this bug — 0.8.7 resolves it [README].

Plex enrichment in particular had inconsistent data population in earlier versions. 0.8.7 specifically addresses Plex data-route enrichment filling stream and metadata details more consistently [README]. If you are relying on Plex playback data in the UI, run 0.8.7 or later.

Realistic time estimates:

For someone comfortable with Docker Compose and who already has Sonarr/Radarr running: 15–30 minutes to a working dashboard. The configuration is simpler than most Arr tools because there is no database to initialize. For someone who has never run a Docker container: 1–3 hours including reverse proxy setup. If you are upgrading from a pre-0.8.3 install, budget 15 extra minutes for the migration step.

The developer is active and responsive to issues — the project went from initial post to version 0.8.7 with a meaningful security rewrite, multiple new columns, and several targeted bug fixes. That is a good signal for an early-stage project [README][1].


Pros and cons

Pros

  • Genuinely read-only. Sortarr cannot modify, move, rename, or delete your media. This is a deliberate architectural choice, not a missing feature [1][README]. For anyone burned by automation tools doing unexpected things to their library, this matters.
  • GiB-per-hour metric. File size divided by runtime is a simple but unusually useful lens for spotting bloated encodes and oversized seasons. Neither Sonarr nor Radarr surfaces this [1].
  • No database dependency. Docker Compose, API keys, done. No Postgres provisioning, no Redis, no migration scripts on first run [1][README].
  • CSV export. Data leaves the UI and goes wherever you want it — spreadsheets, scripts, Grafana [1][README].
  • Playback enrichment. Optional Tautulli/Jellystat/Plex integration correlates disk usage with actual viewing habits [1][README].
  • Multiple instance support. If you run separate Sonarr instances per quality profile or user, Sortarr handles that [1].
  • REST API. The HTTP API lets you build your own dashboards or scripts on top of the same data [1].
  • MIT licensed. No usage restrictions, no commercial licensing hurdles [README].
  • Active development. The developer is responsive, shipping targeted bug fixes and new columns consistently [README].

Cons

  • Early stage. Version 0.8.7, 163 stars, 3 forks. This is not an abandoned project, but it is also not battle-tested at scale across thousands of installs [README].
  • Mandatory migration on upgrade from pre-0.8.3. If you set it up and forgot about it for a few months, an upgrade will stop you at the setup gate until you re-enter credentials [README]. Not a disaster, but a surprise if you expect a seamless Docker pull.
  • Security model was rebuilt from scratch in 0.8.3. The README explicitly states early versions handled secret storage in a way that does not meet current security expectations [README]. If you have an older install exposed to the internet, treat it as a priority upgrade.
  • No independent reviews. No G2, no Product Hunt, no third-party write-ups beyond the developer’s own launch post [1]. You are largely evaluating the README and source code, not community consensus.
  • Scope is narrow by design. Sortarr does not notify you of issues, does not trigger upgrades, does not integrate with Sonarr’s quality profiles for automated action. It shows you a table. If you want enforcement, this is not the tool [1][README].
  • Plex enrichment inconsistencies in older versions. Only resolved in 0.8.7 — partial or missing fields were a known issue [README]. Minor if you are on current, relevant if you were evaluating based on an older install.
  • No mobile-optimized UI mentioned. The project describes a web dashboard but makes no mobile responsiveness claims. Likely usable in a browser but not designed for phone use.

Who should use this / who shouldn’t

Use Sortarr if:

  • You run Sonarr and/or Radarr and have no clear picture of which shows or movies are dominating your storage.
  • You want disk-usage visibility before you make any deletion or upgrade decisions — you want data, not automation.
  • You are already comfortable with Docker Compose and have your Arr stack deployed.
  • You want to correlate disk usage with playback data from Tautulli, Jellystat, or Plex.
  • You want to feed library analytics into your own scripts or dashboards via a simple REST API.

Skip it if:

  • You do not run Sonarr or Radarr. There is nothing to connect it to.
  • You want automation — automatic deletion of unwatched content, quality upgrade triggers, Recyclarr-style profile management. Sortarr is read-only by design and will not do any of that.
  • Your library is small enough that a quick look at disk usage in your NAS UI answers your questions.
  • You need a production-grade, audited tool with enterprise support. This is a solo-developed open-source project at version 0.8.7.

Skip it and use Tautulli instead if:

  • Your primary question is “what is my household actually watching” rather than “what is using my disk”. Tautulli covers playback analytics far more deeply; Sortarr covers disk analytics far more deeply. They are complementary, not competing.

Alternatives worth considering

There is no direct competitor to Sortarr doing exactly what it does. The adjacent tools:

  • Tautulli — playback analytics for Plex. Answers “what is being watched and by whom” with far more depth than Sortarr’s optional Plex enrichment. Does not answer “which shows are using the most disk” or show GiB-per-hour metrics. These two tools complement each other. https://tautulli.com
  • Jellystat — equivalent to Tautulli for Jellyfin. Same relationship: playback focus, not disk-usage focus. Sortarr supports Jellystat as a playback data source [README].
  • Sonarr and Radarr built-in views — both apps show basic library information but do not aggregate disk usage clearly across the library, do not compute GiB-per-hour, and do not let you sort your entire library by storage cost. This gap is exactly what Sortarr fills.
  • ncdu / Filelight / DiskStat — generic disk-usage analyzers. These show you what’s on disk but have no awareness of Sonarr/Radarr metadata, playback status, or per-episode resolution and codec. Useful for raw forensics; not useful for media-library analysis.
  • Recyclarr — manages Sonarr and Radarr quality profiles and custom formats. Complementary to Sortarr, not overlapping: Recyclarr handles configuration, Sortarr handles visibility.
  • Custom Grafana dashboards — some power users build these by querying Sonarr/Radarr APIs directly. Sortarr is essentially a pre-built version of that, with the REST API available if you want to go further.

The practical shortlist if you want media library analytics and you run Arr tools: Sortarr for disk usage, Tautulli or Jellystat for playback analytics, used alongside rather than instead of each other.


Bottom line

Sortarr solves one problem well: it answers “what is actually on my drives and is it worth the space it takes?” using data your Arr stack already has but never presents in a useful way. The GiB-per-hour view alone is worth the 20-minute setup for anyone with a library large enough that storage pressure is a recurring conversation. The read-only design is not a limitation — it is the feature. You get visibility without automation risk, and you make your own decisions about what to do with the information. The security rewrite in 0.8.3 and the ongoing targeted bug fixes suggest a developer taking the project seriously despite a still-small user base. The main honest caveat is that this is early-stage software with limited independent validation. If your Arr stack is production-critical to your household, watch the changelog before updating, complete the 0.8.3 migration with care, and do not expose it to the internet without authentication configured. If those caveats are manageable, the tool does exactly what it claims, costs nothing, and answers questions that would otherwise require a spreadsheet and an afternoon.


Sources

  1. jlharper (Jaredharper1), r/unRAID“Sortarr – Media library insights for Sonarr & Radarr (Docker-friendly)”. https://www.reddit.com/r/unRAID/comments/1q8qk30/sortarr_media_library_insights_for_sonarr_radarr/

Primary sources:

Features

Integrations & APIs

  • REST API