Moonfin v2.9.0 Release Notes 
Moonfin 2.9.0 brings the TV apps up to date with Moonfin-Core 2.6.0. There are three new detail screen styles, Spotlight, Nouveau and Minimalist, Kids Mode strips the app back behind a PIN, and if your server runs the Achievement Badges plugin you can see all of it on the TV. Live TV got a rebuilt guide and a quick channel changer, other Jellyfin apps can now control the TV, and loading animations, skeletons and a rebuilt screensaver come across from the other clients. SyncPlay finally holds together on Samsung and LG sets, and a long list of subtitle, audio and focus fixes comes with it, including ASS and PGS subtitles showing from the start on Samsung and Moonfin opening again after switching apps on LG.
What's New
Three New Detail Screen Styles
- Spotlight. The artwork comes first, with Play and a few actions in the hero and the rest under More Actions. Below it sits a band of summary cards with counts, for Seasons and Episodes, Cast, Crew and Studios, Chapters and Extras, More Like This, Collections and more, and each one opens a pop-up grid. Extras are sorted into Behind the Scenes, Deleted Scenes, Featurettes, Interviews, Scenes and Shorts.
- Nouveau scrolls the whole screen as one page, with the hero over the backdrop and every section stacked below as its own row instead of a tab. It opens on the season you're up to, selecting an episode's artwork plays it, and a footer holds the studios, the Seerr details and the file information.
- Minimalist is the artwork, one row of buttons and the episodes with season tabs. Movies, series, seasons, episodes and videos get it, and anything else falls back to Spotlight.
- All three are under Settings > Details Screen > Details Screen Style and in the setup wizard, which brings it to five styles.
Details Screen
- A customizable metadata row. Settings > Details Screen > Media Details and Spoilers > Metadata Row lets you show, hide and reorder the year, parental rating, runtime and seasons, status, upcoming episode, genres and Seerr availability, and it syncs through Moonbase.
- Upcoming episode air dates. Series show when the next episode airs, as Today, Tomorrow, a weekday or a date with the season and episode, from Sonarr through Moonbase with TMDB as the fallback.
- Action Buttons on Screen. Pick how many buttons stay visible before the rest fold under More, from Play only up to ten, or All for a row that scrolls sideways.
- A File Information tab. Modern's Details tab is now File Information, with the file size, the date it was added, the audio and subtitle tracks, and whether the file can direct play. When it can't, it says why in plain words with a hint, like turning on passthrough or raising the bitrate limit.
- A long press menu on cards. Hold OK on a card almost anywhere for Play or Resume, Mark Watched, Hide from Continue Watching or Next Up, favorites, collections and playlists. Remove from Collection shows on the collection's own page, and admins also get Refresh Metadata, Identify and Change Artwork.
- Collections play through as a queue, starting with the film you're partway through or the first unwatched one, and they get a Shuffle button too.
- Missing collection items. A collection now shows the films you don't have next to the ones you do, in release order with a Seerr badge, and selecting one opens its request page. Show Missing Collection Items is in the Seerr settings, and Show Seerr Availability Badges hides the season dots if you'd rather not see them.
- The Seerr section matches the other clients. Genres, networks and keywords fold into one Genres and Tags chip, the facts sit in a grid with a new episode count, Recommendations comes before Similar, and the collection banner moved up above the facts.
- Seerr requests show as a poster grid, each tile with its type, status, requester and date. A download bar says how much has come down, like 1.6 GB of 4.4 GB, then shows Importing once it's done.
- Seerr titles have a Trailer button that plays the trailer Seerr already knows about.
- Person pages were rebuilt. Filmographies split into Movies, Series, Guest Appearances and Music Videos, with Crew Contributions and Appearances from Seerr when it's set up. A person from a Seerr-only title opens the same screen instead of a separate one.
- Badges are easier to read. Watched checks, unplayed counts and Seerr dots get a white ring and a shadow, and favorites become a round red heart.
- Recommendations match the other clients. A Recommendation Source setting for More Like This and Since You Watched picks between Moonfin Recommends, Jellyfin Recommends, TMDb Similarity through Seerr, and Hybrid. Moonfin Recommends uses Moonbase's server scoring where it's available, and More Like This shows up to twenty titles.
- Long button labels scroll when they're focused, and episode cards read as E1: Title.
Anime Markers
- Anime episodes get Filler, Mixed, Recap, Manga Canon and Anime Canon markers, plus Subbed, Dubbed or Subbed/Dubbed from the audio in your files. They show on episode, season and movie cards, the detail screens, and the Next Up card in the player, once your admin turns them on in Moonbase.
Kids Mode and Parental Controls
- Kids Mode is under Settings > Account & Security. Turning it on asks for a new four digit PIN, which is cleared when you leave.
- What goes away. Settings shrink to Exit Kids Mode. Libraries, Live TV, Seerr and SyncPlay leave the navigation, and the Live TV, Recordings and Seerr screens send you back Home. Home keeps the My Media tiles, Recently Added and one combined Continue Watching and Next Up row, and search drops its Seerr results.
- Detail screens always use Minimalist, with only Play, Shuffle and Favorite, and no description or technical details.
- After five wrong PINs the wait grows, up to fifteen minutes. Your own layout comes back untouched when you exit, and Kids Mode doesn't sync, so it stays on the TV you turned it on for.
- Blocked ratings block everywhere. They only ever filtered home rows. They now cover search, suggestions, favorites, libraries, genres, people, the detail screen and playback, SyncPlay and the next episode included, and a blocked title shows a padlock and won't play.
- Blocking a rating blocks everything stronger too. Ratings that can't be ranked sit in their own section that only blocks itself, and an episode with no rating goes by its series. The list is stored per server and per user instead of once for the whole TV.
- The sign-in PIN gets the same lockout, and it's now stored as a hash instead of the digits.
Achievement Badges
- Moonfin draws the Achievement Badges plugin on the TV. If your Jellyfin server runs it, Settings > General > Achievement Badges opens your rank and score, a badge showcase, a page for each badge with its progress and the titles that would finish it, and daily and weekly quests with one reroll each.
- Power-ups, a shop, a stats screen, a leaderboard and an activity feed come with it, along with avatars and rank titles to wear. Moonbase isn't needed, and Emby servers don't have it.
Live TV
- The guide was rebuilt. A hero band previews the focused program with its own artwork, cells are tinted by genre, ended programs fade, and episode titles show with their numbering. Earlier and Later buttons and the Fast Forward and Rewind keys page through the rows.
- It opens on the channel you last watched, and Back returns there first before leaving. The channel sort is saved and synced.
- A quick channel changer. Press Up during live playback, or the new Channels button in the player, for a carousel of channels in guide order that wraps around. If a channel fails to tune, the previous one comes back, and the carousel closes after two minutes without a press.
- A Live TV button in the top bar and the sidebar goes straight to the guide when your server has Live TV. It's on by default, and Live TV leaves the Libraries list while it's shown.
Remote Control
- Other Jellyfin apps can control the TV. Play, pause, stop, seek, next and previous, the TV's own volume and mute, messages, the d-pad, audio and subtitle tracks, repeat and shuffle, and items sent to play now, play next or add to the queue.
- Your phone can type into the TV's search. A phone remote can open Search on the TV and fill it in live as you type on the phone.
Playback
- Loading animations from the other clients, under Settings > Extras > Loading Animation with a live preview. Pick the image, the size, a position or bouncing, the speed and whether the text shows, and they sync through Moonbase.
- Chapter Marks, off by default, mark where each chapter starts on the seek bar.
- Pause While Scrubbing is now a choice, and trickplay previews are preloaded so scrubbing keeps up.
- Current Time joins the player's time slot options.
- A subtitle timeline in the offset overlay. Adjusting the subtitle offset shows the cues around the playhead on a ten second ruler, so you can see where they should land instead of adjusting by ear. It works for text subtitles.
- The full subtitle palette. Fifteen colors for text, shadow and background, for SDR and HDR.
- PGS subtitles play straight from the file on LG. Embedded PGS in a direct played MKV is read from the file itself, instead of waiting for the server to pull a subtitle file out first, which on a large file could take a long time.
- Wait for ASS/SSA subtitles, a new LG setting that holds the video until styled subtitles are ready, so the first lines show.
- Trailers play at up to 1080p and keep the original soundtrack rather than YouTube's automatic dubs.
- The title's logo shows during playback, with the season and episode under it, and logos are trimmed so they come out a similar size.
- Track pickers match the other clients, and subtitle search results show badges for AI Translated, Machine Translated, SDH, Forced and Perfect match, with the provider, rating and download count.
- Watch with group on the detail screens while you're in a SyncPlay group, and a Watch now button in the SyncPlay dialog.
Home and Browsing
- Skeleton placeholders replace the spinners on Home, libraries, music and the detail screen, with the home rows showing their outline first.
- Favorites has a Home View, with a tab for each type you've favorited and a detail line over the focused item's backdrop. The old grid is still there under View style.
- Messages from your server admin have their own list with an unread count, instead of a one-time dialog, and a link in a message shows as a QR code for your phone. The Show messages button is off by default and needs a Moonbase version that supports messages.
- The screensaver was rebuilt under Settings > Appearance > Screensaver with a live preview. Choose library art or a Black, Moonfin, Calm, Neon Pulse or Aurora backdrop, with a logo, clock or runner on top that has its own movement, size and position.
- Library sort and filter categories collapse, with Sort open to start.
- Music video playlists get their own section, and shuffle and the media bar can use mixed content libraries.
- Group into Collections is a new library setting, and Modern cards on My Media row can be turned off for fixed landscape tiles.
- The top navigation pill matches the other clients, and the on-screen keyboard shows a blinking caret.
Emby
- Send report to server works on Emby through the Moonfin plugin, when client log upload is turned on there.
Bug Fixes
Playback
- The audio track you picked actually plays on a remux or transcode. The stream only carries the track the server built it around, so switching on the player couldn't reach the others. The choice now goes to the server before playback starts.
- A commentary track no longer stands in for audio the TV can't decode. When the default track was DTS on a Samsung set, the app picked the same language track with the most channels, which could be a 5.1 commentary.
- 4K titles that have to transcode play on 1080p sets. The transcode came out at 4K, which a 1080p set couldn't play, and it's now capped at the panel size.
- On Samsung, a stream that dies after a long pause reopens as it was instead of being downgraded to a transcode.
- The skip intro prompt stays for every episode in a run. A four second timeout on the segment lookup cleared it for the whole episode.
- Subtitles start off when a mode finds nothing to show, so Forced no longer shows a full track on a file with no forced one.
- Embedded text subtitles show on Samsung when the server can't extract them, and MP4 timed text plays for the first time.
- ASS subtitles show from the start on Samsung with their styling, instead of needing to be picked again every time. The subtitle canvas wasn't on the page yet during loading, and the renderer's fallback font wasn't in the build.
- ASS subtitles start right away on LG, so resuming no longer plays for several seconds without them.
- PGS subtitles show again, and with PGS direct play off the server burns them in.
- A downloaded subtitle gets selected. The app looked for the new track straight after the download, before the server had listed it, so it usually wasn't found.
- The player controls stop lagging. They redrew on every focus move and added another key listener every time they drew.
- On LG, moving along the player buttons keeps the controls up, so the next Left or Right no longer turns into a seek.
- Still watching resets on any press, not only when you picked the next episode yourself.
- OK on the progress bar plays and pauses, the first arrow press with the controls hidden no longer seeks twice, and the remote's Play and Pause keys now apply Unpause Rewind like OK does.
- Chapter start times read as a clock, 5:00 rather than 5m, and the first chapter shows its time.
- The next item keeps its playback session when the previous one's stop report comes back late, instead of having it wiped.
- Dolby Vision Profile 7 files no longer freeze on Samsung sets without Dolby Vision. Profile 7 adds an enhancement layer on top of its HDR10 or HDR10+ base, and on those panels the picture froze after a couple of minutes while the subtitles carried on. Only Dolby Vision panels direct play them now, the rest get a remux from the server with the Dolby Vision taken out, and the playback information names the base layer that's actually playing.
- Dolby Vision in MKV shows as Dolby Vision on webOS 24 sets that report their firmware version in place of the SDK version. That made them look like webOS 38 and skip the remux.
Emby
- Dolby Vision Profile 8.1 files direct play, read by the profile Emby reports.
- HDR titles show their real HDR format in the playback info panel, and the HDR subtitle style turns on. Emby doesn't fill the field the app was reading.
- Next Up fills on Emby 4.10, which answers an unscoped Next Up request with an empty list.
SyncPlay
- Joining a group opens the player at the group's position, instead of leaving you on the dialog while the film played behind it from the start.
- Seeks go through the group, so they stop being undone, whether they come from the seek bar, the skip buttons, chapters or Fast Forward and Rewind.
- The TV stays in the group. It wasn't answering the server's keep-alive, so it dropped out about once a minute.
- The stop-start loops are gone. webOS reported buffering it wasn't in, Ready went out when the server wasn't waiting for it, and corrective skips made the drift worse. The Speed to Sync settings are gone too, since TVs stall on playback rate changes.
Home and Navigation
- The Magic Remote pointer no longer scrolls rows or opens tabs as it passes over them, and a Libraries dropdown opened with the pointer stays open.
- Coming back to Home or Seerr Discover puts focus on the card you left, the first row included.
- Back from the top of Home asks to exit when the media bar is off, and with Confirm Exit turned off it actually exits.
- Back returns to the media bar after opening something from it.
- The media bar keeps its place. At startup it could flip through two or three different backdrops before settling back on the first item, and coming back from an item gave you a different set.
- The media bar no longer skips a trailer just as it's about to appear at startup, and the MakD style follows the Auto Advance settings.
- Home starts faster when the rewatch row includes collections.
- Library, favorites and genre panels hold focus, picking a filter no longer pulls focus to the grid, and the last row no longer sits cut off at the bottom.
- Focus stays inside dialogs and overlays instead of escaping to hidden controls behind the sign-in dialogs, the subtitle overlays, the trailer and the No Connection screen.
- Settings search results hold focus, so Back from a result and Down from the search box land on the right result.
- The setup wizard fits at larger UI scales, and Right from Back or the last card reaches Next.
- The update panel holds focus, Back closes it, and its release notes render as proper formatted text.
- Turning the clock off hides it in the sidebar too.
- The screensaver shows a title's name when it has no logo art, instead of showing nothing.
- Watched, progress and favorite marks update live, including changes made on another device.
- The home recommendation rows skip libraries you hid from My Media.
- Latest rows for TV libraries show one card per series on Jellyfin 12, rather than cards that said Season 1.
- Genre pages stop repeating backdrops, headers stop wrapping, and playlists, seasons and folders stay out of them.
- The shuffle screen has its spacing back.
Search
- Search ignores accents. Typing canco finds Cançó, and Ángel is filed under A on the alphabet strip, including in library search, Live TV channels and games.
- Search is faster and the keyboard keeps up while typing, Up from the results goes back to the category tab, and the last card in a row scrolls fully into view.
Details
- A movie shows the collection it belongs to. The app looked for it among the item's parent folders, and a Jellyfin collection isn't one.
- Selecting a cast member on a Seerr title no longer says Person not found.
- Seasons that aren't in your library no longer get a green watched check when missing episodes are shown.
- Seerr request status is right. A completed request whose media was later deleted still said Available, and 4K requests showed the HD copy's status.
- The Seerr Watchlist row shows its posters and opens the right titles.
- The Seerr season picker no longer traps focus, its buttons fit, and Back closes it.
- Birthdays no longer show a day early for anyone west of UTC, and a person who has died no longer has their age counted up to today.
- MyAnimeList shows once in the rating sources, and Metacritic User shows at all, when the list came from Moonbase or another client.
Connections and Reliability
- No Internet Connection only shows when your server really is unreachable. On webOS the app trusted LG's own reachability check, so blocking an LG domain with something like Pi-hole locked the app.
- Moonfin opens again after switching apps on LG, without the memory optimizer or a restart, webOS 4 included.
- Jellyfin 12 servers work. User calls moved to the routes Jellyfin 12 keeps, and the legacy authorization header Jellyfin 12 rejects is only sent to Emby.
- Logs and reports redact server addresses, IP addresses, URLs and tokens before they're stored.
- Remote subtitle messages can be translated, where fourteen of them were always in English.
Note
The server button and the library names on versions that came in 2.8.2 have been taken back out, along with the duplicate folding in collections and browse rows. Titles held on several servers still show once in search, Continue Watching, Next Up, Random and Favorites.
Contributors
Huge thanks to everyone who contributed this release:
- @Kisnov
- @mattsigal
- @KevOutIngs
- @Licaa21
- @wmurphy126
- @repparw
- @northernpowerhouse
- @MasterOfKay
- @vincentyangch
- @armanckeser
Translations were updated through Weblate by mikey and Vesa-Matti Salminen (Finnish), Kisnov (Catalan), oskarkasprzyk (Polish), therealresonix and rekiznuh1 (German), managemygroup and terry tibbs (British English), Stefan van der Linden (Dutch), Simon Hung (Traditional Chinese), RocketPear (Czech), myrad2267 (French), Miloš (Serbian), Lică (Romanian), and idezentas (Turkish). If you want to help translate Moonfin into your language, check out our Weblate project.
Full Changelog: 2.8.2...2.9.0