Changes
What is New
Very Large Update, new Litefin plugin (Add it to your server for some of the new features to work), adding backup and restore, much faster loading times (relies on the plugin for some of the optimizations, but it's not manditory) new details page layouts, new osd layouts, option for per settings user, ass-wasm renderer is now fast on tizen, many more customizations and bug fixes, i actually forgot half of them 🙃, Give it a try, you can now also share your settings with the new backup and restore through the plugin.
New Features:
- dynamic thumbnails from plugin instead of multiple requests
- faster request for homescreen carousel via plugin
- a single request for homepage library rows, faster and optimized through litefin plugin
- new dark color that can be used as background, used for episodes cards, rich meta table, and sidebar
- add the option to wake server on server scan screen as well
- add the ability to lock the players controls
- add a new option to colored button to send a manual WoL to the server
- add an option to Wake-on-LAN on request timeout
- add a setting to allow litefin to send a WoL signal to the server to wake it on startup
- allow changing intro skippers mode/data source
- allow changing osd background intensity
- merge Intro Skipper and native media segments results instead of just using them as fallback, for better detection to double intros
- litefin skip intro plugin no longer depends on Intro Skipper plugin, but will use it if available, with fallback to native media segments skipping
- rewrite smarthub integration for tizen to use the merged next up and continue to watch rows from home logic instead
- add collections row to details page when item is part of collection
- make the option to merge upnext and continue to watch row much faster by making the merge happen in server through litefin plugin
- improved keyboard support
- add subtitle renderer to playback info menu inside the player
- update the list after each playback for better accuracy
- allow user to choose playback mode on error
- add more options to playback menu in player
- darker white for the entire OSD in HDR
- add new layout episode list to details page instead of the grid
- add option to reset user settings to global settings
- add the ability to switch apps settings to be per user instead of global
- add new lightweight ass subtitle renderer ass.js
- option to hide ghost mode icon from details page
- allow changing sidebar items alignment
- more options for litefin logo in sidebar
- always collapsed mode for sidebar
- add sidebar background color options
- new details page layout Cinematic Backdrop (Left Aligned)
- new details page layout Cinematic Backdrop (Centered)
- add the option to disable focus restoration for weaker devices
- add audio normalization and vbr encoding settings
- add option to add items to playlists and collections
- add new right aligned poster layout for details page
- default server port to 8096 and protocol to http, user only needs to write the ip for local servers, full url + port is still respected
- option to combine player navigation controls (quick seek, next/prev chapter, next/prev item) into one button that has different action depending on how many times you press
- allow disabling favorite, info and back button, and disable them by default
- new centered osd buttons layout
- loop animation of overflown text titles for media cards
- add the ability to change osd buttons location, below or above seekbar
- improved backup and restore settings
- add the ability to select which font from the fallback fonts to be used as fallback
- improve up next dialog space and add 4th style
- add the ability to select jellyfin fallback fonts as app or subtitle font (easiest way for users to add there fonts to litefin)
- allow changing the up next dialog trigger point
- support backing up and restoring settings via the new litefin plugin
- prefer external subtitles over internal ones, even if language is unknown
- use media fragment for resume on webos and html player with fallback to older implementation for better chances and faster resume
- next up dialog customization
Bug fixes:
- osd: fix left and right seek shortcut when osd is hidden
- library: more optimizations
- library: cardrenderer.createcardhtml() output cache and eliminate offset top reads from hot path
- library: gated the focus:changed event handler so it only schedules one requestAnimationFrame per burst of rapid D-pad presses
- details: add mark as watched and quality badges to episodes list
- ass-wasm: fix some subtitles being tiny
- details: don't fill the logs with warnings when the item is not part of a collection
- assjs: fix crashing
- osd: after next episode dialog hides controls are now part of osd as well
- library: fix library lazy loader not loading rows correctly + smoother row hidding and loading
- ultra-legacy: restore services to ultra-legacy, add a new package without it
- library: always fill the last row no matter what the limit is
- library: fix focus restoration with lazy loading
- person-details: fix focus restoration jumping
- homescreen: fix focus restoration with new plugin endpoints
- person-details: use litefin plugin for lighter faster optimized requests
- webos: fix seek not working on some files
- collections: fix collections only showing movies and tv
- player: fix player destroy duplicate function causing issues
- details: next up will now show up in the exact same style as the episodes list/grid, also always trigger a scroll
- player: report pause as well to not terminate streams
- library: fix loading items with latest optimizations when scrolling with mouse wheel or magic remote
- next-dialog: don't show osd after hiding the next episode dialog
- legacy: fix secondary text color being black
- build: fix legacy build not starting
- library: trying to fix laggy animations
- sidebar: fix sidebar indicator with mouse click
- build: fix normal and below builds not working
- upnext: hide upnext dialog after 5 seconds inside the osd just like skip intro
- homepage: await the carousel again because it looks bad if not loaded
- library: major performance boost with dynamic dom handling of library items
- library-lazy-loader: improve performance
- smarthub: make every item it's own section to force correct order
- performance: remove some unnecessary css
- WoL: fix service crash
- details: hide season badge from details page by default
- person-page: add blur hash and fix backdrop not loading
- media-grid: some optimizations
- libass-wasm: add a 60ms delay for tizen to fix the early showing up
- media-grid: fix cleaning up and destroy
- smarthub: remove the empty arry fix it causes the row to not reload at all
- player: fix tooltip having no space above seek thumb
- player: fix seekbar being white with hdr darker white option
- player: selecting subtitle or audio track would pause/resume playback
- skeletons: remove shimmer, depend only on blur hash
- lazy-loader: dynamic window size
- lazy-loader: fix rows lazy loader behavior
- homepage: reduce homepage rows items to 12 instead of 20, and add the option to change it
- details: on focus restoration, await rows to fully load to avoid the focus jump
- cache: fully clear cache on a refresh metadata request
- WoL: allow typing the raw hex without the colon
- player: fix player not reporting playback ending when it falls back to async fetch
- lowercase url parameter
- player: fix playback error select playback mode issues
- homepage: faster homepage startup + test fix for cache not resetting after playback
- smarthub: fix order after new rewrite
- person-details: improve initial loading speed
- details: correctly await for logo in the 2 new layouts
- details: load rows in correct order for less pop up effect
- cache: delete cache after watching a video to correctly update data
- mdb-list: don't fetch awards if awards are hidden
- homepage: clean cache on server switch
- homescreen: reduce homescreen immersive mode carousel lag
- details: improve initial loading times by correctly prioritizing what to actually load
- details: remove poster loading time out
- details: share parent series data across season/episode
- app: remove any unused fields requested from the api across the app
- blur-hash: process pending blur hash decodes at a throttled rate
- homepage: longer homepage cache life, and delete cache on metadata refresh
- api-client: http caching strategy
- homepage: fix initial focus after not awaiting carousel
- homescreen: add loading skeleton to home screen carousel
- homepage: move _preWarmImagesForRow to after rendering
- media-cards: fix redundant calls to api.getImageUrl
- homepage: library state caching and hero carousel no longer blocks rows
- settings: add cache invalidation for homepage when changing some settings
- webos: fix subtitles desynced when seeking back
- tizen: improve libass-wasm performance on tizen
- ui: adjust new episode list size and osd time for better look
- library: fix scroll animation stutter
- smarthub: fix reversed order
- webos: test fix for vertical scrolling issue
- subtitles: remove/gate any change to ass subtitles behind a toggle
- ass.js: add polyfills for better support to older devices
- ass.js: some optimizations
- home-carousel: optimizations and lazy loading
- libjass: fix subtitles are always using fallback font
- app: test fix for app sometimes starting with no storage loaded
- player: use full Jellyfin auth header for playback
- settings: fix user switching with settings per user not changing
- web: show ui back button in player by default for web
- music: fix exit via ui back button
- music: lyrics scrolling, move focus to lyrics menu as soon as it's open, and allow closing it with left click
- web: allow exiting chapters and queues modals with a left d-pad click or a mouse click on the empty area
- ass.js: fix styles applying for ass.js
- ass.js: fix subtitles not pausing/resuming
- ass.js: fix crashing, unifiy timing method for easier bug fixing
- ass.js: fix font override option
- tizen: improve libass-wasm performance by getting the current playback time from the platform's native time source
- icons: change audio track icon for better clarity
- sidebar: fix sidebar color on hover in collapsed mode
- details: change mark as watch back to mark icon for clarity
- login: don't force ports for full urls
- library: separate library cache disabling into a separate toggle
- library: fix focus restoration restoring inside other libraries
- homepage: better handling for dynamic thumbs of collections and playlists
- library: fix small ui inconsistencies
- playlists: fix playlist playback
- subtitles: fix external subtitles failing to load because it's using local filesystem path
- player: keep playback data when app is in background hidden state
- backup: fix backups time not following 24h format
- login: fix modern layout background with ambient glow theme, auto connect on selecting detected server
- app: exiting the movie you're watching does not interrupt the remuxing/transcoding process
- media-cards: fix resolution badge incorrect resolutions on some items
- tizen: fix hevc hdr movies with truehd transcoding the video
- tizen: remove the forced aac on tizen < 6 but remove eac3 from auto mode, produces no audio
- subtitles: improve libass-wasm stability
- webos: another test fix for seeking on older webos devices
- html-backend: better resume handling with a fallback fix
- media-cards: better detection of dolby vision content
- settings: hide force expand setting if layout is not expanding posters
- media-cards: also detect dolby vision content
- webos: another attempt to fix resume on older webos devices
- subtitles: show subtitle fonts and call them fallback if not overridden
- home: remove my media order lock option as it is no longer needed
- scroll: optimizations for faster scrolling
- scroll: scroll-deferred lazy loading optimization, only load next items after the scrolling animation is complete to look smooth
- homescreen: fix carousel indicator animation not resetting after retuning up on tvs
- settings: better reset settings handling
- app: fix initial loading indicator colors
- webos: fix resuming media on older devices
- player: fix remember subtitles for season ignoring undefined language external files
- player: fix hiding next up dialog pausing the player
- tizen: test fix for next episode hide button
📦 Which version to use?
Litefin provides 4 distinct build variants per platform (Tizen & webOS) to ensure compatibility across all hardware generations.
| Build Variant | Hardware Target | Platform Version |
|---|---|---|
| Modern | Modern high-end sets (2021+) | Tizen 6.5+ / webOS 22+ |
| Normal | Most smart TVs (2019+) | Tizen 5.0+ / webOS 6.0+ |
| Legacy | Mid-lifecycle sets (2017/2018) | Tizen 4.0+ / webOS 4.0+ |
| Ultra Legacy | Vintage hardware (Pre-2017) | From Tizen 3.0 and below / webOS < 4.0 |
Note: If you are unsure, try the Normal build first. If the app feels sluggish or fails to load, move down to Legacy.
New Contributors
- @gatolocoses made their first contribution in #270
- @Braresa made their first contribution in #274
Full Changelog: v1.3.0...v1.5.0