Tech News

Jellyfin 12.0 Is Here: What’s New and What to Know Before Upgrading

Jellyfin 12.0 is now available, and it brings some important changes — or rather interesting ones — starting with a new database schema and a new default interface. Here’s what you need to know.

As a reminder, Jellyfin is a free, open source media server often presented as the alternative to Plex, while also being an alternative to Emby. It lets you centralize movies, TV shows, music, and books on a personal server, NAS, or Docker container, then stream them to all your devices. If you want to deploy it at home, my tutorial for installing Jellyfin on a Synology NAS with Docker is still relevant.

Before talking about Jellyfin 12.0, I want to remind you that Jellyfin has been through a rough patch. Last July, I reported the departure of three key people from the Jellyfin project, amid burnout and tensions around AI-generated code. This 12.0 release, announced by Cody Robibero from the Core Team, shows that development is continuing anyway. And that’s a good thing!

The first surprise is that this really is version 12.0. That suggests a major release, and therefore no Jellyfin 10.12. But in reality, you need to read it differently, because this is more of a drop of the "10." prefix: it had not meant anything for years.

"A release like 10.11.0 was, by any measure, a major release (it rewrote the library database), but the version number presented it as a minor update," explains the Jellyfin team. From now on, the first digit changes when the release is significant. If you have a deployment script, monitoring probe, or container tag that parses the version string, keep that in mind.

What Changes in Jellyfin 12.0

Now let’s talk about the new features in Jellyfin 12.0. First of all, the database redesign started with Jellyfin 10.11 is finally delivering something concrete: performance.

"Jellyfin 10.11.0 completed the redesign of how the library database works, which paved the way for the performance improvements in this release. We’re not quite done yet, but you should notice a clear difference when browsing.", we can read.

Here are the most important changes:

  • Reworked playlists and collections. Previously, a playlist was stored as one large indivisible list. Counting items, displaying a page, or removing a title required loading and rewriting everything. Each item now has its own row in the database. Large playlists, collections, and box sets should be more responsive.
  • Pages that no longer freeze. The "Continue Watching", "Up Next", latest music additions, and watch counts on folders have been optimized. Heavy database maintenance no longer runs during a library scan.
  • Multiple versions for episodes. A TV series with both a 1080p copy and a 4K copy can now be grouped the same way Jellyfin already did for movies. Playback resume follows the version actually watched by the user.
  • Books and comics integrated into the server. Most of the Bookshelf plugin’s features are now built directly into Jellyfin itself: reading OPF and ComicInfo metadata, generating cover art for EPUB and comic archives, PDF page counts, extracting chapters from audiobooks. Direct consequence: the Bookshelf plugin is deprecated.
  • Extensible recommendations and search. The source of suggestions can be selected per library. Plugins can also inject their own results into search.

On the media side, Jellyfin moves to FFmpeg 8.1, with CUDA and OpenCL optimizations, better Dolby Vision support, and direct AV1 streaming on TV clients. You’ll also notice a change in the interface, since the one previously considered experimental is now officially called the Modern interface. You won’t be able to miss it, because it becomes the default on desktop and mobile (unless you made an explicit choice). The old interface remains available under the name Legacy.

Before Upgrading: Read This

This Jellyfin release changes the database schema and rewrites data the first time the application starts on the new version. If something goes wrong, a backup is the only way to roll back. So take precautions: back up your data and configuration directories.

Also, to avoid a few headaches, you should know this:

  • Starting version before upgrading. You must be on 10.10.7 or any 10.11.x release. If you are below that, upgrade to 10.10.7 first.
  • User names. They are becoming case-insensitive. Two accounts that differ only by capitalization will cause the migration to fail.
  • Remove third-party plugins. The target server now runs .NET 10 and several interfaces have changed. Plugins compiled for 10.11 will not load. Official plugins have already been updated.
  • Full scan required after the update. Automatically resolved alternative versions are deleted and rebuilt. This first scan will take much longer than usual, and you must not stop the server during migrations.

"This release includes several security fixes, both on the server and in the Web client. Some of them notably prevent a specially crafted request from accessing files located outside the directories Jellyfin is supposed to expose.", we can read. XSS vulnerabilities are also mentioned.

Find all the details in the official Jellyfin announcement.

author avatar
Florian Burnel Co-founder of IT-Connect
Systems and network engineer, co-founder of IT-Connect and Microsoft MVP "Cloud and Datacenter Management". I'd like to share my experience and discoveries through my articles. I'm a generalist with a particular interest in Microsoft solutions and scripting. Enjoy your reading.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.