Jellyfin's new big release reworks book support and playlists but needs plugins rebuilt

Jellyfin 12.0 is out — the project has stopped putting "10." in front of everything, so what would have been 10.12.0 is simply 12.0.
The 10 never changed, so people judged a release by its middle number, which always looks minor. That caught users out with 10.11.0, which rewrote the entire library database but read as a routine patch. Now, the first number changes when a release is big.
What's changing
Playlists and collections used to sit as one long list crammed inside the parent item. They were invisible to the database, so getting an item count or rendering a single page meant loading and unpacking the whole thing. Similarly, removing one track meant writing the entire list back out. Every entry is now its own row. 'Continue Watching', 'Next Up', artist lookups and folder watch counts should feel quicker as well.
Books are one of the main upgrades in this release. They were propped up by the Bookshelf plugin for years. Now, most of that work can be handled within the server. It reads OPF, ComicInfo and ComicBookInfo metadata, generates covers for EPUBs and every supported comic archive, pulls page counts out of PDFs, and extracts chapters from audiobooks. Bookshelf itself is split into ComicVine and GoogleBooks providers; there's also a new OpenLibrary plugin alongside. Plus, episodes now support alternate versions.
Elsewhere, the Modern web layout is now the default on desktop and mobile and the old one is called Legacy, transcoding moves to FFmpeg 8.1, and there are security fixes covering path traversal and cross-site scripting.
You need to be on 10.10.7 or a 10.11.x build, a full library scan afterwards is mandatory, third-party plugins stay broken until their authors rebuild against .NET 10, and the old /emby/ and /mediabrowser/ endpoints are gone. Before upgrading, it's advisable to read the detailed release notes here.









