github ZL154/jellyfin-plugin-startrack v1.7.0
v1.7.0 - Serializd, two-way Letterboxd, and season ratings

3 hours ago

The largest StarTrack release so far: a second external service, a new thing you can rate, and the Letterboxd integration finally going both ways.


📺 Serializd — new, and both directions

Serializd is television-only and Letterboxd is film-only, so between them StarTrack can now mirror a whole library.

Importing needs your username and nothing else. Your Serializd diary is a public page, so StarTrack just reads it — no password, no token, nothing stored. Only pushing needs credentials.

Import Push
You provide Username Email + password
Password stored No Yes — encrypted at rest
Covers Series, seasons, episodes Series, seasons, episodes
Runs Hourly, or Sync now Hourly, or Push now
  • Per-kind toggles for series, season and episode ratings
  • Optional written reviews. Serializd only keeps review text on a log entry, so a rating carrying a review is sent as a log; a bare rating stays a rating and creates no diary noise
  • Verify login tells you immediately whether the password works, rather than failing silently an hour later
  • Newest-wins on import — a rewatched season appears in the diary more than once, and StarTrack keeps your most recent opinion rather than whichever entry arrived last
  • Watch logs with no rating are skipped, not imported as zero stars, which would invent a rating you never gave
  • Skip-if-unchanged, so an hourly push over a settled library costs one sign-in and no writes at all
  • Direction selector matching Letterboxd's: Off / Import only / Export only / Two-way

Known limitation: the import reads your diary, which lists entries you logged. A rating you gave on Serializd without logging it is stored as a plain rating and doesn't appear there, so it can't be imported. Pushing is unaffected.


⭐ Season ratings

You can now rate a whole season, not just a series or an episode. Seasons get the same rating panel on their detail page, their own Seasons tab in My Ratings, and their own Top 4 row.

This is what makes the Serializd import worth having: a season is Serializd's native unit the way a film is Letterboxd's, and roughly two thirds of a real Serializd diary is season entries. Without season support, an import would have silently dropped most of your history.

Season ratings stay between StarTrack and Serializd. Trakt, Simkl, Yamtrack and Letterboxd have no concept of rating a season, so seasons are deliberately withheld from them rather than filed as a show — or worse, as a film.


🔄 Letterboxd — now two-way

Import has always worked from a username alone. Sending ratings back is new, and comes in two flavours because Letterboxd has no public write API:

CSV export Automatic push
Password needed No Yes — stored encrypted
Effort Download, upload at letterboxd.com/import Runs hourly on its own
Two-factor accounts Works Cannot work
  • Push ratings, watched status, likes, your watchlist and dated diary entries
  • Overwrite toggle — decide whether a push may change a rating that already exists on Letterboxd, or leave the remote one alone. Off by default, so a push never silently overrules a rating you made elsewhere
  • Verify login button, and a Cloudflare escape hatch for installs that get challenged
  • The CSV route is offered first and needs no password at all

📖 Diary

  • Log a watch — a dated "log this" control on the rating panel, so a diary is something you build in Jellyfin rather than only import from Letterboxd
  • Automatic logging on playback. Finishing something records it server-side, so every client counts — not just the web UI
  • Automatic rewatch detection — logging something you've already watched is recorded as a rewatch without you having to say so

🐛 Fixed

  • Simkl import returned nothing at all (#19). StarTrack read the wrong response fields and choked on Simkl's string-typed TMDb ids, so every pull silently reported zero while the export kept re-sending the same items. Anime ratings and TV series ids now import too
  • Post-playback rating popup missed the playing item on 10.11.11 (#21). It scraped the DOM and picked up the library parent instead; it now asks Jellyfin's /Sessions endpoint for the real item, and correctly detects a hidden-but-present OSD page
  • "Hide Letterboxd sync button" and "Hide External Sync button" did nothing (#23). The toggles were read correctly but lost to the panel's own !important styling
  • The TV rating panel could be opened but the stars couldn't be reached with a remote (#8), so a rating couldn't actually be set. Focus now lands on the stars and stays inside the panel. The panel also scales properly in Large mode on a 1080p screen
  • Manual installs reported "Not supported" (#22). The release zip shipped with only the DLL and no meta.json, so Jellyfin couldn't read a target ABI. The zip now contains it, and the build fails if its version or ABI ever drift from manifest.json
  • The widget injection corrupted index.html on every update. Its cleanup removed the path out of the old script tag instead of the whole tag, leaving <script src="?v=…"> behind — which points at the page itself, so browsers re-downloaded the whole page and tried to parse HTML as JavaScript. One accumulated per update. Pages already damaged are repaired automatically on upgrade

🙏 Contributed

  • Media Bar Enhanced support — replace the hero rating with the StarTrack average, thanks @mysticalsoap (#18)
  • Admin-managed Letterboxd setup — link a Letterboxd username to any user from the plugin config page, thanks @mysticalsoap (#17)

Notes

  • In-place upgrade — no data migration. Existing ratings, diary, watchlist and lists are untouched
  • Fully localised across all 8 languages (651 strings)
  • Targets Jellyfin ABI 10.11.0.0
  • StarTrack injects into the Jellyfin web interface. Native clients (Roku, Android TV, the mobile apps) don't run it, so ratings you make in a browser are stored safely on the server but can't be displayed there — see Where StarTrack works

Install

Plugin repository (recommended) — add this in Dashboard → Plugins → Repositories, then install from the Catalogue and restart:

https://raw.githubusercontent.com/ZL154/jellyfin-plugin-startrack/main/manifest.json

Manual — download the ZIP below and extract it into a folder inside your Jellyfin plugins directory. It now includes meta.json, so this works properly again.

Don't miss a new jellyfin-plugin-startrack release

NewReleases is sending notifications on new releases.