12.0
π Jellyfin Web 12.0
We are pleased to announce the latest stable release of Jellyfin, version 12.0! This major release brings many new features, improvements, and bugfixes to improve your Jellyfin experience. As always, please ensure you take a full backup before upgrading!
Discuss this release further on our forums.
Changelog (264)
π Security
- Fix xss in checkbox element [PR #7942], by @thornbill
ποΈ Enhancements
- Prevent backdrop from moving when menus are opened [PR #8245], by @Shadowghost
- Show warning when trying to Identify a metadata-locked item [PR #8236], by @gitedmond
- default overlayMoreButton for mobile cards [PR #8328], by @BotBlake
- Add default tab options for the Books library [PR #8383], by @theguymadmax
- Add Alpha Picker to Genres view and implement infinite scroll [PR #8167], by @Shadowghost
- Open external password reset link on different provider [PR #8338], by @viown
- Update home-assistant.svg [PR #8093], by @itsRealMarshall
- Added HlsAudioSeekStrategy option into Transcode settings [PR #7473], by @PeachesMLG
- Allow common link-protocol schemes in the login disclaimer [PR #7992], by @dfederm
- Improve Upcoming view [PR #8086], by @Shadowghost
- Fix library layout issues on mobile [PR #8331], by @thornbill
- implement fade animations on BookOsd to match video player [PR #8302], by @dkanada
- Merge cards for crew with multiple roles [PR #8209], by @theguymadmax
- Fix shuffle and repeat buttons in Remote Control [PR #8092], by @wongcallum
- unify fullscreen support across all book players [PR #8242], by @dkanada
- Fixed infinite load when editing/adding user with invalid username [PR #8098], by @alex-dicko
- use swipe gestures for PDF navigation [PR #8279], by @dkanada
- Replace libpgs with libbitsub and adds support for vobsub rendering [PR #7777], by @altqx
- improve font selection in epub files [PR #8047], by @dkanada
- migrate comics and PDFs to new BookOsd component [PR #8004], by @dkanada
- Expose used SeriesName for Books in Metadata Editor [PR #8164], by @jordanmichaelrushing
- Add version restore warning [PR #8232], by @theguymadmax
- Make app bar padding consistent with content [PR #8195], by @thornbill
- Swap position of item count and play all controls in library toolbar [PR #8196], by @thornbill
- Use loading indicator on button when scan is in progress [PR #8142], by @thornbill
- Improve styling of person cards in purple haze theme [PR #8140], by @thornbill
- Add chapter name inside osd slider bubble [PR #7798], by @will-blk
- Disable image selection buttons when clicked to prevent OOB [PR #8033], by @Mumbolio85
- Allow sorting books by index number [PR #7482], by @AlkyoneAoide
- Allow folders to be marked as played [PR #8063], by @theguymadmax
- Add TV Shows creators to item details [PR #8042], by @Rant423
- Disable play all and shuffle buttons instead of hiding [PR #8056], by @thornbill
- Hide studios filter when empty [PR #8058], by @theguymadmax
- Remove pagination controls if user disabled [PR #8059], by @thornbill
- Use plugin provided icon if available [PR #8053], by @Shadowghost
- Always round up for card image sizes [PR #8022], by @enter-a-random-username
- Add audiobooks to the authors tab [PR #8034], by @theguymadmax
- Respect DisplayMissingEpisodes setting in item details pages [PR #7810], by @lmaotrigine
- Merge library toolbar into main AppBar [PR #8030], by @thornbill
- When deleting a single item, include the name of the item in the confirmation message [PR #7697], by @joshuaobrien
- migrate book OSD to react component [PR #7848], by @dkanada
- Add Play All and Shuffle buttons to series library [PR #7989], by @theguymadmax
- Support DOVI in mkv container on WebOS 25 and newer [PR #7328], by @ErebZx
- Implement studio search [PR #7970], by @Shadowghost
- Studios tab extension [PR #7940], by @Shadowghost
- Disable touch switcher on experimental and disable scroll buttons on touch devices [PR #7971], by @Shadowghost
- Fix alphapicker alignment on desktop [PR #7964], by @thornbill
- Add OriginalLanguage as option to PreferredAudioLanguage [PR #6022], by @Lampan-git
- Reload scroller on data receive [PR #7954], by @Shadowghost
- Reload item data on version change and use correct parts on playback [PR #7919], by @Shadowghost
- Add polish to library toolbar and menus design [PR #7927], by @thornbill
- Add Collections and playlist tab to all libraries [PR #7939], by @Shadowghost
- fix cardImage data-src set to "undefined" [PR #7929], by @edvwib
- Start a library scan when adding folders to a library [PR #7952], by @Shadowghost
- Fix user view nav overflow logic [PR #7943], by @thornbill
- Add warning to backup operation if scan is running [PR #7923], by @viown
- Fix behavior when applying filters and switching pages [PR #7820], by @Shadowghost
- Implemented sorting and filtering for Activity page [PR #7431], by @bjorntp
- add authors tab to book library [PR #7874], by @dkanada
- show progress indicator for books [PR #7921], by @dkanada
- Make library header sticky [PR #7836], by @thornbill
- Update Mixed Media library view for the modern layout [PR #7821], by @theguymadmax
- Fix keyboard controls working only on latin keyboard layouts [PR #7398], by @MBR-0001
- Display music video title correctly if it belongs to an album [PR #6819], by @hazemkrimi
- Fix duplicate locations [PR #7469], by @Collin-Swish
- Update Collections & Playlists library view for the modern layout [PR #7808], by @theguymadmax
- Update sort options, default tab, and landing screen options for music videos [PR #7805], by @theguymadmax
- Fix blurry card images on high-DPI displays [PR #7879], by @Maxr1998
- Handle Seasons in recently added [PR #7623], by @Shadowghost
- Fix clock icon alignment on scheduled tasks page [PR #7841], by @TarasSmal
- Add folders tab to experimental view in book libraries [PR #7822], by @dkanada
- SyncPlay menu update [PR #7643], by @thornbill
- Add device id to StorageListItem [PR #7756], by @thornbill
- Enable AV1 fMP4 stream copy on TV clients [PR #7802], by @nyanmisaka
- Compact the "playback info" overlay to add more infos [PR #7291], by @nyanmisaka
- Add a gap to stack elements to prevent numbers from other adjacent stack to collapse and appear as one [PR #7419], by @uxdesignerhector
- Add a folder view to the modern home videos library layout [PR #7741], by @theguymadmax
- Add default tab options for Home Videos and Photos library [PR #7557], by @theguymadmax
- Replace the buildin xbox limit it with a native shell option [PR #7670], by @JPVenson
- Move users edit page to tabs [PR #7497], by @viown
- Add display version util for 12.0 [PR #7677], by @thornbill
- Fix active library highlighting for items [PR #7644], by @thornbill
- Fix password input type for CertificatePassword [PR #7696], by @DatScreamer
- improve author and book support on itemDetails page [PR #7656], by @dkanada
- Add a Reset Filters button to bottom of filter dropdown [PR #7130], by @1hitsong
- Add error handling to rest of dashboard pages [PR #7223], by @viown
- Migrate networking page to React [PR #7502], by @viown
- Hide home loading indicator optimistically [PR #7678], by @thornbill
- Fix dashboard buttons overflow [PR #7648], by @thornbill
- Stop using native scrollTo for smooth scrolling [PR #7606], by @larsmunkholm
- fix book player fullscreen on mobile apps [PR #7399], by @dkanada
- loosen anamorphic restrictions for browser device profiles [PR #7520], by @meop
- Clarify Playlist and Collections delete prompt [PR #7534], by @dfederm
- Add video title to experimental layout [PR #7530], by @viown
- Add missing Rewind & FastForward PlayState commands handling [PR #7527], by @HamletDuFromage
- Use consistent padding on item details screen [PR #7279], by @thornbill
- Add support for custom links in the experimental layout [PR #7394], by @thornbill
- Add HEVC level 6.2 (186) device capability check [PR #6376], by @imtsuki
- Add css variable support for dark theme [PR #7277], by @thornbill
- Refactor dark theme to base theme [PR #7343], by @thornbill
π General Changes
- Multi version fixes for episodes [PR #7984], by @Shadowghost
- Fix network config saving and caching [PR #8405], by @Shadowghost
- Don't serve plugin versions from a stale package cache [PR #8427], by @Shadowghost
- Fix default styling when themes are not loaded [PR #8401], by @thornbill
- Fix too large video osd header padding [PR #8402], by @thornbill
- Fix polyfills for iOS 12 and 13 [PR #8397], by @thornbill
- Fix flex alignment for JMP [PR #8395], by @thornbill
- Invalidate packages when adding a repository [PR #8393], by @viown
- Enable horizontal mouse wheel scrolling in the modern layout [PR #8382], by @theguymadmax
- Fix connecting to wrong server when servers exist in config [PR #8376], by @thornbill
- Fix library button styling [PR #8374], by @thornbill
- Fix Live TV default landing tab [PR #8353], by @theguymadmax
- Fix styling of focused+checked checkboxes in tv layout [PR #8336], by @thornbill
- add security improvements to npmrc [PR #8329], by @dkanada
- Clear the query cache on server restart [PR #8327], by @thornbill
- Fix playbackstop listener leak on the movies page [PR #8282], by @sevenrats
- Fix native shell selectServer not used when signing out [PR #8314], by @nielsvanvelzen
- Reduce calls to getApiClients [PR #8214], by @thornbill
- Fix Now Playing page not following player switches after browser back [PR #8284], by @sevenrats
- Update nix flake lock [PR #8193], by @Chris4942
- fix hls offset and update libbitsub to v1.11.0 [PR #8308], by @altqx
- Fix two minor issues in the mobile layout [PR #8307], by @nyanmisaka
- Fix invalid livetv items request [PR #8299], by @thornbill
- Fix sorting in the modern layout [PR #8136], by @theguymadmax
- Refactor purple haze to use base theme [PR #8173], by @thornbill
- Use pointer type to toggle scroll buttons instead of only touch [PR #8257], by @Shadowghost
- Prevent screensaver while viewing photos or reading books [PR #8025], by @dfederm
- Disable Audio Normalization in iOS to fix pitch and speed issues [PR #8240], by @jordanmichaelrushing
- Fix episode image handling in recently added [PR #8181], by @Shadowghost
- Fix SyncPlay ping never being reported to the server [PR #8201], by @riseprometheus
- Enable iOS background play when screen is turned off [PR #8211], by @jordanmichaelrushing
- Add filters for audio and subtitle languages (modern layout only) [PR #8158], by @TheMelmacian
- Fix dark icons on card hover in light themes [PR #8188], by @thornbill
- Fix react query error by always returning a value [PR #8224], by @thornbill
- Use sdk version number utility functions [PR #8217], by @thornbill
- Fix missing unaired filter submission [PR #8166], by @Shadowghost
- Rollback tanstack to working version [PR #8215], by @thornbill
- Fix invalid request for all items on page load [PR #8213], by @thornbill
- Fix card footer padding [PR #8208], by @thornbill
- Fix forgot password route in modern layout [PR #8198], by @thornbill
- Refactor useMovieRecommendations hook [PR #8171], by @thornbill
- Fix scroll icon color for light themes [PR #8156], by @thornbill
- Decouple gamepadtokey repeat rate from framerate [PR #7996], by @brad1111
- Refactor appletv theme to use base theme [PR #8154], by @thornbill
- Filter movie suggestions by the current library [PR #8102], by @Jian-Zhang08
- Fix cast menu being empty when no targets available [PR #8135], by @MBR-0001
- Fix position of subtitle sync [PR #8153], by @dmitrylyzo
- Fix item details backdrop position on mobile [PR #8139], by @thornbill
- Fix mobile/dektop layout modes using legacy in apps [PR #8138], by @thornbill
- Rename experimental and stable apps [PR #8113], by @thornbill
- Add collections to item details page [PR #7972], by @XSAM
- Cleanup Api instance retrieval [PR #8110], by @thornbill
- Restore OSD header's background in experimental mode [PR #8081], by @shindouj
- Fix queued theme videos lose aspect-ratio [PR #7861], by @aw-wrede
- Rewrite
assign-inexpression [PR #7073], by @timreichen - Fix startup crash when ApiClient has no serverId yet [PR #8088], by @joshuaboniface
- Fix Duplicated
/socketConnections [PR #8011], by @anultravioletaurora - Fix wrong settings applied on view change [PR #8062], by @thornbill
- Add Screensaver Time to Experimental layout [PR #8052], by @dmitrylyzo
- Adjust the section header link limit [PR #8019], by @theguymadmax
- Fix errors on view change with pending requests [PR #8055], by @thornbill
- Make Played and Unplayed filters mutually exclusive for the Modern view [PR #8002], by @theguymadmax
- Prevent invalid paths from being added to the list of folder paths [PR #8048], by @theguymadmax
- Add query caching to indexeddb [PR #7679], by @thornbill
- Fix New Collection button permissions [PR #8037], by @theguymadmax
- Fix Add to collection permissions [PR #8036], by @theguymadmax
- Hold and drag on media no longer activates Multi-select [PR #7732], by @bjorntp
- Fix blurhash and faster animation settings in new layout [PR #8014], by @nyanmisaka
- Fix playback issues in the home videos and photos library videos tab [PR #7986], by @theguymadmax
- Refactor library pages [PR #7998], by @thornbill
- Fix Multiselect not working in collections [PR #7925], by @austinhardaway
- Add still watching prompt [PR #7979], by @thornbill
- Hide Group Versions for unsupported item types [PR #7999], by @theguymadmax
- Only show Play All button when items are present [PR #7988], by @theguymadmax
- Fix broken layout on table pages [PR #7990], by @thornbill
- Remove repository prefix for pages deployment on push workflow [PR #7978], by @nielsvanvelzen
- Use String.raw to avoid escaping backslashes in eslint config [PR #7866], by @Mayme123
- Fix slideshow interval not saving [PR #7983], by @theguymadmax
- Fix navigation with game controllers [PR #7975], by @MBR-0001
- Fix OSD animation event hiding header after leaving the video player [PR #7968], by @brad1111
- Fix image upload spinner on failure [PR #7949], by @darbyjack
- Migrate WebSockets to SDK Subscriptions [PR #7838], by @anultravioletaurora
- Fix backdrop in music queue [PR #7897], by @me25542
- Replace ElevationScroll with OffsetAppBar [PR #7965], by @thornbill
- Fix layout mode for library routing [PR #7951], by @theguymadmax
- Add collections tab for book libraries [PR #7946], by @dkanada
- Encode auth params when creating ApiClients [PR #7947], by @thornbill
- Add similarity provider configuration [PR #7663], by @Shadowghost
- Fix keyboard in old browsers [PR #7917], by @dmitrylyzo
- Use tanstack query for home screen sections [PR #7918], by @thornbill
- Fix homescreen settings for mixed libraries [PR #7916], by @theguymadmax
- Use tanstack query for user settings [PR #7890], by @thornbill
- Add translation for VideoRotationNotSupported [PR #7894], by @nyanmisaka
- Move bitrate detection to web [PR #7864], by @viown
- Fix case sensitivity in library folder checks [PR #7914], by @thornbill
- Fix genres not showing for collections and playlists [PR #7807], by @theguymadmax
- Use innerHTML instead of replaceChildren to empty div [PR #7907], by @mrxz
- Fix books not displaying in genre lists [PR #7911], by @theguymadmax
- Disable sonarjs/aws-restricted-ip-admin-access lint rule [PR #7847], by @terite
- filter music artists from person results [PR #7882], by @dkanada
- Bump web version to 12.0.0 [PR #7885], by @thornbill
- Fix drawer display version [PR #7884], by @thornbill
- Refactor user hooks to simplify usage [PR #7875], by @thornbill
- Add frame scrubbing controls [PR #7315], by @flying-sheep
- Fix backdrop size changing on mobile [PR #7849], by @thornbill
- Cleanup removed api members [PR #7839], by @thornbill
- Fix chromium browsers not cleaning up backdrops [PR #7738], by @thornbill
- add audiobooks back to book libraries [PR #7816], by @dkanada
- Add explicit dependency on axios [PR #7797], by @thornbill
- Refactor blueradiance theme to use base theme [PR #7790], by @thornbill
- Refactor wmc theme to use base theme [PR #7789], by @thornbill
- Fix theming for reactUtils component rendering [PR #7788], by @thornbill
- Fix react keys on item details metadata [PR #7785], by @thornbill
- Fix CF pages deployment directory [PR #7784], by @thornbill
- Add contributing guide and pr checklist [PR #7693], by @thornbill
- Update Music Videos views in experimental layout [PR #7567], by @theguymadmax
- Move card utils to utils directory [PR #7733], by @thornbill
- Fix sass if syntax [PR #7731], by @thornbill
- Fix multiselect panel styles [PR #7730], by @thornbill
- initial sections for book library view [PR #7354], by @dkanada
- Extract getCardImageUrl and remove duplicate hook [PR #7676], by @thornbill
- Cleanup typescript types [PR #7673], by @thornbill
- Remove var mixin [PR #7647], by @thornbill
- Use getBackupApi util from SDK [PR #7729], by @thornbill
- Add watch feature to log viewer [PR #7268], by @viown
- remove merge group events from main workflow [PR #7692], by @dkanada
- Fix login loop [PR #7685], by @Crashdummyy
- use pr list subcommand for pull request search [PR #7691], by @dkanada
- add debug logging to PR step in workflow [PR #7690], by @dkanada
- define secrets for nested workflows [PR #7688], by @dkanada
- Fix react card text missing keys [PR #7675], by @thornbill
- Fix react cards showing default background when loading [PR #7674], by @thornbill
- move broken actions to workflow_run event [PR #7684], by @dkanada
- Add playlist button and sort options to Playlists tab in experimental layout [PR #7538], by @theguymadmax
- Add code assistance section to pull request template [PR #7619], by @viown
- Mitigate pull_request_target privilege escalation [PR #7616], by @andrewrabert
- Add
caniuse-liteas dev dependency to keep it updated and update it [PR #7474], by @larouxn - Remove old irrelevant comment about 'LabelSyncPlayTimeOffset' [PR #7535], by @dfederm
- Add max value to streaming bitrate textfield [PR #7519], by @haleyburns
- Remove getData() and importFrom() dead code from userSettings.js [PR #7536], by @dfederm
- Remove unused showFindNew export from itemidentifier.js [PR #7537], by @dfederm
- Remove unused AudioPodcast item type [PR #7532], by @dfederm
- Remove reference to non-existing Recording media type [PR #7533], by @dfederm
- Fix
.nvrmcto.nvmrctypo in PR GitHub workflow [PR #7522], by @larouxn - Fix jellyfin sdk type errors [PR #7491], by @PeachesMLG
- Upgrade to NPM 11 and Node 24 active LTS [PR #7282], by @larouxn
- Fix item grid inconsistencies [PR #7435], by @thornbill
- Tizen: Enable direct-play of anamorphic videos [PR #7321], by @kinke
- Add support for scanning tartgeted paths with lint npm script [PR #7436], by @tylers-username
- Remove dead itemsrefresher class [PR #7420], by @thornbill
- Use sdk for item download url [PR #7412], by @thornbill
- Refactor themes structure [PR #7382], by @thornbill
- Remove unused network share references [PR #7342], by @thornbill
- Use enum for item actions [PR #7389], by @thornbill
- Use experimental layout by default [PR #7393], by @thornbill
- Remove usages of deprecated framerate properties [PR #7395], by @thornbill
- Pass the new player to nextTrack to allow mixed playlist playback [PR #5488], by @kevgrig
- Add delay setting for photo slideshow [PR #7038], by @nesnass
- Fix base theme icon color [PR #7386], by @thornbill
- Migrate dashboard user pages to use TS SDK [PR #7089], by @viown
- Refactor light theme to use base theme [PR #7347], by @thornbill
- Hide empty message box if there isn't text [PR #6151], by @viown
- Update CODEOWNERS to capture bump_version [PR #7263], by @joshuaboniface