Repository navigation
Releases: jellyfin/jellyfin
Release list
12.3
🚀 Jellyfin Server 12.3
We are pleased to announce the latest stable release of Jellyfin, version 12.3! This minor release brings several 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 (7)
🏗️ Enhancements
- Suppresses useless warnings [PR #18337], by @thedreaddpirate
📈 General Changes
- Do not store ratings or gains that are not finite numbers [PR #18267], by @martimarkov
- Fix unbalanced parenthesis in the HalfTopAndBottom image extraction filter [PR #18325], by @cinadr
- Update Microsoft [PR #18418], by @Bond-009
- Treat a year off by one as a tie in TMDb result ranking [PR #18343], by @HaraldNordgren
- Fix crash when a subtitle charset has no .NET encoding [PR #18309], by @p27ZuH6CNAdzr
- Fix crash probing streams without frame size [PR #18243], by @myristate
12.2
🚀 Jellyfin Server 12.2
We are pleased to announce the latest stable release of Jellyfin, version 12.2! This minor release brings several 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 (51)
📈 General Changes
- Replace custom item display preferences in one transaction [PR #18266], by @martimarkov
- Use hvc1 for Dolby Vision profile 8 [PR #18300], by @theopeuchlestrade
- Make the OwnerId and ExtraType/OwnerId indexes partial so extras lookups keep using them [PR #18276], by @Shadowghost
- Enhance internal search provider for multiple scripts [PR #18223], by @excelsior-dev
- Dispose the database context in DeleteTrickplayDataAsync [PR #18269], by @martimarkov
- Fix orphan ItemValues cleanup after deletion [PR #17892], by @nintwentydo
- Fix off-by-one in the optimistic locking retry backoff [PR #18268], by @martimarkov
- Upgrade ATL to 7.18.0 to fix malformed FLAC hangs [PR #18224], by @ScottishTapWater
- Fix EPUB metadata and covers not loading on Windows [PR #18283], by @chino
- Refuse to start a set-up server whose database is missing or empty [PR #18264], by @martimarkov
- Compare local image dates with a one second tolerance [PR #18278], by @Shadowghost
- Only propagate a changed rating to children that follow it [PR #18280], by @Shadowghost
- Recognize numbered sample and trailer files as extras [PR #18255], by @HaraldNordgren
- Recompute the parental rating score whenever an item is saved [PR #18279], by @Shadowghost
- Compare person names without regard to case in the letter range filters [PR #18265], by @martimarkov
- Fix video quality at low bitrates when reducing bit depth [PR #18261], by @nyanmisaka
- Update episode season name after editing the season name [PR #18253], by @theguymadmax
- Fix segment cleaner deleting segments ahead of playback when remuxing MKV [PR #18186], by @klizas
- Fix user preferences when renaming libraries [PR #18236], by @z0rimo
- Fix item display preferences item [PR #18259], by @martimarkov
- Use XmlReader in encoder preset migration tests [PR #18237], by @maghuro
- Don't advance rewatch Next Up past a barely started episode [PR #18202], by @Shadowghost
- Keep an item's user data rows in agreement [PR #18001], by @Shadowghost
- Stop rebuilding the inherited-tag set per row, and count only the people /Persons can return [PR #18093], by @Shadowghost
- Never treat unresolvable libraries as grounds for deletion [PR #18102], by @Shadowghost
- Don't let a failed shutdown cancel an in-process restart [PR #18063], by @Shadowghost
- Match artist creation lookups using CleanName [PR #18005], by @orut34iop
- Serve graphical subtitles as raw files with range support [PR #18168], by @Shadowghost
- Use MusicBrainz artist name first [PR #18192], by @juxuanu
- Skip statistics on an empty library and refresh them after every scan [PR #18196], by @Shadowghost
- Check media directory write permission before generating trickplays [PR #18161], by @thedreaddpirate
- Reconcile missing episodes by episode, not by number [PR #18090], by @Shadowghost
- Apply stereo downmix filter consistently to progressive audio transcodes [PR #18195], by @Shadowghost
- Fix transcoding settings migration failure caused by null EncoderPreset [PR #18059], by @scr4bble
- Fix more rating systems [PR #18057], by @Shadowghost
- Fix ChangeOwnerIdToGuid migration performance [PR #18073], by @Shadowghost
- Retry MusicBrainz requests when the server is busy [PR #18095], by @Shadowghost
- Fix playlist views [PR #18104], by @Shadowghost
- Scope the music library cover image to that library's artists [PR #18148], by @Shadowghost
- Read the image region when determining TMDb image language in
TmdbUtils[PR #18150], by @mateusbandeiraa - Ignore Sample subfolders when resolving movie folders [PR #17964], by @panko
- Don't apply the allowed tags filter to by-name items [PR #18138], by @Shadowghost
- Only regenerate extra names that were generated by the scan [PR #18139], by @Shadowghost
- Skip optimistic expressions when parsing series names [PR #18061], by @panko
- Decode HTML entities in OMDb responses [PR #18096], by @Shadowghost
- Fix the item type name of BaseItemKind.Channel [PR #18132], by @martimarkov
- Log chapter image extraction once per video [PR #18107], by @Jellyfrog
- update tw.json (rating) [PR #18134], by @allexjuang
- Fix typo when parsing codec_tag_string [PR #18164], by @nyanmisaka
- Fix test concurrency [PR #18058], by @Shadowghost
- Fix formatting issue in PlayCommandQueueTests [PR #18079], by @theguymadmax
12.1
🚀 Jellyfin Server 12.1
We are pleased to announce the latest stable release of Jellyfin, version 12.1! This minor release brings several 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 (47)
📈 General Changes
- Stop resolving items with every field where only stored columns are read [PR #18039], by @Shadowghost
- Fix nested unnumbered season folders collapsing onto the first one [PR #18044], by @Shadowghost
- Release a folder's children once its subtree has been scanned [PR #17884], by @Shadowghost
- Enforce channel mediasource id [PR #18037], by @Shadowghost
- Fix Norwegian ratings [PR #18017], by @theguymadmax
- Stop the library monitor from refreshing against a disposed host [PR #18020], by @Shadowghost
- Don't queue by-name items for playback and reject source requests for them [PR #17999], by @Shadowghost
- Fix forced-only not overriding remembered subtitles [PR #17998], by @Shadowghost
- Fix SyncPlay authentication error handling and limit group member wait time [PR #17938], by @Shadowghost
- Fix /UserViews exhausting memory and reporting random child counts [PR #17881], by @Shadowghost
- Fix device access revocation not logging out existing sessions [PR #18026], by @fmarcac
- Fix database optimization memory use and pre-migration backup integrity [PR #17836], by @Shadowghost
- Stop wrong-type alternate version cleanup from recursing [PR #18030], by @Shadowghost
- Fix incorrect color range during CSC after VK tonemapping [PR #18025], by @nyanmisaka
- Preserve active scans when requesting a background library refresh [PR #18006], by @orut34iop
- Clean up orphaned people when deleting items [PR #17897], by @nintwentydo
- Check Live TV access for a single user instead of enumerating all users [PR #18003], by @Shadowghost
- Fix slashed rating handling [PR #18002], by @Shadowghost
- Skip empty ZIP comments for ComicBookInfo [PR #17971], by @Shadowghost
- Fix EPG issues [PR #17935], by @Shadowghost
- Avoid full people scans and writes for unchanged credits [PR #18004], by @orut34iop
- Clean up invalid data before running migrations [PR #17835], by @Shadowghost
- Restore [JsonIgnore] on AggregateFolder.Children [PR #18011], by @Shadowghost
- Correct SyncPlay sessions that report playback at a stale position [PR #17797], by @fmarcac
- Don't let a torn-down WebSocket take down the request handler [PR #17958], by @Shadowghost
- Fix SimilarItemsManager concurrency [PR #17982], by @Shadowghost
- Delete the full ownership closure when deleting items [PR #17873], by @Shadowghost
- Fix versions of a video still listing separately from their group and preserve manual merges [PR #17842], by @Shadowghost
- Preserve library items when directory enumeration fails [PR #18007], by @orut34iop
- Don't resample or sharpen images Skia isn't actually resizing [PR #17956], by @Shadowghost
- Drop dead item data and fix query ordering and bound parameters [PR #17980], by @Shadowghost
- Stop requesting unused credits when looking up a TMDb person [PR #17973], by @Shadowghost
- Use thumbs for image tmdb image preview [PR #17924], by @enter-a-random-username
- Fix playlist encoding recognition [PR #17930], by @Shadowghost
- Populate missing tags array in Filters2 [PR #17898], by @Shadowghost
- Fix collection creation when the collections library was just added [PR #17950], by @Shadowghost
- Don't record a failed refresh as a completed one [PR #17947], by @Shadowghost
- Fix Italian ratings [PR #17933], by @Shadowghost
- Fix ContainsSubPath check [PR #17929], by @Shadowghost
- Fix trickplay using the wrong video stream [PR #17883], by @crobibero
- Fix metadata provider order needing a restart to apply [PR #17939], by @Shadowghost
- Fix decimal point handling in version names [PR #17931], by @Shadowghost
- Improve SeriesNameRegex [PR #17858], by @Shadowghost
- Report image resolutions for TMDb images when no image size is configured [PR #17859], by @Shadowghost
- Fix transcode throttling not enabling on supported systems (caused by race condition) [PR #17906], by @SimonvBez
- Only group episodes as versions on a confident path parse [PR #17890], by @Shadowghost
- Match parental ratings case-insensitively [PR #17844], by @Jellyfrog
12.0
🚀 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.
- Go to Dashboard -> Plugins -> Manage Repositories
- Update the Plugin Repository URL to: https://repo.jellyfin.org/files/plugin/manifest.json
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.tagsupportAccept-Languageheader 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}, andGET /QuickConnect/Initiate - The global subtitle configuration has been removed, subtitle settings are configured per library
.oggis no longer treated as a video extension and is audio only,.aifcis now recognized as audio, and.aiffis no longer treated as an image- Symlinks are only resolved at playback time
- Sorting by name now uses
SortNameandCleanName, and the same cleaning logic is applied toForcedSortName. 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
LinkedChildrentable instead of serialized child lists.OwnerIdandPrimaryVersionIdare real GUID foreign keys, andExtraIdshas 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.dbcan now be stored at a custom path
Operations
- New
--modestartup flag withMediaServer,MigrateSystem, andSeedSystem, 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
HlsAudioSeekStrategyconfiguration 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 pl...
12.0 RC7
🚀 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-rc7orpreviewtags.
What's Changed (since v12.0-rc6)
- Fix children count on virtual items by @Shadowghost in #17718
- Fix ParentId for episodes in virtual seasons by @theguymadmax in #17719
- Support anime provider ids on season folders by @Shadowghost in #17731
- Count a season's episodes by the season they belong to by @Shadowghost in #17735
- Filter search candidates by user access in a single query by @Shadowghost in #17739
- Fix formatting and test by @Shadowghost in #17744
- Enforce permissions on similar items by @Shadowghost in #17729
- Fix item counts on the by-name endpoints by @Shadowghost in #17724
- Fix ListenBrainz settings and similar item defaults by @Shadowghost in #17748
- Fix recursive handling for LinkedChildren by @Shadowghost in #17752
- Enforce reliable processing order in PeopleValidationTask by @Shadowghost in #17750
- Add progress logging to data migrations by @Shadowghost in #17743
Full Changelog: v12.0-rc6...v12.0-rc7
12.0 RC6
🚀 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-rc6orpreviewtags.
What's Changed (since v12.0-rc5)
- Update dependency z440.atl.core to 7.16.0 by @renovate[bot] in #17551
- Fix FindArtists by @theguymadmax in #17604
- Update Microsoft to 10.0.11 by @renovate[bot] in #17615
- Fix unit test for localization of Artists in DE by @IDisposable in #17633
- Fix other two unit test for localization of Artists in DE by @IDisposable in #17637
- Recognize WEB-DL release tags in video names by @st7105 in #17636
- Update github/codeql-action action to v4.37.7 by @renovate[bot] in #17630
- Update dependency Microsoft.NET.Test.Sdk to 18.9.0 by @renovate[bot] in #17638
- Update dependency dotnet-ef to v10.0.11 by @renovate[bot] in #17614
- Fix large playlist persistence with WhereOneOrMany by @martin-77 in #17655
- Fix SQLite variable limit in child count batches by @martin-77 in #17658
- Update Microsoft to 5.9.0 by @renovate[bot] in #17665
- Prevent orphaned user permissions and preferences by @m0g3r in #17643
- Fix GitHub URL typo in CONTRIBUTORS by @FirmaSpring in #17659
- Use client-reported position for idle playback cleanup by @itsb in #17631
- More resilient MusicBrainz lookup by @Shadowghost in #17670
- Stop user updates from orphaning permission and preference rows by @Shadowghost in #17645
- Fix latest items for mixed libraries by @theguymadmax in #17678
- Allow direct play for HDHomeRun Live TV tuners by @theguymadmax in #17682
- Fix GHSA-wwwm-px48-fpvq by @crobibero in #17685
- Optimize query helper memory by @Shadowghost in #17607
- Safeguard against invalid provider ids by @Shadowghost in #17584
- Fall back to the ancestor filter when a view has no top parents by @Shadowghost in #17691
- Mark breakOnNonKeyFrames as XMLIgnore by @Shadowghost in #17698
- Look up people by item via the credit map instead of a full scan by @Shadowghost in #17700
- Fix English metadata blocking localized providers ranked below it by @Shadowghost in #17619
- Fix series merging leaking across libraries and under-counting merged children by @Shadowghost in #17693
- Fix person metadata not being fetched on demand or by the people task by @Shadowghost in #17702
- Update dependency UTF.Unknown to 2.7.0 by @renovate[bot] in #17697
- Say which image and item failed instead of logging a blank path by @Shadowghost in #17711
- Fix OMDB People handling by @Shadowghost in #17710
- Fix IsPlayed and IsUnplayed sorting for shows and collections by @LTe in #17713
- Stop deriving user view ids from their localized name by @Shadowghost in #17714
- Build a TMDb series cast from the aggregated credits by @Shadowghost in #17716
- Delete credits nothing maps to and bound item-by-name folder names by @Shadowghost in #17715
- Persist the refresh stamp so the people task stops redoing its work by @Shadowghost in #17709
New Contributors
- @st7105 made their first contribution in #17636
- @martin-77 made their first contribution in #17655
- @m0g3r made their first contribution in #17643
- @FirmaSpring made their first contribution in #17659
- @itsb made their first contribution in #17631
Full Changelog: v12.0-rc5...v12.0-rc6
12.0 RC5
🚀 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-rc5orpreviewtags.
What's Changed (since v12.0-rc4)
- Degrade ForceKeepAlive logs to debug by @Shadowghost in #17528
- Only treat series and seasons as resumable folders by @Shadowghost in #17523
- Update github/codeql-action action to v4.37.6 by @renovate[bot] in #17493
- Update dependency SharpCompress to 0.50.4 by @renovate[bot] in #17507
- Keep folder extras with the item that owns the folder by @Shadowghost in #17524
- Revert "Refresh Live TV channel icons on every guide update." by @theguymadmax in #17549
- Fix PCM audio transcoding to wav returning HTTP 500 and headerless output by @vdatanet in #17537
- Improve People deduplication, fix search and restrict ItemByName responses by @Shadowghost in #17466
- Parse ReplayGain album gain field by @Florin-Popescu in #17315
- Fix concurrent ffmpeg segment racing by @gnattu in #17536
- Switch SQLite connection Cache to Private by @IDisposable in #17558
- Speed up UpdateOrInsertItems for related information by @IDisposable in #17554
- Fix captured (and discarded) Execute exceptions by @IDisposable in #17559
- Fix disabled plugins being re-enabled on restart by @Shadowghost in #17521
- Delete old related info in bulk as late as possible in UpdateOrInsertItems by @IDisposable in #17555
- Clear metadata provider cache when provider parts are registered by @rlauuzo in #17525
- Fix by-name endpoints reporting TotalRecordCount=0 next to a populated Items array by @vdatanet in #17541
- fix(images): disambiguate progress overlay cache keys by @GOvEy1nw in #17492
- Batch people lookups when building item DTOs by @obiwantoby in #17571
- Add warning that PessimisticLockBehavior is unsafe by @IDisposable in #17560
- Cleanup and simplify query helpers by @Shadowghost in #17563
- Stop image endpoints from upscaling beyond the source resolution by @vavallee in #17569
- fix: correct IsAiring negation to exclude airing items by @TOomaAh in #17588
- fix: bound remote provider pagination by @TOomaAh in #17590
- Fix assemblies by @Shadowghost in #17582
- Fix PersonTypes not applied when filtering by person by @theguymadmax in #17597
- Bugfix: #17547 | Batching MediaSourceCount into one call by @obiwantoby in #17576
- Fix master build by @Shadowghost in #17599
- Fix missing ItemRemoved events and search fallback after access filtering by @Shadowghost in #17579
- Fix EF core designer drifts by @Shadowghost in #17570
New Contributors
- @vdatanet made their first contribution in #17537
- @Florin-Popescu made their first contribution in #17315
- @rlauuzo made their first contribution in #17525
- @GOvEy1nw made their first contribution in #17492
- @obiwantoby made their first contribution in #17571
- @vavallee made their first contribution in #17569
- @TOomaAh made their first contribution in #17588
Full Changelog: v12.0-rc4...v12.0-rc5
12.0 RC4
🚀 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-rc4orpreviewtags.
What's Changed (since v12.0-rc3)
- Update github/codeql-action action to v4.37.3 by @renovate[bot] in #17398
- perf: avoid unnecessary list allocation in CheckForIdlePlayback by @mbastian77 in #17411
- Drain stderr and stdout concurrently for encoder validation by @gnattu in #17430
- Check the "name" tag for audio/subtitle probe to fix MP4 not showing correctly - Fixes issue #17418 by @rwebster85 in #17419
- Apply cleaning logic on ForcedSortName by @Shadowghost in #17402
- Fix play queue index handling in SyncPlay by @Eneo-org in #17234
- Skip ComicInfo parsing if none exists by @Shadowghost in #17423
- Avoid NRE when sorting by user-dependent keys without a user by @paoloantinori in #17395
- remove ogg from video extensions since it should only be used for audio by @dkanada in #17437
- Fix incorrect year on local trailers by @Shadowghost in #17399
- Fix hyphenated numbers in episode titles parsed as multi-episodes by @Shadowghost in #17442
- Update dependency SharpCompress to 0.50.1 by @renovate[bot] in #17443
- Reduce correlated subqueries to improve query performance by @Shadowghost in #17422
- Fix series merging by @Shadowghost in #17417
- Fix missing collection folder posters after initial scans. by @elio42 in #16409
- Fix 3D format detection when the tag is the last token of the path by @TowyTowy in #17310
- Update dependency FsCheck.Xunit.v3 to 3.3.4 by @renovate[bot] in #17448
- Update danielpalme/ReportGenerator-GitHub-Action action to v5.5.11 by @renovate[bot] in #17459
- Update actions/stale action to v11 by @renovate[bot] in #17461
- Implement AudioDb artist search by @Shadowghost in #17424
- Allow duplicate LinkedChildren for Playlists by @Shadowghost in #17416
- Reevaluate pending migrations after each one instead of per stage by @Shadowghost in #17455
- Queue person metadata refresh instead of blocking the item request and fix ItemCounts by @Shadowghost in #17460
- Fix (Un)Played filter correctness and performance by @Shadowghost in #17463
- Skip SIDX in fMP4 HLS segments by @alchemyyy in #17501
- Fix storage info lookup for Windows by @theguymadmax in #17500
- Add Tmdb missing episode provider by @Shadowghost in #17147
- Fix Live TV returning unreachable "server-local" streaming URLs to clients. by @WizardOfYendor1 in #17298
- Fix video version links being read from stale serialised item data instead of the LinkedChildren table by @Shadowghost in #17482
- Fix AdjacentTo being ignored on non-recursive item queries by @Shadowghost in #17486
- Use CleanName when sorting by name by @theguymadmax in #17503
- Allow client-rendered graphical subtitles during remux by @altqx in #17512
- Fix extras naming and version assignment by @Shadowghost in #17456
New Contributors
- @rwebster85 made their first contribution in #17419
- @paoloantinori made their first contribution in #17395
- @elio42 made their first contribution in #16409
- @alchemyyy made their first contribution in #17501
Full Changelog: v12.0-rc3...v12.0-rc4
12.0 RC3
🚀 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-rc3orpreviewtags.
What's Changed (since v12.0-rc2)
- Fix Book collections speed issues by @IDisposable in #15954
- Rework bitrate reporting by @Shadowghost in #17170
- Use Enumerable.LeftJoin for activity log user query by @obrenoalvim in #17175
- Fix NullReferenceException in GetStreamingState for closed live streams by @zachhide in #17206
- Fix Swedish rating by @theguymadmax in #17209
- Close sessions for lost WebSockets to prevent zombie SyncPlay groups by @Eneo-org in #17079
- Update Microsoft to 5.6.0 by @renovate[bot] in #17225
- Fix folder view by @theguymadmax in #17222
- Allow changing capitalization of usernames by @Bond-009 in #17229
- Fix ghost entries when deleting library paths by @theguymadmax in #17231
- Fix parental rating lookup for multi-rating entries by @theguymadmax in #17239
- Fixes for multi version handling by @Shadowghost in #17044
- Use InvariantCulture when parsing machine-generated dates by @iderex in #17238
- Don't throw on logout if session does not exist by @Shadowghost in #17228
- Fix actor images not displayed until clicked by @johnpc in #16668
- Update CI dependencies by @renovate[bot] in #17220
- Fix Greece parental ratings by @theguymadmax in #17268
- support external images for audiobooks by @dkanada in #17287
- Check numeric rating value after splitting country code by @theguymadmax in #17273
- Fix incorrect protocol used for subtitle charset detection by @theguymadmax in #17306
- Fix additional parts for non-admins by @Shadowghost in #17266
- Allow SeriesName to be editable from Item Metadata (books) by @jordanmichaelrushing in #17250
- Update Microsoft by @renovate[bot] in #17330
- Add Novel job mapping to the Writing department by @theguymadmax in #17248
- Fix max login attempts by @theguymadmax in #17274
- Update dependency dotnet-ef to v10.0.10 by @renovate[bot] in #17331
- Limit similar items to user accessible libraries by @Shadowghost in #17337
- Add XML docs to DeviceId and remove CS1591 suppression by @mbastian77 in #17338
- Add XML docs to provider lookup info types and remove CS1591 suppressions by @mbastian77 in #17339
- Add XML docs to small DLNA model types and remove CS1591 suppressions by @mbastian77 in #17340
- Add XML docs to small session model types and remove CS1591 suppressions by @mbastian77 in #17344
- Add XML docs to small channel types and remove CS1591 suppressions by @mbastian77 in #17343
- Revert setting default BaseItemKind for CollectionType by @theguymadmax in #17348
- Update github/codeql-action action to v4.37.1 by @renovate[bot] in #17359
- Update actions/setup-dotnet action to v6 by @renovate[bot] in #17354
- Fix path transversal exposure in Plugins by @IDisposable in #17191
- Remove episode image override hack by @Shadowghost in #17280
- Update season and episode SeriesName when renaming a series by @theguymadmax in #17326
- Fix Identify returning wrong images by @theguymadmax in #17151
- Fix format negotiation in hybrid SW decode and CUDA tonemap pipeline by @nyanmisaka in #17334
- Remove PlaybackPositionTicks from MediaSourceInfo by @Shadowghost in #17327
- Fix potential garbled text in FFmpeg logs on Windows by @nyanmisaka in #17288
- Show production companies under TV Shows' Studios by @Rant423 in #17246
- Prevent ffmpeg from hanging extracting subtitles by @IDisposable in #17297
- Fix Swagger UI auth docs (#12990) by @cha5u5 in #16910
- Add XML docs to small entity interfaces and remove CS1591 suppressions by @mbastian77 in #17375
- Fix Resume query performance by @Shadowghost in #17365
- Normalize invalid PTS from containers for Trickplay generation by @nyanmisaka in #17304
- Keep authenticated user entity in sync with persisted login timestamps by @ElianCodes in #17302
- normalize common formats for creator names in OPF data by @dkanada in #17291
- Fix linked whitespace after image badges in
README.mdby @kaunkrishna in #17382 - Remove libpostproc check for ffmpeg version validation by @gnattu in #17384
- Update actions/setup-python action to v7 by @renovate[bot] in #17386
- Fix artists being displayed with albums by @theguymadmax in #17252
- Add TVDB provider ID support for movies by @theguymadmax in #17255
- Fix SchedulesDirect image limit recognition by @Shadowghost in #17347
- Sort trailers for TV Shows by @theguymadmax in #17204
- Add additional attribute aliases and improve attribute detection by @sjakub in #17254
- Fix race condition in concurrent subtitle conversion by @LTe in #17342
- Make RequestHelpers.GetOrderBy generic and reuse it in ActivityLogController by @damienmeur in #17324
- Fix: Fetch the correct row matching the most up to date file by @jorda...
12.0 RC2
🚀 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-rc2orpreviewtags.
What's Changed (since v12.0-rc1)
- Fix too many SQL variables in DeleteItem for large batch deletes by @joshuaboniface in #17153
- Don't run heavy DB tasks while scan is running by @Shadowghost in #17182
- Fix local Comic book plugin registration by @Shadowghost in #17188
- Fix Live TV tuner not releasing by @theguymadmax in #17178
- Fix localization lookup by @Shadowghost in #17187
- Fix embedded lyrics not updating on replace all refresh by @theguymadmax in #17134
- Revamp startup UI for visual style and usability by @joshuaboniface in #17154
- Use Convert.ToHexStringLower for Schedules Direct password hash by @obrenoalvim in #17174
- Live TV: re-fetch channel icons on guide refresh by @danieltutuianu in #16914
- Reject unsafe plugin package names in installer by @dfederm in #17013
- Batch duplicate-cleanup deletes in merge migrations by @Shadowghost in #17162
- Remove orphaned people by @theguymadmax in #17140
- Update CI dependencies by @renovate[bot] in #17176
- Update dependency Microsoft.NET.Test.Sdk to 18.7.0 by @renovate[bot] in #17167
- Update swashbuckle-aspnetcore monorepo to 10.2.3 - autoclosed by @renovate[bot] in #17141
- Update actions/checkout action to v7 by @renovate[bot] in #17131
New Contributors
- @obrenoalvim made their first contribution in #17174
- @danieltutuianu made their first contribution in #16914
Full Changelog: v12.0-rc1...v12.0-rc2