Releases: Moonfin-Client/Smart-TV
v2.4.0
Moonfin v2.4.0 Release Notes 
Hey guys, It's 4:30 AM for me and I am kinda tired so gonna keep this short and sweet, but first things first:
Note
If you didn't know, Moonfin for iOS is now available directly via the Apple App Store! Of course Android is available via the Google Play Store and Desktop apps for MacOS, Windows, and Linux
Features
Playback
- PGS subtitle rendering for Tizen 4β9 and webOS 3β25; legacy devices fall back to burn-in (#100)
- ASS/SSA styled subtitle rendering via libass-wasm integration, same as above (#151)
- Subtitle downloads β search and download subtitles from within the app (#109)
- SyncPlay support β if you never heard of Syncplay then it's synchronized "watch together" playback using Jellyfin's SyncPlay protocol (#89)
- Screensaver during paused playback to prevent OLED burn-in (#127)
- Stereo upmix to surround β stereo-to-surround upmixing for music playback via ffmpeg surround filter (#96)
- Track selection for Play Next β audio and subtitle preferences now carry over when the next episode starts (#128)
Music
- Complete rework of Music libraries with lyrics support (#97)
Details Screen
- Extras and special features section
- Chapter selection from the details screen
- Collections section
- Media versions β choose between different versions of the same media
- Next Up and Next Episode cards on episode and series details
- Delete button for users with delete permissions
- Ended/Continuing badges for series
- TMDB season ratings via updated Moonfin plugin endpoints
- Updated styling for age rating and codec badges
UI & Navigation
- UI language switching with support for English, Polish, Russian, German, Spanish, French, and Brazilian Portuguese (#139, #152, #163)
- SpottableInput component for text inputs β fixes Magic Remote flapping on webOS (#142)
- Oblong icon variant for Tizen home screen (#121)
- Updated account switching dialog with circular avatar cards
- Clear all data function in Settings > About > Data
- Server connection retry logic with improved error messaging (#143, #153)
- Updated person details screen
- Updated Tizen compatibility and UI scaling
Bug Fixes
- forceDirectPlay not working on Tizen β
forceDirectPlaysetting now correctly passed togetPlaybackInfo(#132) - Gzip-compressed API responses causing
SyntaxError: Unexpected end of input(#145) - Jellyseerr search results bluescreen on Tizen β navigation data now normalized before opening details (#146)
- Jellyseerr money formatting crash on Tizen 5.5 β
RangeErrorfrom incompatibleIntlusage (#122) - Jellyseerr advanced request profile selection not working β user permissions handling normalized (#150)
- Jellyseerr season request dialog β cursor unable to reach Request/Cancel buttons (#124)
- Jellyseerr "My Requests" showing UNKNOWN with missing poster art (#137)
- Jellyseerr on legacy Tizen β image URL normalization, HTTP protocol fallback, hidden external trailer action (#159)
- Skip Intro causing infinite freeze on Tizen 6.5 β prevented multiple skip triggers via dismissal ref (#134)
- Play Next loading wrong subtitles β subtitle state now resets on new media load (#138)
- Audio/subtitle track selection ignored from the details page (#131)
- HDR10+ incorrectly reported on LG C4 (webOS 24) causing DV playback failures β removed unsupported HDR10+ capabilities (#140)
- DV HDR broken on LG C3 after HDR10+ fix β restored HDR and Dolby Vision capabilities for webOS (#157)
- Unsupported containers for webOS video playback now handled properly (#102)
- Live TV not working after regular media playback β stale playback options and resume state now cleared on player end (#165)
- Live TV support and playback β general fixes for Live TV functionality
- Folder library not recursively showing files (#160)
- Logo error handling β details page no longer shows blank space when title image is missing (#161)
- Browse screen not refreshing after changes β added background refresh for Browse and refresh event from Details (#162)
- Empty home rows from server blocking default rows from displaying
- More Like This row focus trap fixed
- Library card animation β smoother transitions (#111 but not really since it works for me but I'm stumped why it doesn't for them)
- OSK close blocking navigation β fixed bug preventing navigation after on-screen keyboard was closed
- Spotlight navigation on text input β fixed focus behavior
- Person details focus traps resolved
- Details screen overflow with cells under the button row
- Removed stale Seerr login functionality
- Language files β ensured all translations have complete 706-key coverage (#156)
Contributors
- @nClarke0101 made their first contribution in #132
- @kaiffeetasse made their first contribution in #145
- @Morph21 made their first contribution in #152
- @marjac6 made their first contribution in #159
- @JoshuaMorley made their first contribution in #165
Full Changelog: 2.3.0...2.4.0
v2.3.0
Moonfin v2.3.0 Release Notes 
What's New in v2.3.0
New Features
- Add to Playlist - Browse and add any item to an existing playlist, or create a new one on the spot, all without leaving the details screen. Playlist items can also be removed using the Delete key. (#126)
- UI Scale Setting - A new accessibility option lets you adjust the interface font size dynamically to match your viewing distance and TV setup.
- Theme Music - The app now plays theme music for series.
- Library Sidebar Toggle - The sidebar no longer auto-expands libraries on focus. Libraries are now expanded explicitly, making navigation cleaner on large library setups.
Improvements
- Settings Overhaul - The settings panel has been fully redesigned with a cleaner layout.
- Ratings Refresh - Rotten Tomatoes and community ratings are now displayed across Browse, Details, the Media Banner, and Libraries. If you would like access to many more ratings, connect to the Moonfin server plugin.
- Browse Performance - The Browse component was significantly optimized: better state management, dynamic imports for the FeaturedBanner, smarter caching, improved backdrop transitions, and row scroll position memory across navigation.
- MediaCard Progress Bar - Watch progress indicator has been visually improved for better readability at TV viewing distances. (#110)
- Jellyseerr Dialog - The Jellyseerr request details dialog was refactored for reliability and correct focus handling. (#106)
- New App Icon & Splash - Updated app icon and splash screen assets across both Tizen and webOS builds.
Bug Fixes
- Login Failures on Legacy webOS - Fixed a critical issue where DB8 storage timeouts caused users to be unable to log in. The app now falls back to
localStorageautomatically on timeout. (#101) - Auto-Skip Intro / Next Episode Card - Restored broken auto-skip functionality for intros and the next-episode prompt. (#104)
- Audio Stream Handling - Fixed incorrect audio stream selection and session reporting during playback. (#103)
- Subtitle Matching - Fixed subtitle track selection to correctly handle multiple matching text entries on both Tizen and webOS players. (#115)
- DirectPlay Override - Removed the legacy
SupportsDirectPlayflag that was incorrectly suppressing direct play for compatible streams. (#88) - Dolby Vision Playback - Added proper DV codec handling and transcode URL rewriting to fix playback on content with Dolby Vision signaling. (#107)
- Playback Options Reset - Playback audio/subtitle options are now correctly reset when moving to the next item in a queue. (#105)
- Row Scrolling & Truncated Titles - Fixed home-screen row scrolling to always reveal the row label, and fixed media titles being cut off in the banner. (#117)
- API Response Decoding - Resolved a regression where API responses were not being correctly decoded from
ArrayBuffer, causing silent data failures. (#125) - URI-Encoded FileContents - Fixed a crash in error handling when
FileContentsvalues were URI-encoded. (#116) - Plugin Settings Sync - Settings are now correctly synchronized with the updated Moonfin Plugin endpoints. (#118)
- Focus Stability - Fixed duplicate focus calls on initial load that could cause erratic remote navigation behavior.
Contributors
A huge thank you to everyone who contributed to this release!
- @nullbyze - Featured Banner timer (#119), auto-skip intro/next episode (#104)
- @999romain - Improved MediaCard progress bar (#110)
v2.2.0
Moonfin v2.2.0 Release Notes 
Important
Tizen "SmartHub" releases are just gonna be Tizen and the legacy Tizen versions that don't support it are marked as legacy. Shocking right?
Shared / UI
- Fixed API authentication header β Replaced
X-Emby-Authorizationwith standardAuthorizationheader to prevent 400 errors on newer Jellyfin servers - Per-user cache isolation β Cache now includes the user ID, ensuring per-user data integrity. Switching users redirects back to Browse instead of showing stale data
- AccountModal crash fix β Added early return to prevent rendering when the modal is closed, fixing a potential crash
- Improved image handling and ratings performance β Optimized MediaCard image loading and ratings fetching in the API services for smoother browsing
- Platform detection improvements β Added
cross-envdependency and updated platform detection logic for more reliable webOS and Tizen identification - Fixed device identification β Client now correctly identifies as Samsung Smart TV on Tizen and LG Smart TV on webOS to the Jellyfin server
- Lint cleanup β Fixed lint errors across multiple components
- User avatar opacity β Added setting to adjust the opacity of the user avatar in the navbar
- Home row backdrop toggle β Added setting to disable background art transitions when browsing rows, freeing GPU/memory resources on lower-end devices
webOS
- Full webOS 3 support β Added
core-jspolyfills andlocalStoragefallback for storage, bringing full compatibility to webOS 3 devices - Playback health monitoring fixes β Fixed video unpausing/playing by properly considering paused state in health monitoring; added
lastSeekTimetracking to prevent false stall detection - Simplified codec hinting for Starfish β Refactored video source handling to fix playback issues with certain media formats
- Improved backdrop handling β Reduced resource usage and improved GPU layer promotion for backdrop blur on Browse and other views
Tizen
- Backdrop blur compatibility β Added backdrop blur effect with simplified CSS transformations for Tizen global backdrop support
- XHR mock for
file://protocol β Updated XMLHttpRequest mock to properly intercept non-http(s) requests, improving Tizen 2.4 compatibility for locale/resource loading
Legacy Platform Support (Tizen 2.4 / webOS 2)
- Legacy WebKit CSS and JS gating β Added gated CSS fallbacks and JavaScript compatibility shims across multiple views and components for old WebKit engines
- Updated browserslist targets β Extended browser compatibility targets to cover Tizen 2.4 and webOS 2 legacy browsers
- Enact legacy patching β Improved the
patch-enact-legacyscript for better build compatibility with legacy platforms - Polyfill updates β Enhanced polyfill coverage for legacy browsers missing modern DOM and JS APIs
Contributors
v2.1.0
Moonfin v2.1.0 Release Notes 
Important
With this release in order to connect to Seerr/Jellyseerr you will need to use the new Moonfin server plugin
Highlights
- Unified mono-repo β Tizen and webOS now share a single codebase with shared UI components, services, and views. Platform-specific code lives in dedicated packages. (Maintaining two codebases with 95% of the same code was annoying)
- Tizen 2.4 support β Full compatibility with Samsung TVs running Tizen 2.4 (WebKit r152340), including AVPlay native player integration and legacy browser polyfills.
- Overhauled video playback β Three-tier playback fallback chain, corrected DirectPlay profiles from LG's AV format docs, native HLS, and Dolby Vision detection.
- Redesigned UI β New Details page, Library views, Login screen, Browse featured bar, and Account modal across both platforms.
- Music support β Full music library with album art, track lists, audio playlist navigation, and artist/album/song search.
Tizen
New Features
- AVPlay native player β Refactored the Player to use Samsung's AVPlay API instead of the HTML5 video element. The Player container background is transparent to allow the AVPlay platform video layer to show through.
- Tizen 2.4 / legacy TV support β Added
--legacybuild flag, polyfills (globalThis,NodeList.forEach,whatwg-fetch), URL parsing utility for browsers without theURLconstructor, Enact compatibility patches (CSS custom-properties, Button border-radius, ProgressBar inline styles, Slider knob, Scrollbar DOM fallback), and XHR mocking for ilib locale loading onfile://protocol. - Smart Hub Preview β Wired up the background service for Smart Hub Preview on Tizen 4+; automatically skipped on legacy targets. NOT available on Tizen 2.4 and 3
- Music library β Album art, track lists, audio playback with dedicated controls, playlist navigation (next/previous track), artist/album/song search results.
- Details page redesign β Complete overhaul of the Details page with the new Moonfin UI, updated back button management.
- Account modal β Moved Account out of Settings into a new modal accessible from the user's avatar.
- Chapter extraction β Added chapter data retrieval and display, fixed audio/subtitle track selection from the Details screen.
- Exit dialog β Application exit confirmation dialog.
- Playlist management β Item selection, reordering, and playback from playlists in the Details view.
- Folder view β Breadcrumb navigation in Libraries.
- Auto-login β Automatic login with last server tracking.
Bug Fixes
- Fixed subtitle fallback to extracted subtitles when native embedded subtitle detection found none.
- Fixed next episode trigger logic and updated button labels.
- Fixed back key handling to exit app from home screen.
- Fixed enact page styles to use fixed positioning and full viewport coverage.
- Added seekStep setting to default settings.
- Fixed Media Segments API integration.
- Fixed
globalThispolyfill β Tizen 2.4 black screen on boot caused by@enact/core/platformreferencingglobalThiswithout a typeof guard. Three-layer fix:polyfills.js, HTML<script>injection, andnode_modulespatch. - Samsung certificate and profile verification added to the build script before packaging .wgt.
Build & Tooling
- Tizen build pipeline adapted for mono-repo:
enact packruns frompackages/app/withBROWSERSLIST_CONFIGtargetingchrome >= 38, safari >= 9. patch-enact-legacy.jspost-install script patches@enact/coreand related modules for legacy compatibility..browserslistrcfor Tizen targets Chromium 38 (Tizen 2.4) and Safari 9.- Build scripts output to repository root.
- GitHub Actions workflow for lint.
webOS
New Features
- Dolby Vision detection and native HLS playback β Runtime Dolby Vision detection with native HLS via Starfish. HLS transcoding for webOS 5+ uses fMP4 segments to preserve DV metadata. DV codec hints added to
<source type="...">to activate the Starfish DV decoder for direct play. - Overhauled video playback pipeline β Replaced per-mount video elements with a single shared instance (prevents webOS 4 from exhausting hardware decoders). Three-tier fallback: DirectPlay β native HEVC via Starfish β hls.js with H.264+AAC via MSE.
- Corrected DirectPlay profiles from LG docs β Fixed 7 profiles: VC-1 removed from TS, MP2 audio added to MKV/TS/AVI, VOB profile created, MPG/MPEG profile filled, AV1 level made resolution-responsive, HEVC added to M2TS, ASF/WMV codecs filled.
- Music library β Album art, track lists, audio playback with dedicated controls, playlist navigation (next/previous track), artist/album/song search results.
- Details page redesign β Complete overhaul with new Moonfin layout.
- Account modal β Moved Account to a new modal from the user's avatar.
- Subtitle customization β Size, position, and offset settings with a live subtitle settings overlay.
- Screensaver β Inactivity-based screensaver with configurable settings.
- Photo and comic viewer β Dedicated viewer components integrated with the Library.
- Moonfin plugin integration β Moonfin plugin support in Jellyseerr with updated Seerr auth flow and v2 envelope with v1 fallback.
- MDBList ratings β Ratings display using the Moonfin server plugin, updated icons.
- Sidebar β New navigation sidebar.
- Playlists library β Dedicated playlist library view.
- Auto-login β Automatic login with last server tracking.
- Playlist management β Item selection, reordering, and playback from playlists.
- Folder view β Breadcrumb navigation in Libraries.
- Exit dialog β Application exit confirmation dialog.
- Force Direct Play setting β Bypass transcoding decision logic.
- Hide libraries setting β Hide specific libraries from the home screen.
Bug Fixes
- Fixed audio stream switching by preserving playback position and adding native audio track support.
- Fixed playback with resume support, next episode auto-play, and improved seeking.
- Fixed DirectStream handling to ensure both audio and video are natively supported, preserving HDR during audio transcoding.
- Fixed resolution detection logic in
getResolutionName. - Fixed max bitrate handling β derived from device capabilities instead of hardcoded.
- Fixed platform back navigation at root level so the app closes and reopens correctly.
- Fixed audio stream switching to maintain transcoding state and reset fallback flag.
- Refined DTS support checks and audio stream handling.
- Fixed playback progress reporting with event tracking and state management.
- Fixed video element loading issues with proper cleanup and source reloading.
- Increased decoder release time from 2000ms to 3000ms for better resource management.
- HDR10+ detection aligned with HDR10 capabilities (webOS does not support HDR10+).
- E-AC3 support enabled for all webOS versions (DD+ compatibility on webOS 4+).
- HDR handling updated with Dolby Vision fallbacks.
- HLS transcoding profiles prioritize HEVC for HDR content with H.264 fallback.
- Video element cleanup resets HDR display mode by loading a minimal SDR video.
- webOS version detection converts internal versions to marketing names.
- DTS support detection uses correct device config to derive edidType for model-specific capabilities.
- Added timeout for non-HLS streams with fallback to transcoding.
- Play/pause button click fixed in webOS Player (the
ifblock was never reached). - Correct app reopen handling.
- Player navigation buttons now reset the 5-second auto-hide timer.
- Audio playback key handling for webOS remote.
Build & Tooling
- Build script optimized β removed unused locales and font weights, reducing file size from 9.3 MB to 6 MB uncompressed.
- Build script adapted for mono-repo:
enact packfrompackages/app/, copies dist locally before platform-specific post-processing. - GitHub Actions workflow for build and lint.
@enact/cliand@webosose/ares-cliadded as devDependencies.build.jsscript created to replace shell-based build.- webOS manifest auto-update on build.
Shared (Both Platforms)
New Features
- Genres and Library UI overhaul β Refactored Genres, Favorites, and Library views with new layouts and styling.
- Login UI redesign β Updated to match other Moonfin clients.
- Featured media bar β Updated layout for the overview box and logo.
- Jellyseerr transport unification β Rewrote Jellyseerr context and API service for shared use.
- Seerr integration normalization β Normalized media item handling and updated image URLs.
- Version checker β Fetches platform-specific releases.
- Dynamic version display β Settings shows app version and platform info.
- Spotlight navigation β Refactored focus handling in NavBar, Sidebar, and ExitDialog.
- Consistent 24/12-hour format β Player and Details page respect the setting; optional clock in navbar.
- Chapter API β
fetchItemChaptersfunction for retrieving chapter data. - Settings reorganization β Cleaner grouping and layout.
- Watched and favorite badges β Visual badges on media items indicating watched status and favorites.
- Multiple video version selector β Details page shows a version picker when media has multiple versions (e.g., 4K, 1080p, singalong), with resolution labels and automatic audio/subtitle defaults per version.
- Audio and subtitle pre-selection β Audio and subtitle tracks can be selected from the Details page before starting playback; defa...
v2.0.0
Welcome to Moonfin 2.0.0 - The Complete Rewrite 
First off, thank you for your patience! I know it's been almost a month since 1.2.0, and I apologize for the wait. But I promise it was worth it.
Why 2.0.0?
This isn't just an update, it's a complete rewrite from the ground up.
The Old Way (1.0.0)
The original Moonfin was built with vanilla HTML, CSS, and JavaScript. While functional, this approach had limitations:
- Manual DOM manipulation for every UI update
- Custom-built navigation system that didn't always play nice with the remote
- Styling inconsistencies across different Tizen versions
- Each new feature required significant boilerplate code
- No component reusability which caused lots of copy-paste
- One-size-fits-all playback that didn't take advantage of your TV's capabilities
The New Way (2.0.0)
We've rebuilt everything using Enact, a React-based framework specifically designed for smart TVs. Here's what that means:
For Users:
- Smoother Performance - React's virtual DOM means efficient updates without the jank
- Better Remote Navigation - Enact's Spotlight system provides proper D-pad focus management out of the box. No more lost focus or weird navigation jumps
- Consistent UI - Sandstone components are designed for TV viewing distances and look great on your Samsung TV
- Faster Load Times - Optimized bundling, code splitting, and lazy loading
- Reliable State Management - The app remembers where you were and what you were doing
For Development:
- Component-Based Architecture - Reusable UI pieces mean fewer bugs and faster feature development
- Modern Tooling - Hot reloading, better debugging, proper build pipeline
- Battle-Tested Framework - We're building on top of code designed for exactly this use case
- Cleaner Codebase - From scattered scripts to organized, maintainable code
- Faster Iteration - New features that would have taken days now take hours
The bottom line: this foundation lets us ship updates faster and with more confidence. The hard work is doneβnow we can focus on features.
What's New
Smart Playback Engine
One of the biggest under-the-hood improvements. I completely rethought how Moonfin handles video playback:
- Per-Tizen-Version Codec Profiles - Your TV now reports exactly what it can play natively. Whether you're on Tizen 4, 5, 6, or newer, Moonfin tells Jellyfin precisely which codecs, resolutions, and audio formats your specific TV supports
- Samsung AVPlay Media Pipeline - We now use Samsung's native AVPlay API instead of relying solely on HTML5 video. This means hardware-accelerated playback, proper HDR support, and smoother performance
- VP9 & AV1 Container Support - Updated video codec container support for modern formats
- Smart Audio Stream Selection - Auto-selects the best compatible audio track during playback, with support for native track changes and fallback reloading
- HDR-to-SDR Transition Handling - Proper video cleanup and transition logic when switching between HDR and SDR content
- Ultrawide Resolution Tagging - Improved resolution logic to properly tag ultrawide videos as 4K
- Less Server Transcoding - By accurately reporting your TV's capabilities, Jellyfin can direct play more content instead of wasting CPU cycles transcoding files your TV could already handle
The result? More direct play, less buffering, better quality, and a happier Jellyfin server.
Multi-Server Support
- Connect to multiple Jellyfin servers simultaneously
- Unified Library Mode - Browse content from all your servers in a single view
- Seamless cross-server playback
- User Switching & Quick Connect - Improved authentication flow with support for switching between users and Quick Connect
Jellyseerr Integration (Out of Beta! π)
- Full Jellyseerr support with Moonfin plugin integration
- Official release of the Moonfin Server Plugin β A Jellyfin server plugin that integrates with Moonfin for Tizen for seamless Jellyseerr integration and cross-client settings sync.
- Huge overhaul to Jellyseerr with proper media type and availability badges
- Browse trending and popular content
- Request movies and TV shows directly from your TV
- View and manage your requests with a dedicated "My Requests" row
- Jellyseerr person pages β browse media by actor/director
Improved Player
- Trickplay preview support (thumbnail scrubbing, if enabled on your server)
- Custom Subtitle Rendering - JSON-based subtitle fetching with overlay rendering for Tizen
- Subtitle Customization - Size, position, and additional styling options for subtitles
- Seek Step Customization - Configurable seek intervals in settings
- Media Key Support - Play, pause, fast-forward, rewind, and stop via the Samsung remote media keys
- Enhanced playback controls and health monitoring
Live TV & Recordings
- Browse and watch Live TV channels (if configured on your server)
- Access your recordings
Samsung Smart Hub Preview
- Smart Hub Integration - Background service with deep link handling for Samsung Smart Hub preview cards, so you can jump straight into your content
UI & Customization
- Expandable Libraries in NavBar - Browse libraries directly from the navigation bar with a settings toggle for the toolbar
- Featured Media Carousel - Toggleable carousel with scroll-on-focus behavior, excluding collections
- UI Customization Options - Blur, opacity, and color settings for navbar and panels
- Consistent NavBar - Navigation bar present on all views
- Updated Button Styling - Improved focus colors and placement throughout the app
- People in Search - Added people results to the search view
Performance
- Browse Caching - Row data, libraries, and featured items are cached for significantly faster loading
- Lazy Loading - Views are lazily loaded with a loading spinner component
- Image Preloading - Smoother carousel transitions with debounced backdrop loading
- Tizen Lifecycle Management - Proper cleanup functions and cache handling in Browse and Settings
Other Improvements
- Vastly updated Genre browsing
- Update notifications (you're seeing this because of it!)
- Better error handling throughout
Bug Fixes
- Fixed subtitle issues with improved server-side extraction for text-based subtitles
- Fixed audio stream switching logic with native track change support and fallback reloading
- Fixed Jellyseerr badges in Browse, Discover, and Person components
- Fixed Continue Watching and Next Up not displaying media info
- Fixed scrolling in Libraries and Genres views
- Fixed library fetching by adding user dependency and excluding boxsets
- Fixed modal focus and navigation in the Player view
- Fixed back button functionality in Player and Settings views
- Fixed resume and next up item handling to avoid duplicates
- Fixed backdrop image styling on Tizen 4 with fallback blur filter support
- Fixed featured media bar stopping scroll when not focused
- Cleaned up obsolete project files, unused privileges, and dependencies from Tizen config
Upgrading
Simply install this version over 1.2.0. Your server connections and settings will be preserved.
Installation
- Download the WGT file below
- Enable Developer Mode on your Samsung TV
- Use Tizen Studio CLI to install:
tizen install -n Moonfin_2.0.0.wgt -s <your-tv-ip>:26101
Contributors
A big thank you to everyone who contributed to this release!
Contribution Highlights
- @MoazSalem β Subtitle fixes and extended subtitle customization options.
- @morpheus133β Smart Hub Integration
Looking Forward
With this solid foundation in place, I can now iterate much faster. Expect more frequent updates with new features and improvements. Thank you for being part of the Moonfin community!
Full changelog: fb0fbd2...ac9b027
v1.2.0
Moonfin for Tizen v1.2.0
What's New
Playback & Codec Support
- Full DirectPlay support for HEVC/H.265 content - Watch high-quality 4K/10-bit content with native playback and proper progress tracking
- AC3/HE-AAC and Dolby Vision support - Enhanced audio/video codec compatibility with detailed stream analysis
- Integrated jellyfin-web device profile builder - Intelligent codec detection for better DirectPlay decisions
- New PlaybackManager and AVPlay plugin - Unified playback handling with native Tizen performance
- Native HLS player for transcoding - Improved compatibility for transcoded streams
- Fixed MKV and HEVC container handling - Proper playback of HEVC content in MKV containers
- Persistent transcoding mode - Your playback preferences are remembered between sessions
- Max bitrate setting - Fine-tune streaming quality to your network conditions
Server-Side Logging
- New server logging functionality - Send debug logs directly to your Jellyfin server
- Server logging settings in the app for easy configuration
- Better diagnostics for troubleshooting playback issues
UI/UX Enhancements
- Dynamic app version display in About section
- Replaced emoji icons with PNG images for better Tizen compatibility
- Improved focus restoration - Modal dialogs remember which button opened them
- Updated featured banner visibility and media bar positioning to match other Jellyfin clients
Tizen 4 Compatibility
- ES5 transpilation via Babel - Full support for older Tizen 4.0+ devices
- Enhanced polyfills - Improved URLSearchParams and storage compatibility for legacy devices
Bug Fixes
- Fixed libraries incorrectly showing collection items
- Fixed live TV compatibility on older Tizen devices
- Enhanced error handling and logging throughout video player
- Improved codec profile conditions by removing redundant checks
Technical Improvements
- Added screen resolution detection for adaptive quality
- Cross-platform build process (Windows/Linux/Mac) with archiver dependency
- Updated dependencies including HLS.js
Installation
Download the .wgt file from the releases page and install it on your Samsung Tizen TV using the Tizen Studio or the web-based installation method.
Upgrading from 1.1.0
Simply install the new version over the existing installation. Your settings and server connections will be preserved.
v1.1.0
What's New In v1.1.0
What's Changed (Out of Alpha status now that Jellyseerr works!)
Bug Fixes
Storage API Issues
- Fixed
TypeError: storage.getSession is not a functionerrors by replacing non-existent storage methods with nativesessionStorageAPI
Jellyseerr Integration
- Fixed Jellyseerr API authentication on Tizen by implementing proper API key support
Navigation & UI
- Fixed details page missing navbar - now supports UP key to navigate to navbar
- Added scroll position preservation when navigating to and from details/discovery pages
- Restored position on page return with proper sessionStorage management
Login Page
- Added complete ENTER/OK key support to all buttons for Tizen remote control compatibility
- Connect, Back to Server List, Add New Server, Manual Login, Delete Server, and more
New Features
Configuration & Build
- Updated app configuration for optimal Tizen TV compatibility
- Package ID: Changed to
MoonfinApp(10 characters - Tizen schema requirement)
- Package ID: Changed to
- Enhanced build process to create properly named versioned package:
Moonfin-Tizen-1.1.0.wgt - Includes proper Samsung developer certificates for TV installation
Installation
Download Moonfin-Tizen-1.1.0.wgt and install on your Samsung Tizen TV using Jellyfin 2 Samsung or Tizen Studio.
v1.0.0
π Moonfin for Tizen v1.0.0 - Initial Release
The first public release of Moonfin for Tizen!
Moonfin for Tizen is an enhanced fork of the official Jellyfin Tizen client, bringing a premium viewing experience to your Samsung Smart TV.
β¨ Highlights
π Cross-Server Content Playback
- Unified library support with seamless playback from multiple Jellyfin servers
- Improved server selection and switching logic
π¬ Jellyseerr Integration (Alpha status - API key needed)
The first Tizen client with native Jellyseerr support!
- Browse trending, popular, and recommended content
- Filter by genres, studios, networks, and keywords
- Request movies and TV shows in HD or 4K directly from your TV
- NSFW content filtering using Jellyseerr/TMDB metadata
- View pending, approved, and available requests
π§ Enhanced Navigation
- Quick access home and search buttons
- Shuffle button for random movie/TV show discovery
- Genres menu for browsing all media by genre
- Dynamic library buttons based on your Jellyfin libraries
π¬ Featured Media Bar
- Rotating showcase of random movies and TV shows on your home screen
- Profile-aware refresh for child-safe content switching
- Smooth crossfade transitions with matching backdrop images
π΅ Playback & Media Control
- Theme music playback for TV shows and movies
- Pre-playback track selection for audio and subtitles
- Next episode countdown timer
- Automatic screensaver dimming to prevent burn-in
π Improved Details Screen
- Reorganized metadata with clear sections
- Taglines displayed above descriptions
- Circular cast photos for a cleaner look
π¨ UI Polish
- Accent color customization
- Adjustable backdrop blur
- Better button states and contrast
- Responsive transitions and animations
π OTA Update Notifications
- Automatic version checking from GitHub releases
- In-app update notifications when new versions are available
π¦ Installation
- Download the WGT file below
- Enable Developer Mode on your Samsung TV
- Connect using Tizen Studio Device Manager or sdb:
sdb connect YOUR_TV_IP