❌

Normale weergave

v0.20.0-beta.1

8 September 2026 om 16:35

Version 0.20 of the Android TV app is coming. To read more about the release process and follow updates, please see the release plan discussion.

This initial beta will not be released on the app store beta channels.

If you appreciate my work, you can show your support with a donation through Buy Me a Coffee or GitHub sponsors. Your support helps me continue improving and growing the app. Thank you!

πŸ› Beta information

Beta versions are not guaranteed to work as expected. We encourage users to create detailed bug reports if any problems arise. Read our blog post for more information about our Android beta programs.

🌟 Highlights

πŸ—οΈ Enhancements

πŸ’₯ Crash fixes

πŸ”§ Bugfixes

πŸ”ƒ Refactoring

πŸ’‘ Everything else

πŸ“ˆ Dependency updates

  • Update androidx.window:window by renovate[bot] v1.5.1 #5170, v1.5.0 #4965
  • Update aboutlibraries by renovate[bot] v15.2.0 #5768, v15 #5663, v14.2.1 #5603, v14.2.0 #5583, v14 (major) #5516, v13.2.1 #5258, v13 (major) #5007
  • Update androidx.work:work-runtime by renovate[bot] v2.11.2 #5487, v2.11.1 #5371, v2.11.0 #5043
  • Update Gradle by renovate[bot] v9.7.0 #5742, v9.6.1 #5662, v9.5.1 #5591, v9.5.0 #5558, v9.4.1 #5477, v9.4.0 #5455, v9.3.1 #5374, v9.3.0 #5339, v9.2.1 #5165, v9.2.0 #5065
  • Update github/codeql-action action by renovate[bot] v4.37.9 #5770, v4.37.7 #5758, v4.37.6 #5737, v4.37.4 #5728, v4.36.1 #5615, v4.35.5 #5592, v4.35.4 #5581, v4.35.3 #5565, v4.35.2 #5531, v4.35.1 #5492, v4.35.0 #5478, v4.33.0 #5472, v4.32.6 #5457, v4.32.5 #5451, v4.32.4 #5433, v4.32.2 #5391, v4.32.1 #5383, v4.31.10 #5327, v4.31.9 #5250, v4.31.8 #5241, v4.31.7 #5218, v4.31.6 #5203, v4.31.5 #5167, v4.31.3 #5144, v4.31.2 #5072
  • Update appleboy/ssh-action action by renovate[bot] v1.2.4 #5192, v1.2.3 #5108
  • Update com.android.tools.build:gradle by renovate[bot] v8.13.2 #5235, v8.13.1 #5131
  • Update actions/checkout action by renovate[bot] v7 - autoclosed #5661, v6.0.1 #5209, v6 #5175, v5.0.1 #5163
  • Update org.jellyfin.sdk:jellyfin-core by renovate[bot] v1.8.12 #5713, v1.8.10 #5606, v1.8.9 #5601, v1.8.8 #5514, v1.8.7 #5501, v1.8.6 #5344, v1.8.5 #5244, v1.8.4 #5202, v1.8.3 #5164
  • Update kotest by renovate[bot] v6.2.4 #5752, v6.2.3 #5701, v6.2.2 #5686, v6.2.1 #5653, v6.1.11 #5508, v6.1.10 #5497, v6.1.9 #5484, v6.1.8 #5483, v6.1.7 #5469, v6.1.6 #5463, v6.1.4 - autoclosed #5443, v6.1.3 #5388, v6.1.2 #5367, v6.1.1 #5351, v6.1.0 #5345, v6.0.7 #5201, v6.0.5 - autoclosed #5166
  • Update androidx.compose by renovate[bot] v1.12.0 #5760, v1.11.4 #5676, v1.11.3 #5657, v1.11.2 #5598, v1.11.1 #5580, v1.11.0 #5552, v1.10.6 #5486, v1.10.5 #5466, v1.10.4 #5442, v1.10.3 #5410, v1.10.2 #5372, v1.10.1 #5336, v1.10.0 #5214, v1.9.5 #5169
  • Update androidx.activity by renovate[bot] v1.13.0 #5467, v1.12.4 #5409, v1.12.2 #5254, v1.12.1 #5213, v1.12.0 #5171
  • Update androidx.lifecycle by renovate[bot] v2.11.0 #5659, v2.10.0 #5172
  • Update actions/stale action by renovate[bot] v11 #5721, v10.1.1 #5211
  • Update actions/setup-java action by renovate[bot] v6 #5792, v6 #5775, v5.4.0 #5655, v5.1.0 #5217
  • Update io.mockk:mockk by renovate[bot] v1.14.11 #5612, v1.14.9 #5360, v1.14.7 #5224
  • Update actions/upload-artifact action by renovate[bot] v7.0.1 #5525, v7 #5445, v6 #5242
  • Update Kotlin by renovate[bot] v2.4.20 #5803, v2.4.10 #5695, v2.4.0 #5622, v1.11.0 #5584, v2.3.21 #5553, v2.3.20 #5471, v2.3.10 #5389, v2.3.0 #5246
  • Update androidx.media3 by renovate[bot] v1.11.0 #5741, v1.10.1 #5590, v1.10.0 #5491, v1.9.3 #5473, v1.9.2 #5393, v1.9.1 #5359, v1.9.0 #5255
  • Update dependency org.jellyfin.media3:media3-ffmpeg-decoder to v1.9.0+1 #5288, by renovate[bot]
  • Update org.jetbrains.kotlinx:kotlinx-serialization-json by renovate[bot] v1.11.0 #5524, v1.10.0 #5347
  • Update dependency androidx.activity:activity to v1.12.3 #5373, by renovate[bot]
  • Update androidx.navigation3:navigation3-ui by renovate[bot] v1.1.7 #5778, v1.1.6 #5757, v1.1.5 #5727, v1.1.4 #5678, v1.1.3 #5658, v1.1.2 #5599, v1.1.1 #5551, v1.1.0 #5522, v1.0.1 #5412
  • Update android.gradle by renovate[bot] v9.4.0 #5698, v9.2.1 #5578, v9.2.0 #5549, v9.1.1 #5529, v9.1.0 #5453, v9.0.1 #5416
  • Update gradle/actions action by renovate[bot] v6 #5631, v5.0.2 #5437
  • Update coil by renovate[bot] v3.6.2 #5793, v3.6.1 #5779, v3.5.0 #5643, v3.4.0 #5441
  • Update dependency androidx.core:core-ktx to v1.18.0 #5468, by renovate[bot]
  • Update koin by renovate[bot] v4.2.2 #5650, v4.2.1 #5523, v4.2.0 #5474
  • Update dependency com.mikepenz:aboutlibraries-core to v14.1.0 #5566, by renovate[bot]
  • Update CI dependencies by renovate[bot] v6.2.0 #5640, v4.36.2 #5624, v6.0.3 #5617
  • Update jellyfin.sdk to v1.8.11 #5629, by renovate[bot]
  • Update io.github.peerless2012:ass-media by renovate[bot] v0.5.1 #5750, v0.5.0 #5723
  • Update dependency androidx.constraintlayout:constraintlayout to v2.2.2 #5726, by renovate[bot]
  • Update androidx.fragment to v1.9.0 #5761, by renovate[bot]
  • Update dependency androidx.appcompat:appcompat to v1.8.0 #5762, by renovate[bot]
  • Update CI dependencies #5348, by renovate[bot]
  • Update CI dependencies #5355, by renovate[bot]
  • Update CI dependencies #5415, by renovate[bot]
  • Update CI dependencies #5600, by renovate[bot]
  • Update CI dependencies #5677, by renovate[bot]
  • Update CI dependencies #5690, by renovate[bot]
  • Update CI dependencies #5730, by renovate[bot]

Contributors

  •  

12.0

8 September 2026 om 03:38

πŸš€ 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

πŸ—οΈ Enhancements

πŸ“ˆ General Changes

  •  

12.0

8 September 2026 om 09:50

πŸš€ Release notes for 12.0

Notes on Updating

Before upgrading from an earlier version, a full backup of the data directory is strongly recommended, as this release includes database changes that prevent rolling back without a full restore.

Direct upgrades from 10.10.7 and 10.11.x to 12.0 are supported; intermediate upgrades are not required. Users running releases older than 10.10.7 are strongly encouraged to upgrade to 10.10.7 before migrating to 12.0.

Installed repository plugins (anything not built-in) should also be removed before migrating. Plugins will likely need time to adapt to the new database changes, so re-adding them afterward is the safest approach for testing.

