What is Catalogarr?
A self-hosted media archive manager built for the Servarr ecosystem. It handles the side of media management that Sonarr and Radarr don't.
Why it exists
Every homelab running a media server eventually hits the same problem: main storage fills up, but you don't want to permanently delete things you've already watched. The drives pile up on a shelf, half-labeled, impossible to query.
Sonarr and Radarr are excellent at managing what you're actively watching. They have no concept of "archive" — no way to say "this show is done, move it off the main array, keep the metadata, and let me get it back someday."
Catalogarr fills that exact gap. It's a personal project built for one homelab, open-sourced because other people have the same problem.
Honest disclosure
The frontend is roughly 90% AI-written — HTML and CSS aren't where the author spends their time. The backend is about 85% hand-written, with AI filling in the rest. It's a tool that works, built by someone who uses it daily.
Everything Catalogarr does
Archive Catalog
CoreIndexes everything on your configured drives. Shows which drive each item is on, whether the drive is online or cold, and pulls metadata from NFO files, Sonarr/Radarr, or TMDB in that order. Local NFO first — no network, instant.
Active Catalog
CorePulls your current Sonarr/Radarr library and displays it alongside your archive. Multi-select items and archive them in one shot — no individual clicks per series.
Archive to Drive
CoreCopies the full media folder — video files, artwork, NFO metadata, thumbnails — to a chosen local drive. Options to remove from Sonarr/Radarr and delete the source files. Deleting source requires typing the title to confirm — no accidents.
Restore to Live
CoreSelect an archived item, pick a Sonarr/Radarr root folder, and Catalogarr copies the files and triggers a rescan automatically. For TV shows, season-level restore checks what Sonarr already has episode-by-episode and only shows you the seasons that are actually missing.
Drive Management
StorageMark drives as cold storage to prevent restores on everything sitting on them. Drive status is also detected automatically — if the path is gone from the filesystem, the drive shows as offline regardless of the stored status. No false positives.
Metadata Enrichment
MetadataWaterfall order: local NFO files first (no network, instant), then Sonarr/Radarr, then TMDB. Anime paths go through Shoko before TMDB. All API keys are read at runtime so changes to .env apply without a restart.
Scheduled Tasks
AutomationRuns in the background via APScheduler. All tasks can also be triggered manually from the Tasks page. Current tasks: metadata enrichment, metadata refresh, poster cache, connector stats, connector media sync, drive deduplication, merge duplicate media.
Merge Duplicate Media
MaintenanceFixes the case where episodes above E99 or filenames the parser misread got indexed as separate shows instead of episodes of an existing series. Runs daily and on demand.
Dependencies
Python 3.11+
The runtime. Use a virtualenv.
Redis
Session storage. Any instance works.
Sonarr / Radarr
Most features assume at least one. Works without them in catalog-only mode.
TMDB API Key
Metadata fallback when NFO and ARR don't have it.
Shoko Server
Anime metadata. Point anime paths at it in config.