3.5.0 (2026-10-13)
Features
- anime: show anime episodes as out on their earliest release or their English dub (e766d94)
- catalogs: let custom manifest catalogs turn caching off with a TTL of 0 (a2da87c)
- catalogs: list the titles favourited on the Jellyfin server as watchlist catalogs, sortable and per user (e82f00d)
- catalogs: option to keep a custom manifest addon's own art (8b0a281)
- collections: studio logo row in Anime Essentials (4bdbf99)
- configure: set the poster shape of selected catalogs in bulk (7d01bd1)
- jellyfin: carry audio and subtitle language lists in the user configuration (7ad1568)
- jellyfin: choose whether the Upcoming row lists caught-up shows or everything airing (6e80683)
- jellyfin: download movies and episodes through the standard Jellyfin endpoint (be15058)
- jellyfin: keep the server's own watchlist alongside picked tracker shelves (2ee661b)
- jellyfin: option to keep unaired episodes playable (8026134)
- jellyfin: pick the order skip marker sources are asked in (3ab80f8)
- jellyfin: protect a user with a PIN (93938ed)
- jellyfin: suggest titles as you type through Search/Hints, from LumiereDB (78f5738)
- jellyfin: tag collection tiles and rows whose title the builder hides (76a14ca)
- jellyfin: tell the stream addon which app the streams are for (a6b622c)
- mal: add an Enable Jikan (MAL) setting to turn MAL catalogs, search and metadata off (8f13e68)
- mal: offer None in the MAL Genres catalog (52b1d36)
- manifest: accept tags as path segments, so each tagged install has its own URL (7f0684c)
- meta: choose which country's age rating is shown (#821) (066572b)
- publicmetadb: add public lists by link (5df1294), closes #791
- simkl: count a watch at the same progress as the played threshold (b6ba7e0)
Bug Fixes
- add missing timezone alias (#788) (0f339e1)
- anilist: keep the date each list entry was added (716cbc1)
- catalogs: keep a merged catalog's user-specific sources when the export includes them (329136c)
- config: change a saved configuration only with its password or an owning session (4dd3e24)
- dashboard: count each title once in a configuration's played and in-progress figures (e1c9cc6)
- dashboard: count only server errors and rate limits in the error rate, and name the routes behind them (db20ddc)
- dashboard: give the dashboard tabs a subtler focus ring (82e71b4)
- dashboard: read the error rate over the last 24 hours and today's requests by the viewer's own day (f589b4a)
- dashboard: show Lumiere searches in the Performance tab (1b36993)
- docker: pull base images from the Docker Hub mirror on mirror.gcr.io (5a98a4e)
- id-mappings: only backfill Wikidata TVDB and TVmaze ids into dins series rows (#798) (3768817)
- jellyfin: ask MDBList for upcoming episodes only when it is the chosen tracker (93f5c0d)
- jellyfin: clear a resume point that was cleared on the tracker (2952dfb)
- jellyfin: count a collection's titles rather than its catalogs (39fc52b)
- jellyfin: count an episode unmarked here as unwatched in its show's total (31e92a7)
- jellyfin: date favourites by when they were added (e121674)
- jellyfin: drop the show when an episode or season is disliked (59c4d36)
- jellyfin: give a filmography the configured art and watched marks, a page at a time (89c415b)
- jellyfin: give each search suggestion an artists list, as clients built on the Kotlin SDK require (eaafb06)
- jellyfin: give similar titles the configured posters and art (9df7899)
- jellyfin: index started shows a list finds unindexed (cdc53a6)
- jellyfin: keep a trailer's YouTube link to the video's own id (e556163)
- jellyfin: keep an aired episode in Upcoming until Next Up lists it (fe17561)
- jellyfin: keep media source ids in their bare form (7562a6b)
- jellyfin: keep titles that read as unwatched out of the activity history (153f2fb)
- jellyfin: list a person's whole filmography when no limit is asked (265c95f)
- jellyfin: list a title's fetched streams when it is opened again (03c94df)
- jellyfin: list each watch once in the activity history (e1c9cc6)
- jellyfin: list unreleased movies from every watchlist in Upcoming (d4fa4fe)
- jellyfin: mark watched titles in similar items (e743ebd)
- jellyfin: open a title at once when its versions are resolved on open (5449a11)
- jellyfin: pick up MDBList watches marked with a past date (596a1f5)
- jellyfin: play the default version when "Load the stream list" is picked (fe70827)
- jellyfin: refresh MDBList Up Next when a followed show's next episode airs (7826c17)
- jellyfin: return the neighbouring episodes for AdjacentTo (3b102b0)
- jellyfin: reuse a title's stream list for three minutes by default (28610bb)
- jellyfin: send artwork at the width the client asks for (679fdbf)
- jellyfin: serve profile pictures at /UserImage (8552807)
- jellyfin: show a title once when several watchlists list it (3be7c06)
- jellyfin: show watchlisted movies on the calendar (5c51996)
- jellyfin: sign out devices of a user removed from the configuration (d29bd1a)
- jellyfin: use the PublicMetaDB watchlist for favourites without its catalog (fc14f9d)
- mal: pick up a new season's episodes once it premieres (d85b4e1)
- mal: read MAL from the public Tenrai API now that the public Jikan API has shut down (8f13e68)
- mal: show a whole decade when its catalog's genre is None (6239804)
- manifest: leave the Rate Me button out of Catalog Mode Only installs, so it shows once from the install that supplies meta (62403be)
- mdblist: skip MDBList until a long Retry-After passes instead of waiting it out (68cd967)
- search: resolve Lumiere and IMDb search results with the configured meta provider (#795) (a4c67c3)
- serve rating page titles, imported manifests and proxied art in their own formats (6a2fe46)
- tmdb: try pt-PT before English for pt-BR metadata (#796) (189718c)
- tvdb: read Alternate Order 2 and Alternate DVD Order from their seasons (4697283)
- watch-tracking: lower AniList and MyAnimeList progress when episodes are unwatched (97cf591)
- watch-tracking: unwatch a season on PublicMetaDB one episode at a time (b76802e)