github Moonfin-Client/Smart-TV 2.7.0
v2.7.0

8 hours ago

Moonfin v2.7.0 Release Notes github

This release adds a retro game player, a redesigned detail screen, tabbed search, a full Seerr hub, and a big batch of new home rows including Since You Watched, Rewatch, Recently Released, Playlists, and external lists. On top of that come cinema mode pre-rolls, a still watching prompt, a sleep timer, settings search, and button customization. Tizen playback got rebuilt from the ground up, old webOS TVs can finally connect to Let's Encrypt servers, and there is the usual long list of fixes for both platforms.

Note

Don't forget to update to Plugin v2.0.2 here
If you weren't aware, we have created a Discord server for Moonfin! If you have any questions or want to stay up to date with the latest news, please join the Moonfin Discord Server!

Features

Games

Play retro games on your TV. Moonfin now has a retro game library with its own detail pages and a built in game player with an on screen menu you can drive with the remote. Save states sync through the server, the app keeps the screen awake while you play, and backgrounding the app saves your game. Games need webOS 5 or Tizen 5 and newer, older sets get a clear message instead of a spinner. Box art now comes from your own server too. Check out the wiki for setup and details: https://github.com/Moonfin-Client/Plugin/wiki/Retro-Games

Home Screen

Since You Watched and Rewatch rows. Two new home rows built around what you have already finished. Since You Watched recommends titles based on your recent watches, and you can choose between a local recommender that scores your own library or online TMDB recommendations pulled through the plugin with a Seerr fallback. Rewatch surfaces things you have fully watched and might want to revisit, with its own filters and sorting.

A lot more home rows. This release adds Music Artists, Music Albums, Music Playlists, Continue Listening, Recordings, and Live TV rows, a Recently Released row sorted by actual release date, a Playlists row with sortable ordering, external home row lists backed by 13 TMDB charts, and IMDb list rows ported over from the core client. The Live TV row gives you quick channel access plus Guide and Recordings shortcuts. Seerr, TMDB, and calendar rows are now part of the home layout sync too, so your row setup carries across devices, and the Latest rows were renamed Recently Added so the two concepts don't get confused.

Faster home screen loading. The home screen now loads progressively, dismissing the spinner as soon as your first rows are ready and loading the rest in the background on a staggered schedule that goes easier on your server. All media server traffic now shares one request queue with a concurrency cap, so a cold boot no longer opens dozens of simultaneous connections that could lock up smaller servers.

Hidden items now sync. Hiding something from Continue Watching or Next Up on another Moonfin client now hides it on the TV too, and rewatching a hidden item brings it back like you would expect.

Better looking modern cards. Cards now show the poster with the landscape image only on expand, episodes default to the series poster, episode cards show the episode name next to its number, and missing images get a gradient and title placeholder. The focused card is now 16:9 so titles baked into the artwork no longer get cropped, expanded cards show real overviews, genres, runtime, and ratings instead of No description available, music gets square cards, My Media tiles expand like every other modern row, and coming back to a row returns focus to the card you were on.

Details and Search

A redesigned detail screen. Movie and show pages have a new modern layout that matches the other Moonfin clients, with a focusable tab bar and a setting to switch back to the classic style. Long descriptions collapse behind a Read More button you can expand and collapse from the remote, a new Details Background Opacity setting controls how dark the backdrop gets, and title logos are no longer color inverted, they get a drop shadow instead so colored logos stay intact.

Tabbed search results. Search results are now organized into tabs by type, so finding the right movie, show, or person is a lot less of a scroll. Your last ten searches are offered as quick chips, and game results show up too.

Change artwork from your couch. A new artwork selector lets you browse and set posters, backdrops, logos, and banners with the d-pad, with resolution and language filters and write permission checks so it only appears when your account can actually edit metadata. Admins also get an Identify option to match an item against remote providers.

Playback

Rebuilt Tizen playback. The Samsung AVPlay pipeline was overhauled top to bottom, with tuned buffering and adaptive startup, playback gated on buffer readiness, serialized seeking, proper suspend and restore with correct session reporting, fixed track selection timing and display scaling so the zoom and crop modes actually work, and a corrected device profile for HLS, Dolby Vision fallback, and dvd and dvb subtitles. Closing the TV now properly ends the session and Continue Watching refreshes when you come back. This closes out a whole cluster of Tizen playback issues in one go.

Cinema mode pre-rolls. With Cinema Mode on, pressing Play on a movie runs your server's configured intros first and rolls straight into the film. A failed intro never blocks the movie, and SyncPlay groups skip pre-rolls entirely.

The still watching prompt. After a configurable run of auto played episodes, playback pauses and asks if you're still there, so an unattended TV stops instead of working through a whole series. Only auto played episodes count, and picking the next episode yourself resets the counter.

A sleep timer. The player gained a 15 to 90 minute sleep timer that stops playback cleanly so your position is saved.

Redesigned skip and next up overlays. The skip button now has a draining countdown ring and covers every server marked segment type, and the Up Next card shows the episode thumbnail with a countdown ring in the play button, matching the other Moonfin clients. The related settings now sync too, including a new option to replace the skip outro button with Next Up.

