Jellyfin 12.0 drops the 10 prefix, rewrites the library and gets a new look
Jellyfin 12.0 rebuilds playlists as database rows, adds native book and comic support and makes the Modern UI default, but upgrades cannot be rolled back.

On this page
Jellyfin, the free, self-hosted media server that markets itself as the open-source alternative to Plex and Emby, released version 12.0 on 8 September 2026. It is the project's largest release in years: the database overhaul begun in 10.11 has been turned into real browsing speed, books and comics moved out of a plugin and into the server, the previously experimental web layout is now the default, and a batch of security fixes arrives with a blunt warning that upgrading is a one-way door.
Related reading: Cloudflare Acquires Deno to Make Workers Self-Hosting · Audacity 4.0 Arrives: A Qt Rebuild and the Biggest Update in 26 Years.
The most obvious change is the name. Jellyfin 12.0 drops the leading "10." that had fronted every release since the project forked from Emby in 2018. What would have been 10.12.0 is simply 12.0, and the server now reports its version as 12.0.0. The full notes are on GitHub, and the project announced the release in a forum thread on 8 September.
A version number that finally means something
The reasoning is straightforward, and the team had been signalling it since January. Under the old scheme the first number never moved, so 10.11.0 (a release that rewrote the entire library database) was presented as a routine point update, and people upgraded with the expectations that implied. "A release like 10.11.0 was, by any reasonable measure, a major release - it rewrote the library database - but the version number presented it as a minor update, and people upgraded with expectations to match," the project explains.
From now on, the first digit changes when a release is genuinely major. Jellyfin says the 12.x majors will be the ones that need a backup first, while later minor releases such as 12.1 will be mainly bug and security fixes. That matters practically: anything parsing the version string (a monitoring check, a container tag pin, a deployment script) should be reviewed, because the server now answers with 12.0.0 instead of a 10.x.x value.
The database rewrite finally delivers speed
The performance work is the heart of 12.0, continuing what 10.11 started. Playlists, collections and boxsets were previously stored as one large serialised list inside the parent item, so the database could not inspect them: counting items, showing a single page or removing one title meant loading and rewriting the whole list. Version 12.0 stores every entry as its own row in a new LinkedChildren table, so the database can count, page and edit entries directly. The project's summary is understated: "We aren't finished, but you should notice a big difference when browsing."
The gains reach past playlists. Queries for Continue Watching, Next Up, rewatching, the latest music additions and folder watch counts are faster; heavy database maintenance no longer runs during a library scan; and deleting many items at once no longer fails partway through. As Linuxiac puts it, large playlists, collections and box sets are "noticeably faster", and pages that used to freeze should stop freezing.
Episodes get the alternate-version treatment
Grouping several copies or cuts of one title under a single entry (alternate versions) had been a movies-only feature. In 12.0 it works for TV episodes too, so a broadcast cut and an extended cut, or a 1080p and a 4K copy, can be grouped, with resume data following the version a viewer actually watched. This is also why a full library scan is mandatory afterwards: making versions work for episodes meant changing how version links are stored, so automatically resolved versions must be rebuilt from disk.
Books and comics move into the server
Book support has long lagged behind video in Jellyfin, and 12.0 starts an effort to change that. Most of what the Bookshelf plugin used to do now lives in the server: metadata is read directly from OPF and ComicInfo files; posters are generated for EPUBs and supported comic archives; page counts come from comics and PDFs; names, indexes, years and series are parsed from filenames; and chapters are extracted from audiobooks. The Bookshelf plugin is deprecated, its features split into separate GoogleBooks and ComicVine providers, and a new OpenLibrary plugin supplies metadata and images.
The web client matches: a modern book-library layout with view types, paging and Authors, Collections and Folders tabs; a reading interface redesigned and standardised across book types, with unified fullscreen and swipe navigation for PDFs; working progress indicators for supported eBooks; and background audiobook playback on iOS. The project is candid about the gap: "Books have often taken a backseat in favor of video playback in Jellyfin, and this release is the start of an effort to change that."
A new default look
The layout that shipped as an experimental option is now simply the Modern interface, and on desktop and mobile it is the default for anyone who has not chosen otherwise. The old interface remains available as Legacy; televisions still use the TV layout. The polish that comes with promotion is broad: every built-in theme now derives from a shared CSS-variable base, the library toolbar has been merged into the app bar with a sticky header, collections and playlists tabs appear on every library, and the reader, music-video and mixed-media views were reworked. Smaller additions include a "still watching" prompt, frame-by-frame scrubbing with the comma and period keys, chapter names in the seek-bar bubble, and audio and subtitle language filters.
Search and recommendations become plugin territory
Two systems that used to be fixed are now extensible. The source of "more like this" and suggestion rows can be chosen per library, alongside where administrators pick metadata providers, and ListenBrainz ships with the server as a music-recommendation source built on real listening data. Search works the same way: plugins can add results alongside the built-in search, so integrating another catalogue is now a plugin rather than a fork.
FFmpeg 8.1, Dolby Vision and AV1
On the media side, Jellyfin moves to upstream FFmpeg 8.1, with optimised CUDA transposing and faster OpenCL scaling and tone-mapping, the last on Mali GPUs. HLG tone-mapping now uses the EOTF from BT.2446 Method B, and subtitle writing moves through SubtitleEdit, avoiding the old SSA-to-ASS conversion and its styling loss. Playback gains Dolby Vision in MKV on webOS 25 and newer, AV1 direct streaming on TV clients, direct play of anamorphic video on Tizen, VobSub rendering, and background playback on iOS with the screen off. A long-standing audio/video desync when transcoding video while remuxing audio is fixed.
The security fixes
The release carries security work on both server and web client. Several fixes block crafted requests from reaching files outside the directories Jellyfin should serve: path validation was added to the legacy HLS segment and plugin image endpoints, and path-traversal hardening was extended to image and plugin endpoints and username handling. Others stop the setup wizard being re-run without authentication on a misconfigured server, reject plugin packages with unsafe names, enforce parental filtering more widely, and close cross-site scripting holes in the web client. As Help Net Security notes, the project attaches no CVE identifiers or severity ratings to most of these, so administrators deciding how urgently to patch work from the release notes rather than a score.
The upgrade is a one-way door
The most important thing about 12.0 is a warning, not a feature. The release changes the database schema and rewrites data on first boot, so a backup taken beforehand is the only route back to 10.11. That, plus a list of smaller traps, makes this very different from a routine point update.
Back up before you upgrade
Jellyfin 12.0 rewrites the database on first start and cannot be downgraded to 10.11 without restoring a full backup. Stop the server, copy the data and config directories somewhere safe, and read the release notes before you begin. The first library scan after the migration is required, runs significantly longer than usual, and must not be interrupted.
The requirements are specific. Direct upgrades are supported from 10.10.7 or any 10.11.x release; anything older must go to 10.10.7 first. Third-party plugins built for 10.11 will not load because the server now targets .NET 10, so the project advises removing them before upgrading and re-adding them as authors ship rebuilds. Usernames are now case-insensitive, and two accounts differing only by capitalisation will make the migration fail. A full library scan is required afterwards, and automatically resolved alternate versions look missing until it finishes. Old clients still calling the /emby/ or /mediabrowser/ endpoints, or relying on the deprecated sign-in method, stop connecting, and Debian Bullseye and Ubuntu Focal packages are no longer built. One piece of good news: the planned removal of built-in TLS support has been postponed to a future version.
What it means for self-hosters
Jellyfin's pitch is that it is the free option in a market where Plex and Emby both steer users toward paid tiers and cloud services. A release that spends most of its budget on internal plumbing (relational playlists, migration routines, plugin APIs), rather than headline features says a lot about the project's priorities, but the visible payoff is uneven: users with large, slow libraries will feel a real difference, while users with small ones may mostly notice that the interface moved and that their plugins stopped loading.
A governance backdrop is worth watching. IT-Connect reported in July 2026 that three key people had left the project amid burnout and tensions over AI-generated code, and noted that 12.0 (announced by core-team member Cody Robibero) shows development continuing regardless. The release is unusually candid about what is unfinished, from book series as first-class entities to audiobook chapters, which remain API-only.
What to watch
- Whether the plugin ecosystem catches up. The .NET 10 migration breaks every third-party plugin until its author rebuilds, and that pace decides who can upgrade without losing functionality.
- Whether the new versioning cadence holds. The first digit is now supposed to mean something; 12.1 and beyond will show whether minor releases stay minor.
- How the mandatory first scan behaves at scale. Day-one forum reports ranged from ten minutes to hours depending on library size, and an apparently stuck scan is the likeliest source of support threads.
- Whether the postponed TLS removal happens next time, and whether the new search and recommendation APIs attract the plugins Jellyfin is betting on.
For a hobby server rather than a critical service, the sensible sequence is the one the project repeats: stop the server, take a full backup, check usernames and remove third-party plugins, upgrade with time to spare, and let the first scan finish. The performance and book improvements are real, but 12.0 earns its "major" label precisely because it is not a drop-in update.
Cover image: a screenshot of the Jellyfin web client showing a movie detail page. Jellyfin is free and open-source software; its site content is published under CC BY-ND 4.0 and the software under the GPL, and the screenshot is used here for news coverage of the release.








