2026-07-13 Anime Remuxes Were a Live-Action Size Floor
What I set out to do
dust ~/media showed 1.2 TB with the disk at 91% full and only 183 GB free. Wanted to know what was worth cleaning up.
What I actually did
The library breaks down as 651 GB of WEB (2.24 GB/file), 153 GB of Bluray (1.66 GB/file), and 419 GB of Bluray remux across just 62 files (6.76 GB/file) — two shows. My Hero Academia S05+S06 at 320 GB, and I Parry Everything S01 at 77 GB. ffprobe put MHA S06E01 at 35.4 Mbps for a 24-minute animated episode.
I was wrong about the cause three times before landing it, and each wrong answer was plausible enough to have shipped:
- “Config accident.” No. Git history shows the
[Anime] Remux-1080pprofile came in wholesale from TRaSH’ssonarr-v4-quality-profile-animeinclude template, then got mechanically migrated to atrash_idin7fe241dwhen upstream emptiedincludes.json. Deliberately adopted, but the disk cost was never anyone’s decision. Nothing in the commits,AGENTS.md, or the vault ever weighed it. - “Swap to the
[Anime] 1080pprofile.” That profile doesn’t exist. TRaSH publishes exactly one anime profile. - “The profile prefers remux.” It doesn’t. TRaSH groups
Bluray-1080pandBluray-1080p Remuxinto one quality group, so Sonarr treats them as equal quality, and TRaSH scores Anime BD Tiers (1400-700) above Remux Tiers (975/950). Remux isn’t rewarded for being remux.
The actual root cause: anime and live-action share one Sonarr instance, so anime inherited quality_definition: series, whose Bluray-1080p floor is 50.4 MB/min. Animation compresses far better than live action, so every well-made anime BD encode (20-40 MB/min) was auto-rejected as a suspected fake release, and remuxes became nearly the only legal releases. TRaSH’s separate anime definition sets that floor to 5 MB/min, explaining it as: “anime, animated series, and cartoons are set up wide open.”
Sonarr’s own release API, queried against the live profile, is what finally proved it. [Amen] (18 GB, 30 MB/min) and [EMBER] (12 GB, 20 MB/min) weren’t losing on score, they were being rejected on size, while [fig]’s 177 GB remux (295 MB/min) sailed through. That endpoint (/api/v3/release?seriesId=&seasonNumber=) returns each release’s computed custom-format score and its rejection reasons — far better than guessing from config, and the single most useful tool of the session.
Fixed with two changes, both required: switch to quality_definition: anime, and remove the remux quality from the anime profile. Relaxing the floor alone is a no-op, because remux still outscores every encode on the BD tiers and the *arrs only ever upgrade to a higher score — they would never step down. Applied to Sonarr and mirrored to Radarr. Shipped on both the live main (Jinja .j2) and the unmerged feature/iac-declarative-config branch (nix/lib/generate.nix), since the Nix seam isn’t deployed yet.
Outcome
293 GB reclaimed. Disk 91% → 75% (183 GB free → 476 GB). Library 1.2 TB → 891 GB. Zero remux files left.
| Before | After | Replacement | |
|---|---|---|---|
| MHA S05 | 156 GB | 40 GB | iAHD Bluray-1080p x265, score 1300 (auto) |
| MHA S06 | 164 GB | 43 GB | iAHD P1+P2, force-imported by hand |
| I Parry S01 | 72 GB | 14 GB | YURASUKA Bluray-1080p x265, score 1400 (auto) |
The 419 GB / 62-file remux bucket is gone entirely. The library is now 651 GB WEB + 255 GB Bluray + 49 GB other.
S05 and I Parry re-grabbed automatically as clean single season packs, dual audio preserved, no orphans. The failure mode I was watching for — Sonarr’s per-episode fallback search stitching a season together from a dozen different groups — didn’t happen, though I Parry’s search had to grind through it while eating TokyoTosho 429s for the better part of an hour.
S06 needed the manual import, and it went far better than the One Piece precedent suggested. The gotcha I braced for did not exist: only the folder is named S06.P1, while the files inside are cleanly named My.Hero.Academia.S06E06...mkv. That is precisely why Sonarr rejected the release (it parses the release title) while still mapping the files perfectly once pointed at the folder. /api/v3/manualimport?folder=... returned 25 distinct episodes with zero rejections and needed no hand-written regex at all. The lesson generalizes: when Sonarr says “unable to identify correct episode(s)”, check whether the files are parseable before assuming the pack isn’t. Imported with importMode: copy, verified 25/25 distinct file sizes in the library, then deleted the torrents with deleteFiles=true to reclaim the 51 GB from /downloads.
Prowlarr’s magnetUrl-is-a-proxy-URL trap from the One Piece session is still live and still bites; used guid for the real magnet and both adds went through with pending_count: 0.
Left the four bundled specials (S00E08/09/13/14, ~6.5 GB) uningested. They are new content, not replacements, and silently growing the library during a cleanup would have been the wrong default.
What was striking
Every layer behaved correctly. The profile, the tiers, the scoring, and the upgrade logic all did exactly what they were designed to do. The inputs were wrong, one setting deep, and the symptom surfaced 400 GB away from the cause. Nothing anywhere in the config contains the word “remux.”
The profile is now named [Anime] Remux-1080p while explicitly forbidding remux. That looks like a bug and is actually load-bearing: the Anime Dual Audio +500 score, scripts/constants.sh, and setup-seerr.sh all bind the profile by name. Renaming it would silently break Seerr’s anime routing. Documented in AGENTS.md so nobody “fixes” it.
Fixing the floor moved S06’s blocker rather than clearing it, which was worth knowing before assuming the config change alone had done the job: T3KASH (17 GB) started clearing the size check but scored 0, below minFormatScore: 100, as an unrecognized release group. The config change made encodes eligible; it could not conjure a well-named pack into existence.
The general lesson: when a system has a guard rail calibrated for one content type and you feed it another, the guard rail doesn’t fail loudly — it quietly narrows your options until only the pathological choice is left. TRaSH’s answer to this is a second Sonarr instance for anime, which is also what would let the Language: Not Original carve-out go away.
Next
- Consider the second Sonarr instance properly, now that both *arrs have traded their live-action fake-release size floors away to serve anime. That is the real fix; today’s is the carve-out.
- Neither branch is pushed. Live-repo fix sits on
fix/anime-quality-definition; the same change is in the IaC branch’snix/lib/generate.nix. - The four MHA specials are still unowned if they ever seem worth 6.5 GB.