Moonfin remembers your subtitle choice. Your subtitle selection now carries across plays and from episode to episode, so you don't have to pick the same track every time. Auto selected subtitles also follow your chosen language properly with the same track ranking the other clients use.

Live TV and DVR

Record from the guide. You can now schedule and cancel recordings right from the Live TV guide, and a program that is already scheduled shows Cancel instead of stacking up duplicate timers. Recordings gained a series timers tab, and you can add items to collections from the details page while you're at it.

Seerr

A full Seerr hub. The Seerr section now includes issues, collections, and your request quota. You can report issues and follow their comment threads from the TV, admins can approve or decline requests directly, requests show download progress, and loading requests or issues can be retried when something fails instead of leaving you stuck.

Music

A refreshed music experience. Music libraries open into a dedicated browse view with a hero header, chip navigation, and filters, and the music player was rebuilt with an ambient background pulled from the album art, a lyrics panel, and a queue panel, all matching the other Moonfin clients. Music items now use square cards.

Settings and Sync

Settings search. The settings screen now has a search field that finds any setting from a couple of characters and jumps focus straight to it.

Button customization. You can now reorder and hide the buttons on both the details page action row and the player controls, and your layouts sync through the plugin using the same keys as the other Moonfin clients so they follow you between devices.

Settings restore themselves on a fresh install. When you install Moonfin on a new TV and it detects the plugin, it now pulls your synced settings down automatically instead of starting you from scratch.

More settings actually sync. Rating labels, UI language, Live TV direct play, SyncPlay toggles, the clock, the still watching prompt, folder view, and the home row overlay now sync with the server, a batch of quick changes is pushed as one request, and the Classic or Modern home row style finally syncs correctly with the core client.

A Next Up day limit. Shows you haven't touched in a while now drop out of Next Up after a configurable number of days, which also keeps the query fast on large libraries.

Reorganized settings. Personalization and dynamic content settings have been reorganized to match the core client, so everything lives where you would expect it.

A diagnostics screen. A new live, filterable log viewer in settings traces server requests with timing when you need it, and can send a report straight to your server's client log endpoint, with tokens redacted.

Platform

Old webOS TVs can reach Let's Encrypt servers. Older webOS models reject Let's Encrypt certificates because their built in CA store is out of date. Moonfin now bundles a fallback service with an up to date certificate bundle and routes requests through it when needed, certificate errors show actionable guidance on the login screen, and there's a new opt in Allow Untrusted Certificates setting for setups that need it.

On-screen notifications. Moonbase notifications now appear right on screen in real time, Seerr updates show as toasts and admin broadcasts get their own dialog.

The 8-Bit Hero theme arrives. The retro pixel theme from the other Moonfin clients is now on TV, complete with pixel fonts and hard shadowed borders. Neon Pulse got its drifted colors corrected, and synced custom themes are now cached locally so your theme no longer flashes back to the default on every launch.

Bug Fixes

Playback and Sessions

  • No more phantom sessions. Backgrounding or closing the app now reports a proper stop to the server with your position saved, and playback picks back up when you return. Previously the TVs froze the app's timers the instant it was backgrounded, so sessions could sit marked as playing on the dashboard forever.
  • Transcode fallback resumes where you were. When webOS falls back from Direct Play to a transcode, playback now continues from your position instead of restarting from the beginning.
  • Dolby Vision with FLAC audio direct plays. FLAC audio in video containers now direct plays on webOS 5 and up, so a Dolby Vision file with FLAC no longer forces a transcode that strips the Dolby Vision.
  • DVD rips play on Samsung sets. Every Samsung TV carries an MPEG2 decoder, so DVD rips now direct play. Transcodes on AV1 capable Samsungs no longer demand an AV1 encode the server may not have, and webOS transcodes fall back to H264 when the server disallows HEVC encoding.
  • ALAC music stopped freezing on Tizen. ALAC files now transcode instead of freezing the native player partway through a track.
  • The next episode works across a season boundary. Finishing a season now rolls into episode one of the next real season instead of tripping over specials or missing episodes, and it works on secondary servers too.
  • Series shuffle always plays something playable. Shuffling a series now queues actual episodes in shuffled order and autoplay follows that order, instead of handing the player an unplayable item.
  • Forced subtitles actually show. The forced subtitle mode now turns the track on at playback start on both platforms.
  • Skip outro is pressable again. Credits detected from chapter markers now have somewhere to seek, the Next Up card no longer steals the remote from the skip button, and playback popups like Next Up and Still Watching now properly own the remote when they appear. Dismissed prompts also come back if you seek behind them.
  • The player OSD behaves. Long titles no longer clip, and on webOS the overlay now appears immediately when you pause or resume.
  • The playback speed control is gone. Samsung and LG hand the rate to a native pipeline that can't stretch audio and just drops it, so every speed other than 1x played silent. We removed a control that could never work on these TVs.
  • Slow servers get more patience. Playback preparation timeouts were raised to two minutes so heavy transcodes no longer fail before they can start.

