Files
flan 6334f3f4da Apply the community-rating floor to rated titles as well
The audience tag admitted any title whose official rating sat at or below the
ceiling, with no quality condition at all. The community-rating floor was only
consulted when a title had no usable rating. On a real library that let 21
poorly reviewed but mildly rated titles through - Norbit, Cats, Super Mario
Bros., Rocky V, Cool as Ice among them - none of which belong in a library whose
entire purpose is to be smaller than the one it was carved out of. A ceiling
answers whether a title is suitable; it says nothing about whether it is worth
offering.

MinCommunityRating now applies to rated titles, alongside the existing
MinCommunityRatingWhenUnrated for titles with no rating to judge. The two are
separate settings because an unrated title carries more uncertainty and may
warrant a higher bar. A rated title with no community rating at all now fails,
which is deliberate: with neither a score to check nor a reputation to weigh,
there is nothing to decide on.

Verified against the live library: a full pass over 2778 titles settles at 561
tagged, and the 21 are not re-added.
2026-09-19 23:35:13 +00:00

2.2 KiB

Changelog

All notable changes to this project are documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

1.0.0 - 2026-09-19

Added

  • Rating repair. A rating string Jellyfin cannot parse is not merely untidy: it takes the same code path as "unrated", which stays visible to every profile including one with an age ceiling set. Foreign board ratings are remapped to their documented US equivalents (GP to PG, TP and L to TV-G, B to TV-PG, B-15 and VM14 and M to TV-14, NC16 and M18 and R21 to TV-MA, Passed to Approved, and the plain typo PG13 to PG-13). The repaired value is added to the item's locked fields so a later provider refresh cannot undo it.

  • Ratings are never inferred from genre, synopsis or any other content signal. A wrong guess fails open, which is the single failure mode parental controls exist to prevent. Anything unmappable is reported as a warning for a human to map, and left alone.

  • Audience tagging. Applies a configurable tag (default grandma) to titles that clear a genre rule, a rating ceiling and a community-rating floor, so a user account can be narrowed with Allowed Tags. The floor applies to rated and unrated titles alike, through separate settings, because a ceiling on its own admits poorly reviewed titles that happen to carry a mild rating, and the point of the tag is to make an overwhelming library smaller rather than to reproduce it. Unrated titles are judged on reputation alone, which is what keeps the older classics TMDB holds no US certification for. Because Allowed Tags fails closed, new content is invisible to that account until tagged, which is why this runs on a schedule rather than once.

  • A curation ledger at tagged-ids.txt in the plugin data folder. An item whose id is in the ledger but which no longer carries the tag was untagged by a person on purpose, and is never tagged again. Without it every run would silently undo manual curation.

  • Runs as a Jellyfin scheduled task, daily at 05:00 by default, configurable from the Scheduled Tasks screen.