Skip to content

Quality presets in plain language

Status: Accepted · Audience: Operator · Area: D — Content & household


Let someone choose what quality they want without learning what a custom format is.

Quality configuration is the deepest rabbit hole in this ecosystem. The TRaSH guides — excellent, and the community standard — run to dozens of pages covering custom formats, scoring, release groups, and repack handling. Configuring it properly by hand takes an evening and real domain knowledge.

The operator’s actual question is much simpler: how good should this look, and how much disk am I willing to spend? Everything else is implementation.

The question is asked in the operator’s terms

Section titled “The question is asked in the operator’s terms”
Preset Means Roughly
Space-saving Good enough on a laptop or tablet 720p–1080p, smaller encodes
Balanced (default) Looks right on a TV, sensible file sizes 1080p, good encodes
High quality Best 1080p available, size secondary 1080p, high-bitrate
Maximum 4K where it exists, HDR preserved 2160p, very large files

Each preset states its practical consequence — approximate size per hour and whether a typical client will need to transcode — because that’s what the choice actually costs.

Presets map to community-maintained profiles

Section titled “Presets map to community-maintained profiles”

Presets are a friendly surface over Recyclarr’s TRaSH-guide profiles, not a parallel quality system. The community maintains the hard part; lemonfiber translates the question.

This matters for durability: when release-group scoring shifts, the upstream guides update and Recyclarr syncs it. A bespoke scoring system would rot.

Transcoding consequences are stated up front

Section titled “Transcoding consequences are stated up front”

Choosing Maximum on a machine that cannot hardware-transcode means every household member watching on a device that can’t direct-play 4K HDR will hit CPU-bound transcoding — which on Docker for macOS or Windows means it will not work well.

lemonfiber knows the platform and the Jellyfin mode (ADR-0007), so it can say this before the choice rather than after the complaints.

Per-type overrides, without leaving plain language

Section titled “Per-type overrides, without leaving plain language”

Different presets per media type are supported — Maximum for film, Balanced for television is a common and sensible split, since a series is many times the volume of a film.

Presets are a starting point, not a ceiling. An operator who wants to hand-tune custom formats does so directly in the *arr, and C9 protects that work from being reverted.

Changing a preset affects future acquisitions. It does not retroactively upgrade an existing library unless the operator explicitly asks for that — which is a large, bandwidth-expensive operation and must never be a side effect.

State Meaning
unset No preset chosen; *arr defaults in force
applied Preset synced and active
overridden Per-type presets differ from the global choice
customised Operator has hand-edited profiles; preset no longer authoritative
sync-failed Preset could not be applied
Situation Behaviour
Maximum chosen without hardware transcoding State the consequence for household playback before confirming.
Preset chosen with limited disk Project storage need against free space and warn if implausible.
Operator hand-edited profiles Report customised; do not overwrite. Applying a preset then requires explicit consent.
Upstream guides changed Sync on schedule; report meaningful changes rather than applying silently.
Upstream unreachable Keep the current profiles; report that sync is stale. Never fall back to unconfigured.
Preset lowered after building a library Affects future grabs only. State this explicitly — the expectation is often the opposite.
Operator wants existing content upgraded Supported as an explicit, separate action with its bandwidth and time cost stated.
Media type has no meaningful preset Books and audiobooks have different quality axes; present format preferences instead of resolution.
Preset conflicts with an indexer’s available releases Report that few or no releases match, distinguishing it from an indexer failure.
Two presets produce identical profiles for a type Collapse them rather than presenting a distinction without a difference.
ID Requirement
D2-R1 Quality MUST be selectable in plain language without reference to custom formats or scoring.
D2-R2 Each preset MUST state its practical consequence — approximate size and transcoding implications.
D2-R3 Presets MUST map to community-maintained profiles rather than a bespoke scoring system.
D2-R4 Where the platform cannot hardware-transcode, selecting a preset requiring transcoding MUST warn before confirmation.
D2-R5 Per-media-type presets MUST be supported.
D2-R6 Changing a preset MUST state that it affects future acquisitions only.
D2-R7 Upgrading existing content MUST be a separate explicit action with its cost stated.
D2-R8 Hand-edited profiles MUST be detected and MUST NOT be overwritten without explicit consent.
D2-R9 An unreachable upstream guide source MUST leave existing profiles intact and MUST report staleness.
D2-R10 Projected storage requirement MUST be compared against available space, with a warning where implausible.
D2-R11 Media types without a resolution axis MUST present appropriate alternative options.
D2-R12 A preset yielding no matching releases MUST be reported distinctly from an indexer failure.

This page lives in another repository Rendered from lemonfiber/spec at 1d10402, 2026-09-09. Read the source of this page