SyncPlay

  • SyncPlay is back in sync. Group time sync now works like NTP against the server clock, commands execute at their scheduled time, and a new drift corrector continuously nudges playback rate or seeks to keep everyone in step over long sessions.
  • Groups stop getting stuck. Ready is only reported once the picture is verifiably moving, lost handshake reports retry with fresh position samples, and webOS now answers group state changes it used to ignore, so one TV can no longer leave the whole group waiting forever.

Home Screen and Interface

  • The media bar respects your library picks. It no longer pulls content from libraries you didn't select, including on launch from cache and in multi server mode, and switching users with the media bar off no longer leaves a stale home screen.
  • The media bar advances at the right pace. The auto advance interval was being synced in the wrong unit, which could mean flicker fast slides or multi hour delays. It also moves on as soon as a trailer ends now.
  • Media bar trailers actually play. Trailers now direct play the local file instead of requesting a transcode the web engine can't decode, with a YouTube fallback when the local file errors. Trailers also no longer start when you've turned them off, and they stop playing under the settings overlay.
  • Home row sync stopped wiping the server layout. The TV now writes the full layout shape the server expects, so syncing from the TV no longer clobbers disabled rows or plugin rows configured on other devices.
  • A sturdier home screen. Slow database scans on the random items query no longer crash the whole home page load, genre rows with a single item no longer break, IMDb rows no longer slow down home loading, and a TypeError when leaving a modern row has been fixed.
  • The details page stays put. The modern details page no longer opens scrolled down, no longer snaps back to the top while you move around, the Details tab is now reachable with the remote, and focus moves cleanly between the sidebar and the action row. Toggling watched or favorite no longer yanks focus back to Play.
  • The Live TV guide stops blanking. Navigating the guide horizontally no longer wipes it empty.
  • The lost connection banner clears itself. The app now quietly retries in the background and drops the banner as soon as the server answers, instead of waiting for you to press Retry.
  • Settings stopped fighting you. A setting changed while the login sync was still running no longer gets reverted, the PIN gate no longer flashes the home screen before settings load, every settings sub screen takes remote focus, and the home section reorder arrows now show up on Tizen.
  • Your language choice survives a reload. Changing the app language on webOS no longer reverts to English after the app reloads.

Ratings

  • Episode and season ratings got sorted out. Episode ratings now come from TMDB properly instead of being looked up in the wrong id space, they respect the rating source picker, and the server's own critic rating stays visible when the plugin has nothing to offer. Failed lookups back off instead of hammering the server, and ratings requests now carry the TV profile so the sources you picked on the TV actually apply.

Seerr and Multi Server

  • Seerr requests show the right user. Seerr no longer shows the first user's requests to every account on the TV, and the toggle no longer sticks off for a second user signing in on a shared device.
  • The requests screen stopped overlapping. Request cards now render cleanly separated.
  • Secondary servers behave properly. Opening an item from a secondary server no longer hangs on an endless spinner, genre browsing against a secondary Emby server now authenticates correctly, and switching audio or subtitle tracks on a secondary server item no longer 404s.
  • Emby Connect works again. Sign in now goes through the TLS aware fetch path and uses the same authentication flow as official Emby clients.

Platform and Compatibility

  • Jellyfin 12 ready. Connections now use the ApiKey parameter Jellyfin 12 expects across playback, subtitles, trickplay, and trailers, while keeping the legacy one for Emby.
  • No more hammering denied libraries. The app stops re-requesting libraries your account doesn't have access to, which used to trip Fail2Ban jails on hardened reverse proxies.
  • The screensaver stays out of the way. The LG firmware screensaver no longer appears during webOS playback.

The old HSS integration has also been removed, and the Jellyseerr integration is now simply called Seerr.

Contributors

Big thanks to everyone who contributed to this release:

What's Changed

  • Add translations contribution section to README by @jmawet in #258
  • remove incorrect weblate link haha by @jmawet in #268
  • add recently released rows by @jmawet in #261
  • feat: Improves episode and music item display on the home screen by @zhen-zen in #278
  • rip out hss by @jmawet in #281
  • feat: implement synced hide filters for Continue Watching and Next Up by @mattsigal in #294
  • Align homerowsstyle keys with core/base by @jmawet in #295
  • feat: port imdb list custom row changes from core by @mattsigal in #300
  • reorganize personalization and dynamic settings to match core by @jmawet in #301
  • fix: add catch fallback to getRandomItems API query on home page load by @mattsigal in #306
  • Feature/artwork dpad nav by @mattsigal in #307
  • map sinceyouwatched rows correctly to moonbase by @jmawet in #308
  • feat(tv): home row adjustmnets by @mattsigal in #309
  • feature-ui - Port "Read More" behaviour to Smart-TV by @mattsigal in #310
  • feat(ui): port modern details background opacity slider to Smart-TV by @mattsigal in #311
  • bugfix-bannertime - Fixes a unit mismatch in the SmartTV logic for auto-advance intervals by @mattsigal in #316

New Contributors

Full Changelog: 2.6.0...2.7.0

Don't miss a new Smart-TV release

NewReleases is sending notifications on new releases.