Official plugins compatible with Jellyfin are available through the stable plugin repository. If you have changed to the unstable plugin repository please change it back.

After migrating please perform the following steps.

  • Perform a full library scan to restore alternative versions

If you run into issues, please prefix bug reports with "[12.0]".

Packaging

  • Debian Bullseye and Ubuntu Focal packages are no longer built

Server

  • Performance PR implications #16062
    • We're running a full path-based check on all library items to clean up left overs. Depending on size this can take some time
    • Alternative versions of media that were auto resolved (not manually merged) will be removed due to data type issues -> A full library scan will fix this again and is therefore REQUIRED AFTER UPGRADE
    • First scan will take significantly longer than normal and some movies might appear as newly added due to type issues that got fixed on-scan
  • Multiple versions for episodes
  • Similarity & recommendation providers
  • Search providers, letting plugins extend or replace how search results are produced
  • SchedulesDirect and EPG refresh fixes
  • Fixes to the parental rating system
  • Proper data pruning on file replacement/deletion
  • Support triple+ digit episode numbers
  • Add library-specific BoxSet and Playlist filtering, allowing per-library collection and playlist views
  • CACHEDIR.tag support
  • Accept-Language header support
  • Add VideoRotation profile condition for Android TVs that do not support rotation metadata
  • Parse provider IDs from season and episode folder/file names
  • Allow tmdb, tvdb, and imdb as aliases for the tmdbid, tvdbid, and imdbid provider IDs
  • Add curly brace and parentheses support for parsing attribute values
  • Add NameStartsWith and NameLessThan filters to Person search
  • Add new filters for audio and subtitle languages
  • Add OriginalLanguage as option to PreferredAudioLanguage
  • Add a collection API for Included In feature
  • Add support for VobSub subtitle streams
  • Add Tmdb missing episode provider

