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

Core

Indexes 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

Core

Pulls 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

Core

Copies 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

Core

Select 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

Storage

Mark 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

Metadata

Waterfall 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

Automation

Runs 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

Maintenance

Fixes 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

Required

Python 3.11+

The runtime. Use a virtualenv.

Required

Redis

Session storage. Any instance works.

Optional

Sonarr / Radarr

Most features assume at least one. Works without them in catalog-only mode.

Optional

TMDB API Key

Metadata fallback when NFO and ARR don't have it.

Optional

Shoko Server

Anime metadata. Point anime paths at it in config.

Path requirement

If Catalogarr and your ARR apps run on the same host, paths work as-is. If they are on separate machines, the paths configured in Sonarr/Radarr need to be accessible at the same location on the Catalogarr host — shared mount, NFS, etc.