github ellite/scrob v2.38.0

one hour ago

2.38.0 (2026-11-07)

Features

  • connections: add a count-as-watched setting to each connection card (c25c37a)
  • episode-order: server-wide TVDB/TMDB default plus a bulk re-map action (9415575)
  • filter and sort by my rating (#136) (eac0494), closes #274
  • i18n: add translatable UI infrastructure and interface language setting (e8b7ae4)
  • i18n: translate account pages and add a signed-out language picker (9c63745)
  • i18n: translate browse and detail pages (96e4313)
  • i18n: translate shared components (4d9cf1e)
  • i18n: translate the admin panel (6ac3176)
  • i18n: translate the app shell (layout, shared modals, 404, about) (75d04e1)
  • i18n: translate the connections page (d245178)
  • i18n: translate tracking and social pages (7126a9a)
  • lists: move the Watchlist sync info below the items, full width (ebe6604)
  • lists: show which services sync with the Watchlist, and in which direction (141367b)
  • native watchlist that every service syncs with (88b7907)
  • next-up: add option to follow most recent watch (8e0ee41)
  • plex: push playback progress (resume points) to Plex (17d863d)
  • scrobble: let each connection set the percent that counts as watched (82e1a3b)
  • settings: show TMDB, TVDB and RPDB keys as collapsible cards like the admin page, with an RPDB icon (09d9fd1)
  • stats: add full most played shows and movies pages (53481c6)
  • stats: show plays, watch time and last watched date on detail pages (6260c37)
  • webhooks: accept optional source field in Jellyfin webhook (ddffd53), closes #504

Bug Fixes

  • episode-order: address review feedback on the default order (c5474b6), closes #379
  • history: show and clear plays from every Media row of the same episode (#527) (27542d3)
  • i18n: format dates and numbers in the viewer's region (c5f64f3)
  • i18n: format ratings and decimals with the UI locale (7d035ba), closes #409
  • i18n: format the remaining raw user ratings (ef45606)
  • i18n: send Vary: Cookie, Accept-Language on HTML only (83ebcf9)
  • i18n: translate the progress sort and Radarr/Sonarr free-space labels (6d3691e), closes #409
  • i18n: translate UI strings the extraction missed (3e25243)
  • lists: keep the watchlist's name and privacy fixed; update the #497 progress test (8b9fdb5)
  • migrations: put the ui_language migration after upstream's head (1166668)
  • next-up: apply 'follows latest watch' in the Next Up position query (ab33b6f)
  • plex: gate the stop-time progress push on the connection's watched threshold (cc6612f)
  • scrobble: keep 90% as the default, chain the migrations after eodefault (4ef413e)
  • stats: count only completed watches as plays on detail pages (919c00e)
  • stremio: decode in Cinemeta order and retry failed lookups (#2) (b5f8df4)
  • stremio: stop retrying unmatched items after 5 failed syncs (03e0a4e)
  • sync: size Jellyfin/Emby episode totals by the expanded row count (b3acdf3), closes #138
  • sync: stop sync_items overwriting the job total, the pull already sizes it (#497) (66752d4)

Performance Improvements

  • i18n: keep the language picker script inline on signed-out pages (1ea3d29)
  • i18n: skip the Paraglide middleware on backend proxy requests (1947b25)
  • next-up: compute Next Up in the database (e8ca07e)
  • stats: count most played titles in SQL, and link TVDB-only shows on the full list (0ef9d5d)
  • tmdb: reuse one keep-alive HTTP client across requests (21ec543)

Don't miss a new scrob release

NewReleases is sending notifications on new releases.