Breaking and behavior changes

  • Legacy route prefixes removed (/emby/* and /mediabrowser/*). Old third-party clients that rely on them will stop working
  • Legacy authorization is now disabled by default, and a migration disables it on existing installs as well
  • Removed obsolete API routes: POST /Users/{userId}/EasyPassword (the EasyPassword feature is gone), GET /Items/{itemId}/CriticReviews, GET /Environment/NetworkShares, POST /System/MediaEncoder/Path, GET /LiveTv/Recordings/Groups/{groupId}, and GET /QuickConnect/Initiate
  • The global subtitle configuration has been removed, subtitle settings are configured per library
  • .ogg is no longer treated as a video extension and is audio only, .aifc is now recognized as audio, and .aiff is no longer treated as an image
  • Symlinks are only resolved at playback time
  • Sorting by name now uses SortName and CleanName, and the same cleaning logic is applied to ForcedSortName. Library ordering may change compared to 10.11
  • Image endpoints no longer upscale beyond the source resolution, so low resolution artwork renders at its real size instead of being enlarged
  • Username capitalization can now be changed. Usernames are stored in a normalized column with a unique index, so installs with usernames that differ only by case need to be corrected before upgrading

Database and performance

  • Playlists and collections are now properly relational, using a new LinkedChildren table instead of serialized child lists. OwnerId and PrimaryVersionId are real GUID foreign keys, and ExtraIds has been dropped
  • Many tuning migrations covering item counts, item names, type and clean name, latest items, image info, and primary version id
  • Migration routines clean up existing data on first boot: duplicate music artists and people are merged, orphaned extras and external data are removed, incorrect owner relationships are repaired, and clean names, forced sort names, and series presentation keys are recomputed
  • Heavy database tasks no longer run while a library scan is in progress
  • Faster queries for Resume, Next Up, rewatching, Latest Items for music, playlists and collections, artist lookup, and item counts
  • Item deletion is batched, which fixes "too many SQL variables" failures when deleting large numbers of items
  • jellyfin.db can now be stored at a custom path

Operations

  • New --mode startup flag with MediaServer, MigrateSystem, and SeedSystem, allowing migrations or database seeding to be run without starting the server. This is useful for containerized and orchestrated deployments and for controlled upgrades
  • The startup interface has been restyled and now shows version and activity information
  • Disabled plugins are no longer re-enabled on restart
  • Full system backups skip corrupt keyframe rows instead of failing

Media and subtitles

  • Subtitle writing now goes through SubtitleEdit, which is what avoids the SSA to ASS conversion and loss of styles
  • External subtitles can be embedded into MKV when transcoding
  • The subtitle extraction timeout is now configurable
  • Client-rendered graphical subtitles are allowed during remux
  • Fixes for races in concurrent subtitle conversion, cache invalidation when a subtitle is replaced, and ffmpeg hangs during extraction
  • New HlsAudioSeekStrategy configuration option
  • Trickplay: existing files are discovered during a scan, duplicates from interlaced video are fixed, invalid PTS values from containers are normalized, and the cache is cleaned up after a failure

Live TV

  • Live TV no longer returns unreachable "server-local" streaming URLs to clients
  • XMLTV background images and episode thumbnails are now imported
  • XMLTV guide imports skip programs whose data has not changed, using an ETag computed from the fields the server actually consumes, which makes repeat guide refreshes considerably cheaper. Other listings providers stay on the existing field-by-field update path

Metadata and providers

  • ListenBrainz is now bundled with the server and provides similar artist data with a selectable similarity algorithm
  • TVDB provider IDs are supported for movies
  • AudioDb artist search
  • ReplayGain album gain is parsed
  • MusicBrainz lookups are more resilient
  • WEB-DL release tags are recognized in file names
  • Hyphenated numbers in episode titles are no longer parsed as multi-episode files
  • 3D format detection works when the tag is the last token of the path
  • Person metadata refreshes are queued instead of blocking the request

Transcoder

  • New upstream version of FFmpeg 8.1
  • Optimized CUDA transposing filter performance
  • Optimized OCL scaling filter performance
  • Optimized OCL tonemapping filter performance on Mali GPU
  • Use EOTF from BT 2446 Method B for HLG tonemapping
  • Fix potential A/V desync in HLS when transcoding video while remuxing audio
  • Avoid SSA to ASS conversion and loss of styles
  • Add spec-compliant dvh1 HLS variant for DoVi P5 for compatibility

Web

  • The Modern layout is now the default, the previous layout is now called Legacy
  • Updated Music Videos view
  • Updated Mixed Media view
  • Updated Collections & Playlists view
  • Updated Books view
  • Add still watching prompt
  • Add delay setting for photo slideshow
  • Add caching of queries to indexed db for the tanstack query client for improved loading performance
  • Add watch feature to log viewer
  • Add , and . as controls to scrub frame-by-frame
  • Add filters for audio and subtitle languages (modern layout only)
  • Add Collections and playlist tab to all libraries
  • Add collections to item details page
  • Replace libpgs with libbitsub and adds support for vobsub rendering
  • Merge cards for crew with multiple roles

Layout and themes

  • All themes now derive from a shared base theme built on CSS variables, including Dark, Light, WMC, Blue Radiance, Apple TV, and Purple Haze. Custom themes may need to be adjusted
  • The library toolbar has been merged into the app bar, with a sticky library header and design polish throughout the library
  • Custom links can be added to the Modern layout
  • The screensaver time setting is now available in the Modern layout

Libraries and browsing

  • Collections and folders tabs for book libraries, and a folder view in the Modern home videos layout
  • Default tab options for Home Videos and Photos libraries
  • Studio search, and an extended Studios tab
  • Play All and Shuffle buttons on the series library. Both are disabled rather than hidden when no items are available
  • Improved Upcoming view
  • Sorting and filtering on the Activity page
  • A Reset Filters button in the filter dropdown
  • Folders can be marked as played
  • TV show creators are shown on item details
  • Similarity providers can be configured per library
  • Pagination controls are hidden when paging is disabled

Playback

  • The playback info overlay is more compact and shows more detail
  • Chapter names are shown in the OSD slider bubble
  • Bitrate detection now runs in web
  • Dolby Vision in MKV on webOS 25 and newer
  • AV1 fMP4 stream copy on TV clients
  • Direct play of anamorphic video on Tizen, and loosened anamorphic restrictions for browser device profiles
  • On iOS, background playback continues when the screen is turned off, and audio normalization is disabled to fix pitch and speed issues
  • libbitsub updated to v1.11.0 with an HLS offset fix
  • The screensaver is suppressed while viewing photos or reading

TV and remote

  • Game controller navigation fixes, and the gamepad repeat rate is no longer tied to framerate
  • Keyboard controls work on non-Latin keyboard layouts, with additional fixes for older browsers
  • Rewind and FastForward play state commands are handled
  • SyncPlay menu update, and the SyncPlay ping is now reported to the server
  • Focused and checked checkbox styling in the TV layout

Under the hood

  • WebSockets have been migrated to SDK subscriptions
  • The React and TypeScript migration continues with the libraries, Live TV, and networking pages, and the dashboard user pages now use the TS SDK
  • TanStack Query now backs user settings and home screen sections, and the query cache is cleared when the server restarts

Notable fixes

  • Blurry card images on high DPI displays, and card image sizes are rounded up
  • Duplicate /socket connections
  • Login loop, connecting to the wrong server when several are configured, and native shell server selection when signing out
  • An invalid request for all items on page load
  • The Live TV default landing tab
  • Holding and dragging on media no longer activates multi-select
  • A warning is shown before restoring a version, a warning is shown when starting a backup while a scan is running, and a library scan starts automatically when folders are added to a library

Security

Server:

  • Path validation has been added to the legacy HLS segment endpoints and to the plugin image endpoint, so a requested file must resolve inside the transcode directory
  • Path traversal hardening has been extended to the image and plugin endpoints and to username path handling, building on the fixes released in 10.11.x
  • The startup wizard can no longer be re-run without authentication on a misconfigured server
  • Unsafe plugin package names are rejected by the plugin installer
  • Parental filtering is enforced on additional endpoints, playlist visibility has been corrected, non-admin access to additional parts has been fixed, and people are exempt from the allowed tags visibility check

Web:

  • Cross-site scripting via person roles
  • Auth parameters are encoded when creating API clients
  • The login disclaimer only allows common link protocol schemes

Books

Books have often taken a backseat in favor of video playback in Jellyfin, but this should no longer be the case.
We have started a concerted effort to improve book support across the API and our official clients.
eBook and comic support is still maturing, but the ODPS plugin allows for direct access from a wide range of popular self-hosted programs.
Correspondingly, contributions in any repository are extremely welcome from the wider community.
That includes server improvements, documentation changes, and third-party clients for book playback.
A combination of eBook, comic, and audiobook support is available on the following clients.

Official: Web, iOS, Android, Desktop, Roku, Kodi, JMP
Community: JellyBook, Symfonium, Jellium, Plappa

One notable omission from the server is book series as unique entities, which didn't make the cut for this release.
If you would like to bridge the gap until they are added, feel free to use the Folio plugin to display them as collections.
It functions very similar to the TMDb Box Sets plugin but only applies to eBooks.

Another in-flight feature is audiobook chapters, which are only available from the API at present.
Luckily, this means client support is now possible, so you should see them appear in your favorite audiobook client before our next server release.

NOTE: The Bookshelf plugin has been deprecated and its features have been merged into server or extracted into the ComicVine and GoogleBooks providers.

Server Changes

  • Bookshelf has been split into separate GoogleBooks and ComicVine providers
  • Local book parsing has been improved and is available without plugins
    • Book metadata is extracted directly from OPF and ComicInfo files or ComicBookInfo comments
    • External covers are now supported for audiobook files
    • Posters are generated for EPUBs and all supported comic archives
    • Name, index, year, and series are parsed from book filenames
    • Both volume and chapter will be available in the API when present in comic filenames
    • Page counts are extracted from comic archives and PDFs
    • Creator names from OPF data are normalized to a common format
  • A new OpenLibrary plugin has been created for metadata and images
  • ISBN external IDs and links are supported
  • Chapters are now extracted from audiobooks

Web Changes

  • Modern book library layout has been added with view types and paging
  • Books display information about their authors and vice versa
  • Playback interface has been redesigned and standardized across all book types
  • Progress indicator is enabled again for supported eBooks
  • Sorting books by index number, release date, etc is now available
  • Font size selection has been improved for EPUB files
  • Background audiobook playback is working on iOS devices
  • Authors, collections, and folders tabs have been added to book libraries, and audiobooks appear under authors
  • Fullscreen behavior is unified across all book players, and PDFs support swipe navigation

Developers

API Changes

The API no longer allows the use of deprecated authorization mechanisms by default.
Clients and tooling need to migrate if they haven't done so already. See #15559 for details.

There have been a number of other changes to the SDK libraries and API as part of an ongoing effort to better document the API for client use.
Please note the following with regards to API support.
A full explanation of our policy for API changes will be added to the developer documentation in the coming months.

  • If an endpoint isn't listed in the OpenAPI specification it should not be used by clients.
    • There are certain endpoints that are still exposed for legacy reasons despite being excluded from the OpenAPI spec.
    • These can be removed in any major release without warning
  • If an endpoint or parameter is marked as obsolete in the OpenAPI specification it should not be used by clients.
    • Same explanation as above.
  • As a general rule, any deprecations will be marked as such for an entire (major) release cycle before the deprecated endpoint or parameter is liable for removal.

Behavior changes clients should be aware of:

  • GetItems is now asynchronous and applies recursive when filters are requested, limited to requests that include includeItemTypes. The same query can return a different result set than it did on 10.11
  • ItemByName responses are restricted and people are deduplicated
  • Newly obsolete but still functional, with replacements:
    • GetTrailers -> use GetItems with includeItemTypes=Trailer
    • GetArtists and GetAlbumArtists -> use GetPersons
    • GetArtistByName -> use GetPerson
    • GetMusicGenre -> use GetGenre
    • GetInstantMixFromMusicGenreById and GetInstantMixFromMusicGenreByName -> use GetInstantMixFromItem
    • GetStartupConfiguration, UpdateInitialConfiguration, and SetRemoteAccess -> use the configuration endpoints
    • GetRecordingsSeries
    • UserDto.HasPassword is marked obsolete and no longer provides useful information
  • The HLS controllers are hidden from the specification

Platform

  • The server now targets .NET 10. Plugins have to be retargeted and rebuilt
  • Swashbuckle has been updated to v10, which changes the generated OpenAPI document, so SDKs need to be regenerated
  • jellyfin-web now builds with Node 24 LTS and npm 11

Plugin changes

  • ISearchEngine has been replaced by ISearchManager, and SearchEngine has been replaced by SearchManager together with SqlSearchProvider
  • Removed: NowPlayingQueueFullItems, DtoExtensions.AddClientFields, Jellyfin.Extensions.AlphanumericComparator, the ISubtitleWriter family of subtitle writers, and SubtitleOptions with SubtitleConfigurationFactory
  • ServerConfiguration.EncoderPreset is no longer nullable
  • IAuthenticationProvider.HasPassword has been removed
  • IPasswordResetProvider.StartForgotPasswordProcess takes the entered username and a nullable user
  • IUserManager: the Users and UsersIds properties are now the GetUsers and GetUsersIds methods, and RenameUser, ResetPassword, and ChangePassword take a user id instead of a User. GetFirstUser has been added
  • Several IItemRepository members moved to the new services: item saving and deletion and UpdateInheritedValues to IItemPersistenceService, counts to IItemCountService, and Next Up series keys to INextUpService
  • IPeopleRepository.GetPeople and ILibraryManager.GetPeopleItems return a QueryResult, and IDtoService.GetBaseItemDtos and ILibraryManager.DeleteItemsUnsafeFast have new signatures
  • IDirectoryService.GetFilePaths no longer takes a sort argument, and the IPathManager subtitle and attachment path getters are now nullable

New plugin APIs

This release adds several extension points that plugins could not hook into before.

  • Search providers. Plugins can now take part in search itself rather than only in metadata lookup. ISearchProvider exposes Name, Type, Priority, and CanSearch(SearchProviderQuery), with IInternalSearchProvider for providers that search the local library and IExternalSearchProvider for providers that stream SearchResult items from a remote service. Providers are registered through ISearchManager.AddParts and are consulted in priority order, so a plugin can extend or take over from the built-in SqlSearchProvider
  • Similarity and recommendation providers. ISimilarItemsProvider is split inherited by ILocalSimilarItemsProvider, IRemoteSimilarItemsProvider, and IBatchLocalSimilarItemsProvider, each with a generic variant so a provider can declare the item type it handles. Providers are selected and ordered per library through LibraryOptions.SimilarItemProviders and SimilarItemProviderOrder, and ISimilarItemsManager also pulls movie recommendations. The bundled ListenBrainz provider is built on this
  • Comic metadata providers. IComicProvider (ReadMetadata and HasItemChanged) lets a plugin supply comic metadata alongside the built-in ComicInfo and ComicBookInfo readers
  • Chapters for any item type. IChapterManager.SaveChapters now takes a BaseItem rather than a Video, and gained a Supports(BaseItem) check. This is what makes audiobook chapters possible, and it lets plugins save chapters for non-video items
  • Password resets for unknown users. IPasswordResetProvider.StartForgotPasswordProcess now receives the entered username along with a nullable user, so a provider can handle a request for a username the server does not know or hand the reset off to an external provider
  • Media segment cleanup. IMediaSegmentProvider.CleanupExtractedData is called when an item's data is pruned, so segment providers can remove their own extracted files
  • Schedules Direct. ISchedulesDirectService exposes available countries, service availability, and the image daily limit state, so Live TV plugins no longer need to reimplement them. ITunerHostManager.DeleteTunerHost allows removing a tuner
  • Alternate versions and linked children. Now that linked children are relational, ILibraryManager exposes ResolveAlternateVersion, GetLocalAlternateVersionIds, GetLinkedAlternateVersions, GetItemIdsWithAlternateVersions, and UpsertLinkedChild. Plugins that manipulated version links through serialized item data need to move to these
  • Batch APIs for bulk work. IUserDataManager gained GetUserDataBatch, GetResumeUserData, GetResumeUserDataBatch, and ResetPlaybackStreamSelections. ILibraryManager gained GetPeopleByItems, GetPeopleNamesByItems, and GetNextUpEpisodesBatch. IItemCountService offers batched child and played/total counts
  • Localization. ILocalizationManager.GetServerLocalizedString and GetLanguageDisplayName let plugins localize against the server locale
  • ICollectionManager.GetCollectionsContainingItem backs the Included In feature, and IPlaylistManager.AddItemToPlaylistAsync takes a position so items can be inserted at the top of a playlist

IHasEmbeddedImage is also new, but it is only for plugins compiled into the server; external plugins should keep declaring their image with imagePath in meta.json.

TLS Configuration

In the previous release notes 10.11.0 we announced the deprecation of the built-in TLS certificate handling for this version. This change has been postponed to a future version.


Discuss this release further on our forums.

Changelog (460)

πŸ”’ Security

🌟 Highlights

πŸ—οΈ Enhancements

πŸ“ˆ General Changes

  •  

ElegantFin Theme v26.09.05 for Jellyfin

Door: lscambo13
4 September 2026 om 15:00

This is the 15th update to ElegantFin.

Key Changes

  • Introduced a brand new Light theme, which can be enabled from Settings > Display > Theme > Light. (See #15)
  • Reworked the seekbar styling to fix several issues, including inaccurate seekbar tooltips and positions.
  • Improved support for the "Theme videos" feature. (Preview)
  • Added card snapping to horizontal scrolling lists on phones.
  • Added a hover effect to app bar tabs and buttons, and fixed the focus styling on the delete button.
  • Added sticky save button in user settings pages.
  • Added a way to show the "Ends At..." text and hide the Tomatoes rating icon on phones. (See #12)
  • Added a way to switch between IMDb and TMDB star colors. (See #14)
  • Added monospace font variant to the time text around seek bars.
  • Made some icons thicker and slightly tweaked their shadows for improved visibility.
  • Improved compatibility with the Jellyfin 12 legacy UI, fixing the credits table, clear logo position, and the music artist page.
  • Fixed an issue where the top bar buttons were not clickable on some browsers and devices.
  • Fixed the seekbar thumb not aligning with the progress level at the seekbar ends.
  • Fixed the item column gap and other overrides not being applied on phones.
  • Refactored huge chunks of code to make creating custom color themes easier. (More Info)
  • Optimised some code to improve stability and compatibility.
  • Improved compatibility with the external links added by Jellyfin Enhanced. (#296 - thanks @Macleykun)
  • Improved compatibility with the "Episodes On Series Page" feature in KefinTweaks.
  • Fixed the horizontal overflow in the "TMDB Reviews" section when using Jellyfin Enhanced.
  • Avoided adding unintended margins on the home screen sections added by KefinTweaks.

Breaking Changes

  • The app bar styles can no longer be switched using --appBarHeight. You will need to use the code block documented in the updated customisation section. (See #8.)

You can read the full commit history here.

Additional Notes

  • All the customisation instructions can be found in the README.md
  • Jellyfin Media Player and some outdated TVs are not fully supported as they may lack support for newer CSS features.
  • This is a hobby project. If it helped you, your support really means a lot.

Buy me a coffee

You may use the provided CSS file for self-hosting purposes. Alternatively, you may use the following code snippet to get the latest version via a free CDN.

@import url("https://cdn.jsdelivr.net/gh/lscambo13/ElegantFin@main/Theme/ElegantFin-jellyfin-theme-build-latest-minified.css");

For more detailed information, be sure to read the README.md file.

  •  

12.0 RC7

Door: crobibero
1 September 2026 om 01:23

πŸš€ Jellyfin Web 12.0 RC7

We are pleased to announce the seventh release candidate preview release of Jellyfin 12.0!

This is a preview release, intended for those interested in testing 12.0 before it's final public release. We welcome testers to help find as many bugs as we can before the final release.

As always, please ensure you stop your Jellyfin server and take a full backup before upgrading!

A note about versioning

Starting with this release, we are dropping the preceding 10. from our versioning. Thus, 10.11.x -> [10.]12.x = 12.x. The reason is simple: at this point in the project, we don't envision a hard break in the API like we planned way back in the early days, and this version scheme was causing a lot of confusion amongst users about what a "major" release was. For more information, please see the RC1 release notes.

What's new?

The main goal of this release has been performance. 10.11.0 dropped a major backend rewrite, and while it was broadly functional, it had a lot of rough edges. This release seeks to polish out most of those rough edges and bring better performance to all users.

There are many other small fixes, improvements, changes, and translations. See our draft release notes here or below for the full list of pull requests. You can also view the Server side changelog here.

Note: You must be on Jellyfin 10.10.7+ or 10.11.x (ideally, 10.11.11) before upgrading! If you are not, the upgrade will fail. Ensure you upgrade to one of these versions first!

Note: The initial load of Jellyfin 12.x will run a few migrations and will take several minutes. Please be patient and do not interrupt the process. You can leverage the (newly improved!) startup UI on your local network to see specific progress, or off-network to see general progress, by visiting the server URL in your web browser during startup.

Note: If you install the RC, you should disable all external plugins and reinstall using the unstable plugin repository, or plugins may fail to load and cause unintended side effects.

Installing

This preview release is distributed in all our traditional forms, though not automatically via our Apt repository or latest tag.

  • For all non-Docker environments, you can find the files for manual download in our repository by selecting "Stable Preview" for your OS.
  • For Docker, you can pull the 12.0-rc7 or preview tags.

What's Changed (since v12.0-rc6)

New Contributors

Full Changelog: v12.0-rc6...v12.0-rc7

  •  

12.0 RC7

Door: crobibero
1 September 2026 om 01:24

πŸš€ Jellyfin Server 12.0 RC7

We are pleased to announce the seventh release candidate preview release of Jellyfin 12.0!

This is a preview release, intended for those interested in testing 12.0 before its final public release. We welcome testers to help find as many bugs as we can before the final release.

As always, please ensure you stop your Jellyfin server and take a full backup before upgrading!

A note about versioning

Starting with this release, we are dropping the preceding 10. from our versioning. Thus, 10.11.x -> [10.]12.x = 12.x. The reason is simple: at this point in the project, we don't envision a hard break in the API like we planned way back in the early days, and this version scheme was causing a lot of confusion amongst users about what a "major" release was. For more information, please see the RC1 release notes.

What's new?

The main goal of this release has been performance. 10.11.0 dropped a major backend rewrite, and while it was broadly functional, it had a lot of rough edges. This release seeks to polish out most of those rough edges and bring better performance to all users.

There are many other small fixes, improvements, changes, and translations. See our draft release notes here or below for the full list of pull requests. You can also view the Web side changelog here.

Note: You must be on Jellyfin 10.10.7+ or 10.11.x (ideally, 10.11.11) before upgrading! If you are not, the upgrade will fail. Ensure you upgrade to one of these versions first!

Note: The initial load of Jellyfin 12.x will run a few migrations and will take several minutes. Please be patient and do not interrupt the process. You can leverage the (newly improved!) startup UI on your local network to see specific progress, or off-network to see general progress, by visiting the server URL in your web browser during startup.

Note: If you install the RC, you should disable all external plugins and reinstall using the unstable plugin repository, or plugins may fail to load and cause unintended side effects.

Installing

This preview release is distributed in all our traditional forms, though not automatically via our Apt repository or latest tag.

  • For all non-Docker environments, you can find the files for manual download in our repository by selecting "Stable Preview" for your OS.
  • For Docker, you can pull the 12.0-rc7 or preview tags.

What's Changed (since v12.0-rc6)

Full Changelog: v12.0-rc6...v12.0-rc7

  •  

12.0 RC6

Door: crobibero
26 Augustus 2026 om 09:14

πŸš€ Jellyfin Server 12.0 RC6

We are pleased to announce the sixth release candidate preview release of Jellyfin 12.0!

This is a preview release, intended for those interested in testing 12.0 before its final public release. We welcome testers to help find as many bugs as we can before the final release.

As always, please ensure you stop your Jellyfin server and take a full backup before upgrading!

A note about versioning

Starting with this release, we are dropping the preceding 10. from our versioning. Thus, 10.11.x -> [10.]12.x = 12.x. The reason is simple: at this point in the project, we don't envision a hard break in the API like we planned way back in the early days, and this version scheme was causing a lot of confusion amongst users about what a "major" release was. For more information, please see the RC1 release notes.

What's new?

The main goal of this release has been performance. 10.11.0 dropped a major backend rewrite, and while it was broadly functional, it had a lot of rough edges. This release seeks to polish out most of those rough edges and bring better performance to all users.

There are many other small fixes, improvements, changes, and translations. See our draft release notes here or below for the full list of pull requests. You can also view the Web side changelog here.

Note: You must be on Jellyfin 10.10.7+ or 10.11.x (ideally, 10.11.11) before upgrading! If you are not, the upgrade will fail. Ensure you upgrade to one of these versions first!

Note: The initial load of Jellyfin 12.x will run a few migrations and will take several minutes. Please be patient and do not interrupt the process. You can leverage the (newly improved!) startup UI on your local network to see specific progress, or off-network to see general progress, by visiting the server URL in your web browser during startup.

Note: If you install the RC, you should disable all external plugins and reinstall using the unstable plugin repository, or plugins may fail to load and cause unintended side effects.

Installing

This preview release is distributed in all our traditional forms, though not automatically via our Apt repository or latest tag.

  • For all non-Docker environments, you can find the files for manual download in our repository by selecting "Stable Preview" for your OS.
  • For Docker, you can pull the 12.0-rc6 or preview tags.

What's Changed (since v12.0-rc5)

New Contributors

Full Changelog: v12.0-rc5...v12.0-rc6

  •  

12.0 RC6

Door: crobibero
26 Augustus 2026 om 03:21

πŸš€ Jellyfin Web 12.0 RC6

We are pleased to announce the sixth release candidate preview release of Jellyfin 12.0!

This is a preview release, intended for those interested in testing 12.0 before it's final public release. We welcome testers to help find as many bugs as we can before the final release.

As always, please ensure you stop your Jellyfin server and take a full backup before upgrading!

A note about versioning

Starting with this release, we are dropping the preceding 10. from our versioning. Thus, 10.11.x -> [10.]12.x = 12.x. The reason is simple: at this point in the project, we don't envision a hard break in the API like we planned way back in the early days, and this version scheme was causing a lot of confusion amongst users about what a "major" release was. For more information, please see the RC1 release notes.

What's new?

The main goal of this release has been performance. 10.11.0 dropped a major backend rewrite, and while it was broadly functional, it had a lot of rough edges. This release seeks to polish out most of those rough edges and bring better performance to all users.

There are many other small fixes, improvements, changes, and translations. See our draft release notes here or below for the full list of pull requests. You can also view the Server side changelog here.

Note: You must be on Jellyfin 10.10.7+ or 10.11.x (ideally, 10.11.11) before upgrading! If you are not, the upgrade will fail. Ensure you upgrade to one of these versions first!

Note: The initial load of Jellyfin 12.x will run a few migrations and will take several minutes. Please be patient and do not interrupt the process. You can leverage the (newly improved!) startup UI on your local network to see specific progress, or off-network to see general progress, by visiting the server URL in your web browser during startup.

Note: If you install the RC, you should disable all external plugins and reinstall using the unstable plugin repository, or plugins may fail to load and cause unintended side effects.

Installing

This preview release is distributed in all our traditional forms, though not automatically via our Apt repository or latest tag.

  • For all non-Docker environments, you can find the files for manual download in our repository by selecting "Stable Preview" for your OS.
  • For Docker, you can pull the 12.0-rc6 or preview tags.

What's Changed (since v12.0-rc5)

Full Changelog: v12.0-rc5...v12.0-rc6

  •  

1.6.1

Door: LePips
23 Augustus 2026 om 02:05

What's Changed

New Features πŸŽ‰

Bug Fixes πŸ› 

Other βš™οΈ

New Contributors

Full Changelog: 1.6...1.6.1

  •  

v0.19.10

16 Augustus 2026 om 10:04

This is a small release backporting a few changes to the stable version of the app. We'll be starting the beta for version 0.20 in the coming weeks, which will require Jellyfin 10.11 or newer.

πŸ—οΈ Enhancements

πŸ”§ Bugfixes

  • Fix wrong string used for RecommendedServerIssue.SecureConnectionFailed #5674, by @nielsvanvelzen
  • Add Amazon Fire TV 4K (1st Gen) to modelsWithDoViHdr10PlusBug #5687, by @nyanmisaka

Contributors

  •  

v1.8.0.5

Door: thornbill
15 Augustus 2026 om 00:02

What's Changed

πŸ—οΈ Enhancements

πŸ› Bug fixes

πŸ”§ Additional changes

⬆️ Dependency upgrades

New Contributors

Full Changelog: v1.7.0.8...v1.8.0.5

  •  

v1.8.0.4

Door: thornbill
14 Augustus 2026 om 16:08

What's Changed

πŸ—οΈ Enhancements

πŸ› Bug fixes

πŸ”§ Additional changes

⬆️ Dependency upgrades

New Contributors

Full Changelog: v1.7.0.8...v1.8.0.4

  •  

v1.8.0.3

Door: thornbill
13 Augustus 2026 om 22:07

What's Changed

πŸ—οΈ Enhancements

πŸ› Bug fixes

πŸ”§ Additional changes

⬆️ Dependency upgrades

New Contributors

Full Changelog: v1.7.0.8...v1.8.0.3

  •  

1.6

Door: LePips
12 Augustus 2026 om 19:45

What's Changed

New Features πŸŽ‰

Bug Fixes πŸ› 

Other βš™οΈ

New Contributors

Full Changelog: 1.5...1.6

  •  

12.0 RC5

Door: crobibero
11 Augustus 2026 om 02:37

πŸš€ Jellyfin Web 12.0 RC5

We are pleased to announce the fifth release candidate preview release of Jellyfin 12.0!

This is a preview release, intended for those interested in testing 12.0 before it's final public release. We welcome testers to help find as many bugs as we can before the final release.

As always, please ensure you stop your Jellyfin server and take a full backup before upgrading!

A note about versioning

Starting with this release, we are dropping the preceding 10. from our versioning. Thus, 10.11.x -> [10.]12.x = 12.x. The reason is simple: at this point in the project, we don't envision a hard break in the API like we planned way back in the early days, and this version scheme was causing a lot of confusion amongst users about what a "major" release was. For more information, please see the RC1 release notes.

What's new?

The main goal of this release has been performance. 10.11.0 dropped a major backend rewrite, and while it was broadly functional, it had a lot of rough edges. This release seeks to polish out most of those rough edges and bring better performance to all users.

There are many other small fixes, improvements, changes, and translations. See our draft release notes here or below for the full list of pull requests. You can also view the Server side changelog here.

Note: You must be on Jellyfin 10.10.7+ or 10.11.x (ideally, 10.11.11) before upgrading! If you are not, the upgrade will fail. Ensure you upgrade to one of these versions first!

Note: The initial load of Jellyfin 12.x will run a few migrations and will take several minutes. Please be patient and do not interrupt the process. You can leverage the (newly improved!) startup UI on your local network to see specific progress, or off-network to see general progress, by visiting the server URL in your web browser during startup.

Note: If you install the RC, you should disable all external plugins and reinstall using the unstable plugin repository, or plugins may fail to load and cause unintended side effects.

Installing

This preview release is distributed in all our traditional forms, though not automatically via our Apt repository or latest tag.

  • For all non-Docker environments, you can find the files for manual download in our repository by selecting "Stable Preview" for your OS.
  • For Docker, you can pull the 12.0-rc5 or preview tags.

What's Changed (since v12.0-rc4)

New Contributors

Full Changelog: v12.0-rc4...v12.0-rc5

  •  

12.0 RC5

Door: crobibero
11 Augustus 2026 om 02:34

πŸš€ Jellyfin Server 12.0 RC5

We are pleased to announce the fifth release candidate preview release of Jellyfin 12.0!

This is a preview release, intended for those interested in testing 12.0 before its final public release. We welcome testers to help find as many bugs as we can before the final release.

As always, please ensure you stop your Jellyfin server and take a full backup before upgrading!

A note about versioning

Starting with this release, we are dropping the preceding 10. from our versioning. Thus, 10.11.x -> [10.]12.x = 12.x. The reason is simple: at this point in the project, we don't envision a hard break in the API like we planned way back in the early days, and this version scheme was causing a lot of confusion amongst users about what a "major" release was. For more information, please see the RC1 release notes.

What's new?

The main goal of this release has been performance. 10.11.0 dropped a major backend rewrite, and while it was broadly functional, it had a lot of rough edges. This release seeks to polish out most of those rough edges and bring better performance to all users.

There are many other small fixes, improvements, changes, and translations. See our draft release notes here or below for the full list of pull requests. You can also view the Web side changelog here.

Note: You must be on Jellyfin 10.10.7+ or 10.11.x (ideally, 10.11.11) before upgrading! If you are not, the upgrade will fail. Ensure you upgrade to one of these versions first!

Note: The initial load of Jellyfin 12.x will run a few migrations and will take several minutes. Please be patient and do not interrupt the process. You can leverage the (newly improved!) startup UI on your local network to see specific progress, or off-network to see general progress, by visiting the server URL in your web browser during startup.

Note: If you install the RC, you should disable all external plugins and reinstall using the unstable plugin repository, or plugins may fail to load and cause unintended side effects.

Installing

This preview release is distributed in all our traditional forms, though not automatically via our Apt repository or latest tag.

  • For all non-Docker environments, you can find the files for manual download in our repository by selecting "Stable Preview" for your OS.
  • For Docker, you can pull the 12.0-rc5 or preview tags.

What's Changed (since v12.0-rc4)

New Contributors

Full Changelog: v12.0-rc4...v12.0-rc5

  •  

12.0 RC4

Door: crobibero
3 Augustus 2026 om 01:34

πŸš€ Jellyfin Web 12.0 RC4

We are pleased to announce the fourth release candidate preview release of Jellyfin 12.0!

This is a preview release, intended for those interested in testing 12.0 before it's final public release. We welcome testers to help find as many bugs as we can before the final release.

As always, please ensure you stop your Jellyfin server and take a full backup before upgrading!

A note about versioning

Starting with this release, we are dropping the preceding 10. from our versioning. Thus, 10.11.x -> [10.]12.x = 12.x. The reason is simple: at this point in the project, we don't envision a hard break in the API like we planned way back in the early days, and this version scheme was causing a lot of confusion amongst users about what a "major" release was. For more information, please see the RC1 release notes.

What's new?

The main goal of this release has been performance. 10.11.0 dropped a major backend rewrite, and while it was broadly functional, it had a lot of rough edges. This release seeks to polish out most of those rough edges and bring better performance to all users.

There are many other small fixes, improvements, changes, and translations. See our draft release notes here or below for the full list of pull requests. You can also view the Server side changelog here.

Note: You must be on Jellyfin 10.10.7+ or 10.11.x (ideally, 10.11.11) before upgrading! If you are not, the upgrade will fail. Ensure you upgrade to one of these versions first!

Note: The initial load of Jellyfin 12.x will run a few migrations and will take several minutes. Please be patient and do not interrupt the process. You can leverage the (newly improved!) startup UI on your local network to see specific progress, or off-network to see general progress, by visiting the server URL in your web browser during startup.

Note: If you install the RC, you should disable all external plugins and reinstall using the unstable plugin repository, or plugins may fail to load and cause unintended side effects.

Installing

This preview release is distributed in all our traditional forms, though not automatically via our Apt repository or latest tag.

  • For all non-Docker environments, you can find the files for manual download in our repository by selecting "Stable Preview" for your OS.
  • For Docker, you can pull the 12.0-rc4 or preview tags.

What's Changed (since v12.0-rc3)

New Contributors

Full Changelog: v12.0-rc3...v12.0-rc4

  •  

12.0 RC4

Door: crobibero
3 Augustus 2026 om 01:34

πŸš€ Jellyfin Server 12.0 RC4

We are pleased to announce the fourth release candidate preview release of Jellyfin 12.0!

This is a preview release, intended for those interested in testing 12.0 before its final public release. We welcome testers to help find as many bugs as we can before the final release.

As always, please ensure you stop your Jellyfin server and take a full backup before upgrading!

A note about versioning

Starting with this release, we are dropping the preceding 10. from our versioning. Thus, 10.11.x -> [10.]12.x = 12.x. The reason is simple: at this point in the project, we don't envision a hard break in the API like we planned way back in the early days, and this version scheme was causing a lot of confusion amongst users about what a "major" release was. For more information, please see the RC1 release notes.

What's new?

The main goal of this release has been performance. 10.11.0 dropped a major backend rewrite, and while it was broadly functional, it had a lot of rough edges. This release seeks to polish out most of those rough edges and bring better performance to all users.

There are many other small fixes, improvements, changes, and translations. See our draft release notes here or below for the full list of pull requests. You can also view the Web side changelog here.

Note: You must be on Jellyfin 10.10.7+ or 10.11.x (ideally, 10.11.11) before upgrading! If you are not, the upgrade will fail. Ensure you upgrade to one of these versions first!

Note: The initial load of Jellyfin 12.x will run a few migrations and will take several minutes. Please be patient and do not interrupt the process. You can leverage the (newly improved!) startup UI on your local network to see specific progress, or off-network to see general progress, by visiting the server URL in your web browser during startup.

Note: If you install the RC, you should disable all external plugins and reinstall using the unstable plugin repository, or plugins may fail to load and cause unintended side effects.

Installing

This preview release is distributed in all our traditional forms, though not automatically via our Apt repository or latest tag.

  • For all non-Docker environments, you can find the files for manual download in our repository by selecting "Stable Preview" for your OS.
  • For Docker, you can pull the 12.0-rc4 or preview tags.

What's Changed (since v12.0-rc3)

New Contributors

Full Changelog: v12.0-rc3...v12.0-rc4

  •  

12.0 RC3

Door: crobibero
22 Juli 2026 om 03:07

πŸš€ Jellyfin Server 12.0 RC3

We are pleased to announce the third release candidate preview release of Jellyfin 12.0!

This is a preview release, intended for those interested in testing 12.0 before its final public release. We welcome testers to help find as many bugs as we can before the final release.

As always, please ensure you stop your Jellyfin server and take a full backup before upgrading!

A note about versioning

Starting with this release, we are dropping the preceding 10. from our versioning. Thus, 10.11.x -> [10.]12.x = 12.x. The reason is simple: at this point in the project, we don't envision a hard break in the API like we planned way back in the early days, and this version scheme was causing a lot of confusion amongst users about what a "major" release was. For more information, please see the RC1 release notes.

What's new?

The main goal of this release has been performance. 10.11.0 dropped a major backend rewrite, and while it was broadly functional, it had a lot of rough edges. This release seeks to polish out most of those rough edges and bring better performance to all users.

There are many other small fixes, improvements, changes, and translations. See our draft release notes here or below for the full list of pull requests. You can also view the Web side changelog here.

Note: You must be on Jellyfin 10.10.7+ or 10.11.x (ideally, 10.11.11) before upgrading! If you are not, the upgrade will fail. Ensure you upgrade to one of these versions first!

Note: The initial load of Jellyfin 12.x will run a few migrations and will take several minutes. Please be patient and do not interrupt the process. You can leverage the (newly improved!) startup UI on your local network to see specific progress, or off-network to see general progress, by visiting the server URL in your web browser during startup.

Note: If you install the RC, you should disable all external plugins and reinstall using the unstable plugin repository, or plugins may fail to load and cause unintended side effects.

Installing

This preview release is distributed in all our traditional forms, though not automatically via our Apt repository or latest tag.

  • For all non-Docker environments, you can find the files for manual download in our repository by selecting "Stable Preview" for your OS.
  • For Docker, you can pull the 12.0-rc3 or preview tags.

What's Changed (since v12.0-rc2)

New Contributors

Full Changelog: v12.0-rc2...v12.0-rc3

  •  

12.0 RC3

Door: crobibero
22 Juli 2026 om 03:07

πŸš€ Jellyfin Web 12.0 RC3

We are pleased to announce the third release candidate preview release of Jellyfin 12.0!

This is a preview release, intended for those interested in testing 12.0 before it's final public release. We welcome testers to help find as many bugs as we can before the final release.

As always, please ensure you stop your Jellyfin server and take a full backup before upgrading!

A note about versioning

Starting with this release, we are dropping the preceding 10. from our versioning. Thus, 10.11.x -> [10.]12.x = 12.x. The reason is simple: at this point in the project, we don't envision a hard break in the API like we planned way back in the early days, and this version scheme was causing a lot of confusion amongst users about what a "major" release was. For more information, please see the RC1 release notes.

What's new?

The main goal of this release has been performance. 10.11.0 dropped a major backend rewrite, and while it was broadly functional, it had a lot of rough edges. This release seeks to polish out most of those rough edges and bring better performance to all users.

There are many other small fixes, improvements, changes, and translations. See our draft release notes here or below for the full list of pull requests. You can also view the Server side changelog here.

Note: You must be on Jellyfin 10.10.7+ or 10.11.x (ideally, 10.11.11) before upgrading! If you are not, the upgrade will fail. Ensure you upgrade to one of these versions first!

Note: The initial load of Jellyfin 12.x will run a few migrations and will take several minutes. Please be patient and do not interrupt the process. You can leverage the (newly improved!) startup UI on your local network to see specific progress, or off-network to see general progress, by visiting the server URL in your web browser during startup.

Note: If you install the RC, you should disable all external plugins and reinstall using the unstable plugin repository, or plugins may fail to load and cause unintended side effects.

Installing

This preview release is distributed in all our traditional forms, though not automatically via our Apt repository or latest tag.

  • For all non-Docker environments, you can find the files for manual download in our repository by selecting "Stable Preview" for your OS.
  • For Docker, you can pull the 12.0-rc3 or preview tags.

What's Changed (since v12.0-rc2)

New Contributors

Full Changelog: v12.0-rc2...v12.0-rc3

  •  

1.5

Door: LePips
15 Juli 2026 om 06:55

What's Changed

New Features πŸŽ‰

Bug Fixes πŸ› 

Other βš™οΈ

New Contributors

Full Changelog: 1.4...1.5

  •  

v1.8.0.2

Door: thornbill
7 Juli 2026 om 07:34

What's Changed

πŸ”§ Additional changes

⬆️ Dependency upgrades

New Contributors

Full Changelog: v1.7.0.8...v1.8.0.2

  •  

12.0 RC2

30 Juni 2026 om 03:41

πŸš€ Jellyfin Web 12.0 RC2

We are pleased to announce the second release candidate preview release of Jellyfin 12.0!

This is a preview release, intended for those interested in testing 12.0 before it's final public release. We welcome testers to help find as many bugs as we can before the final release.

As always, please ensure you stop your Jellyfin server and take a full backup before upgrading!

A note about versioning

Starting with this release, we are dropping the preceding 10. from our versioning. Thus, 10.11.x -> [10.]12.x = 12.x. The reason is simple: at this point in the project, we don't envision a hard break in the API like we planned way back in the early days, and this version scheme was causing a lot of confusion amongst users about what a "major" release was. For more information, please see the RC1 release notes.

What's new?

The main goal of this release has been performance. 10.11.0 dropped a major backend rewrite, and while it was broadly functional, it had a lot of rough edges. This release seeks to polish out most of those rough edges and bring better performance to all users.

There are many other small fixes, improvements, changes, and translations. See our draft release notes here or below for the full list of pull requests. You can also view the Server side changelog here.

Note: You must be on Jellyfin 10.10.7+ or 10.11.x (ideally, 10.11.11) before upgrading! If you are not, the upgrade will fail. Ensure you upgrade to one of these versions first!

Note: The initial load of Jellyfin 12.x will run a few migrations and will take several minutes. Please be patient and do not interrupt the process. You can leverage the (newly improved!) startup UI on your local network to see specific progress, or off-network to see general progress, by visiting the server URL in your web browser during startup.

Note: If you install the RC, you should disable all external plugins and reinstall using the unstable plugin repository, or plugins may fail to load and cause unintended side effects.

Installing

This preview release is distributed in all our traditional forms, though not automatically via our Apt repository or latest tag.

  • For all non-Docker environments, you can find the files for manual download in our repository by selecting "Stable Preview" for your OS.
  • For Docker, you can pull the 12.0-rc2 or preview tags.

What's Changed (since v12.0-rc1)

Full Changelog: v12.0-rc1...v12.0-rc2

  •  

12.0 RC2

30 Juni 2026 om 04:44

πŸš€ Jellyfin Server 12.0 RC2

We are pleased to announce the second release candidate preview release of Jellyfin 12.0!

This is a preview release, intended for those interested in testing 12.0 before its final public release. We welcome testers to help find as many bugs as we can before the final release.

As always, please ensure you stop your Jellyfin server and take a full backup before upgrading!

A note about versioning

Starting with this release, we are dropping the preceding 10. from our versioning. Thus, 10.11.x -> [10.]12.x = 12.x. The reason is simple: at this point in the project, we don't envision a hard break in the API like we planned way back in the early days, and this version scheme was causing a lot of confusion amongst users about what a "major" release was. For more information, please see the RC1 release notes.

What's new?

The main goal of this release has been performance. 10.11.0 dropped a major backend rewrite, and while it was broadly functional, it had a lot of rough edges. This release seeks to polish out most of those rough edges and bring better performance to all users.

There are many other small fixes, improvements, changes, and translations. See our draft release notes here or below for the full list of pull requests. You can also view the Web side changelog here.

Note: You must be on Jellyfin 10.10.7+ or 10.11.x (ideally, 10.11.11) before upgrading! If you are not, the upgrade will fail. Ensure you upgrade to one of these versions first!

Note: The initial load of Jellyfin 12.x will run a few migrations and will take several minutes. Please be patient and do not interrupt the process. You can leverage the (newly improved!) startup UI on your local network to see specific progress, or off-network to see general progress, by visiting the server URL in your web browser during startup.

Note: If you install the RC, you should disable all external plugins and reinstall using the unstable plugin repository, or plugins may fail to load and cause unintended side effects.

Installing

This preview release is distributed in all our traditional forms, though not automatically via our Apt repository or latest tag.

  • For all non-Docker environments, you can find the files for manual download in our repository by selecting "Stable Preview" for your OS.
  • For Docker, you can pull the 12.0-rc2 or preview tags.

What's Changed (since v12.0-rc1)

New Contributors

Full Changelog: v12.0-rc1...v12.0-rc2

  •  

12.0 RC1

22 Juni 2026 om 18:40

πŸš€ Jellyfin Server 12.0 RC1

We are pleased to announce the first release candidate preview release of Jellyfin 12.0!

This is a preview release, intended for those interested in testing 12.0 before it's final public release. We welcome testers to help find as many bugs as we can before the final release.

As always, please ensure you stop your Jellyfin server and take a full backup before upgrading!

A note about versioning

Starting with this release, we are dropping the preceeding 10. from our versioning. Thus, 10.11.x -> [10.]12.x = 12.x. The reason is simple: at this point in the project, we don't envision a hard break in the API like we planned way back in the early days, and this version scheme was causing a lot of confusion amongst users about what a "major" release was.

Thus, we are now on two digits:

  • The first digit is the major release. Expect signifiant changes between major releases. Do not ever auto-update to a new major release without first checking the release notes, and always take a backup of your server data and config before a major release upgrade.
  • The second digit is the minor release. These are primarily bug and security fix releases, and do not introduce significant feature or functionality changes. You can, usually, safely auto-update between minor releases and should not need a full backup, but it is prudent just in case. You should also ALWAYS strive to run the latest point release as security fixes are embargo'd for at most 2 weeks after the release.

What's new?

The main goal of this release has been performance. 10.11.0 dropped a major backend rewrite, and while it was broadly functional, it had a lot of rough edges. This release seeks to polish out most of those rough edges and bring better performance to all users.

There are many other small fixes, improvements, changes, and translations. See our draft release notes here or below for the full list of pull requests.

Note: You must be on Jellyfin 10.11.x (ideally, 10.11.11) before upgrading! If you are not, the upgrade will fail. I have been informed that I was wrong here, and upgrades from 10.10.7 are also possible, same as 10.11.x!

Note: The initial load of Jellyfin 12.x will run a few migrations and will take several minutes. Please be patient and do not interrupt the process.

Note: If you install the RC, you should disable all plugins and reinstall using the unstable plugin repository, or plugins may fail to load and cause unintended side effects.

Installing

This preview release is distributed in all our traditional forms, though not automatically via our Apt repository or latest tag.

  • For all non-Docker environments, you can find the files for manual download in our repository by selecting "Stable Preview" for your OS.
  • For Docker, you can pull the 12.0-rc1 or preview tags.

What's Changed (since v10.11.x)

New Contributors

Full Changelog: v10.11.11...v12.0-rc1

  •  

12.0 RC1

22 Juni 2026 om 18:40

πŸš€ Jellyfin Server 12.0 RC1

We are pleased to announce the first release candidate preview release of Jellyfin 12.0!

This is a preview release, intended for those interested in testing 12.0 before it's final public release. We welcome testers to help find as many bugs as we can before the final release.

As always, please ensure you stop your Jellyfin server and take a full backup before upgrading!

A note about versioning

Starting with this release, we are dropping the preceeding 10. from our versioning. Thus, 10.11.x -> [10.]12.x = 12.x. The reason is simple: at this point in the project, we don't envision a hard break in the API like we planned way back in the early days, and this version scheme was causing a lot of confusion amongst users about what a "major" release was.

Thus, we are now on two digits:

  • The first digit is the major release. Expect signifiant changes between major releases. Do not ever auto-update to a new major release without first checking the release notes, and always take a backup of your server data and config before a major release upgrade.
  • The second digit is the minor release. These are primarily bug and security fix releases, and do not introduce significant feature or functionality changes. You can, usually, safely auto-update between minor releases and should not need a full backup, but it is prudent just in case. You should also ALWAYS strive to run the latest point release as security fixes are embargo'd for at most 2 weeks after the release.

What's new?

The main goal of this release has been performance. 10.11.0 dropped a major backend rewrite, and while it was broadly functional, it had a lot of rough edges. This release seeks to polish out most of those rough edges and bring better performance to all users.

There are many other small fixes, improvements, changes, and translations. See our draft release notes here or below for the full list of pull requests.

Note: You must be on Jellyfin 10.11.x (ideally, 10.11.11) before upgrading! If you are not, the upgrade will fail. I have been informed that I was wrong here, and upgrades from 10.10.7 are also possible, same as 10.11.x!

Note: The initial load of Jellyfin 12.x will run a few migrations and will take several minutes. Please be patient and do not interrupt the process.

Note: If you install the RC, you should disable all plugins and reinstall using the unstable plugin repository, or plugins may fail to load and cause unintended side effects.

Installing

This preview release is distributed in all our traditional forms, though not automatically via our Apt repository or latest tag.

  • For all non-Docker environments, you can find the files for manual download in our repository by selecting "Stable Preview" for your OS.
  • For Docker, you can pull the 12.0-rc1 or preview tags.

What's Changed (since v10.11.x)

New Contributors

Full Changelog: v10.11.11...v12.0-rc1

  •  

ElegantFin Theme v26.06.06 for Jellyfin

Door: lscambo13
6 Juni 2026 om 21:05

This is the 14th update to ElegantFin.

Key Changes

General UI & Layout Improvements

  • Increased card sizes slightly without reducing the number of visible items on phones.
  • Increased backdrop-card sizes on TV and desktop layouts.
  • Tweaked indicator and Continue Watching progress-bar positioning on phones for more consistent alignment and space efficiency.
  • Continue Watching cards can now optionally be displayed larger than standard cards through --resumeCardScale (#248).
  • Restored the three-dot menu button for accessibility (#279).
  • Added a customisation option that allows the three-dot menu button to be enabled or disabled via --menuButtonVisibility.
  • Tweaked the width of "My Media (Small)" buttons.
  • Increased the top margin inside the hamburger menu.
  • Reduced spacing between cast posters and cast names.
  • Added consistent spacing between icons and text inside buttons, e.g., Sort.
  • Prevented selector mismatches caused by buttons lacking a title attribute, resolving several icon alignment issues.
  • Standardized top-right indicator sizing within cards throughout the theme.
  • Added ellipsis to dropdown menus to prevent long text from overlapping the down-arrows.
  • Fixed an issue where hover overlays could look permanently stuck on newer Jellyfin versions (#290).
  • Fixed an issue that caused some multi-selection checkboxes to not cover the cards fully.
  • Fixed incorrect ordering of items container within Collection views.
  • Fixed multiple cases where library pages could become incorrectly centered or left-aligned.
  • Fixed missing side margins on "Nothing here" messages displayed in some library tabs.
  • Updated to the latest version of the Material Symbols icons.
  • Added a subtle text shadow to card titles.
  • Added icon fallbacks to prevent flashes of invisible text while icons load.
  • Possibly fixed an issue that caused the app-bar to be overlapped by the status bar on some Apple devices (#233).

Music Improvements

  • Replaced artist-name text with clear logos. (#273 - thanks @AhmedRadwan4)
  • Redesigned the artist pages on desktop with dimmer backdrops while prominently featuring clear logos.
  • Added artist page customization options via --artistTitleVisibility, --artistClearLogoVisibility and --artistPageBackground.

Playback Controls & Browser Compatibility

  • Updated "Skip Intro" button styling and position slightly.
  • Updated seek-bar thumb styling to feature a rounder seek handle.
  • Fixed seek-bar thumb styling in Firefox so that it looks as intended on Chromium-based browsers.

Media Bar Add-on Improvements

  • Fixed alignment of the top-right volume toggle inside the Media Bar add-on. (#260 - thanks @ACertainCoder)
  • Reordered the play button to the first position within the buttons container.
  • Prevented border styling from appearing before the slides finished loading to eliminate loading flashes upon page refreshes (#150).
  • Tweaked the layout slightly to increase backdrop visibility.

Custom Media Covers Add-on Improvements

  • Added support for "Anime" and "Sports" library covers. (#281 - thanks @buhbbl)
  • Improved media-cover matching logic by switching to a stronger matching pattern to resolve false matches reported in issue #280.

Performance Improvements

  • Eliminated several complex selectors and layout-specific workarounds.
  • Simplified card-hover overlay animations slightly.
  • Reworked how cards are sized with gap on phones to create a more predictable and maintainable layout system similar to desktops.
  • Added an optional compact version of the icon pack for faster loading in low-bandwidth scenarios. (#288 - thanks @tim-vu)
  • Updated development tools that minify the stable builds for a more optimised output.

Documentation & Maintenance

  • Updated documentation covering card-hover effects and add-on installation instructions.
  • Removed some hardcoded values to improve layout responsiveness.
  • Internal code reorganization.
  • Updated code comments and developer documentation.

You can read the full commit history here.

Additional Notes

  • All the customisation instructions can be found in the README.md
  • Jellyfin Desktop is the new desktop client that should be more compatible with the theme.
  • Jellyfin Media Player and some outdated TVs are not fully supported as they may lack support for newer CSS features.
  • I have switched to a recent Jellyfin Server so older server versions are no longer supported.
  • This is a hobby project. If it helped you, your support really means a lot.

Buy me a coffee

You may use the provided CSS file for self-hosting purposes. Alternatively, you may use the following code snippet to get the latest version via a free CDN.

@import url("https://cdn.jsdelivr.net/gh/lscambo13/ElegantFin@main/Theme/ElegantFin-jellyfin-theme-build-latest-minified.css");

For more detailed information, be sure to read the README.md file.

  •  

10.11.11

6 Juni 2026 om 18:18

πŸš€ Jellyfin Web 10.11.11

We are pleased to announce the latest stable release of Jellyfin, version 10.11.11! This minor release brings several bugfixes to improve your Jellyfin experience. As always, please ensure you take a full backup before upgrading!

You can find more details about and discuss this release on our forums.

Changelog (2)

πŸ“ˆ General Changes

  •  

10.11.11

6 Juni 2026 om 18:18

πŸš€ Jellyfin Server 10.11.11

We are pleased to announce the latest stable release of Jellyfin, version 10.11.11! This minor release brings several bugfixes to improve your Jellyfin experience. As always, please ensure you take a full backup before upgrading!

You can find more details about and discuss this release on our forums.

Changelog (1)

πŸ“ˆ General Changes

  •  

10.11.10

25 Mei 2026 om 01:07

πŸš€ Jellyfin Web 10.11.10

We are pleased to announce the latest stable release of Jellyfin, version 10.11.10! This minor release brings several bugfixes to improve your Jellyfin experience. As always, please ensure you take a full backup before upgrading!

You can find more details about and discuss this release on our forums.

Changelog (1)

πŸ”’ Security

  •  
❌