A cozy home media setup displays digital books and artwork across a laptop, phone, tablet, and TV.
Jellyfin's new stable release arrived with a promise that book people have waited years to hear: books, comics and audiobooks as proper library citizens rather than plugin-powered afterthoughts. How-To Geek writer Andy Betts says it has changed his routine. After about eight years with Calibre as his eBook manager, he now uses Jellyfin 12 for everyday access to his books and audiobooks. His reading is more nuanced than the headline suggests, and so is the picture from Jellyfin's own release notes.

A cozy home media setup displays digital books and artwork across a laptop, phone, tablet, and TV. What actually changed in Jellyfin 12.0​

Jellyfin 12.0 is the project's new stable release, and it is what would have been 10.12 under the old numbering, with the leading "10" dropped. Books are one of its two big themes. The project calls this release the start of an effort to improve book support, and says most of what the Bookshelf plugin did now lives in the server.

The server-side changes, per the release notes:

  • Book metadata is read directly from OPF and ComicInfo files, or from ComicBookInfo comments, with no plugin.
  • Posters are generated for EPUBs and every supported comic archive format, and external covers work for audiobook files.
  • Name, index, year and series come from book filenames, and comic filenames can supply volume and chapter numbers.
  • Page counts are pulled from comic archives and PDFs, and chapters are extracted from audiobooks.
  • Bookshelf is split into GoogleBooks and ComicVine providers, a new OpenLibrary plugin supplies metadata and images, and ISBN external IDs and links are supported.

The web client got its own upgrades:

  • A Modern book library layout with view types and paging, plus Authors, Collections and Folders tabs.
  • Book pages show author information, and author pages list their books and audiobooks.
  • A redesigned reading interface, standardized across book types, with unified fullscreen behavior and swipe navigation for PDFs.

Jellyfin's release post also lists working progress indicators for supported eBooks, sorting by index number and release date, better EPUB font-size selection, and background audiobook playback on iOS. The Bookshelf plugin itself is now deprecated.

Formats and folder layout​

Betts says Jellyfin is fussy about folder structure. Jellyfin's Books documentation backs him up. It says to organize content by type (Audiobooks, Books, Comics), then optionally by author, with each book in its own folder. Per the docs:

  • Audiobooks: most common audio extensions work. Audiobook folders can also hold a content.opf and a cover image.
  • eBooks and comics: the supported formats are AZW, AZW3, CB7, CBR, CBT, CBZ, EPUB, MOBI, PDF, ZIP, RAR and 7z.
  • Not supported: read-along audiobooks.
  • Metadata: EPUBs can carry embedded metadata. Other formats can use an external content.opf, metadata.opf or ComicInfo.xml. Online providers include GoogleBooks, ComicVine and OpenLibrary.
  • Covers: external images can be named folder, poster or cover for primary art. banner, logo, and thumb or landscape cover the other image types.
  • FLAC caveat: FLAC files with embedded WebP images or ID3 tags may fail to play in some browsers. Jellyfin's fix is to enable the "Always remux flac" setting.

Betts also says you should create a separate library per content type, with Content Type set to Books. That is his setup report. The documentation I could check specifies the folder organization but not that exact library-creation sequence. Treat the separate-libraries approach as a sensible way to follow the by-type advice, not a verified rule.

Why his chapters went missing​

Betts says his audiobook chapters weren't recognized, and he fixed that by using the Moonfin client, which does support chapters. That might look like it contradicts the release notes. It probably doesn't. JellyWatch's release breakdown describes audiobook chapters as "available via the API; client support is coming". If that is right, the server can extract chapters, but a given client still has to display them. Chapter data also has to exist in the file in a form Jellyfin can read. So a client switch is a reasonable workaround. The server feature and the client experience are separate things.

Calibre isn't dead yet​

Betts is candid about Calibre's remaining role. Jellyfin handles browsing, collections, favorites and sharing across his devices. It can't repair broken formatting or convert files. He still uses Calibre to fix misplaced page breaks, shrink image-heavy files and convert rarer formats. Jellyfin's own documentation lists metadata and covers as things it can read or generate. It doesn't describe editing or conversion tools.

It's best to read this as a division of labor:

TaskJellyfin 12Calibre (per the author's usage)
Central library and device accessPrimary toolNot needed day to day
Browse by author, collections, favoritesYesYes
Fix formatting errorsNoYes
Convert or shrink filesNoYes

His reading experience also matters. He calls Jellyfin's eBook reader basic and sends books to the Kindle app, which costs him Jellyfin's progress syncing. The release notes say progress indicators are back, and he accepts the tradeoff. Your reader and device mix will decide how much that matters.

Before you upgrade​

Jellyfin 12.0 is not a casual update, and the book features come with real housekeeping. The release post says:

  • The release changes the database schema and rewrites data on first boot, so a backup is the only way back. Stop Jellyfin and make a full manual backup of the data and config directories first.
  • You must be on 10.10.7 or any 10.11.x release. Anything older should go to 10.10.7 first.
  • A full library scan is required afterward, and the first one will take significantly longer than normal.
  • Remove third-party plugins before upgrading. Plugins built for 10.11 won't load on 12.0 until their authors update them. Official plugins have been updated.
  • Usernames are now case-insensitive. Two accounts that differ only by capitalization will make the database migration fail.
  • Very old clients may break. Legacy /emby/ and /mediabrowser/ addresses are gone, and the deprecated sign-in method is disabled.
  • The release includes security fixes on both server and web client, which the project cites as a reason to upgrade rather than stay put.
  • After upgrading, hard refresh your browser (Ctrl+Shift+R) if the interface misbehaves. Jellyfin blames stale cached assets for most such glitches.

One more wrinkle: an XDA Developers piece on a preview build says the Bookshelf plugin had to be added before the books library option appeared. That was a preview build. Jellyfin's final notes say most of that functionality is now in the server. If your libraries look odd after migrating, check what your install actually shows rather than assuming.

The takeaway​

Jellyfin 12.0 makes a convincing case for a single self-hosted server that also covers books, comics and audiobooks. The release notes confirm metadata, covers, chapters, page counts and a much better browsing layout. Betts's experience shows the rough edges that remain: a plain reader, client-dependent chapter support, and no repair or conversion tools. If you already run Jellyfin and keep a tidy, per-book folder tree, the upgrade is tempting. Back up first, and keep Calibre around for file maintenance.

 

References

  1. Jellyfin just replaced my 8-year-old Calibre setup with its new eBook and audiobook upgrades How-To Geek 2026-10-21T20:16:17+00:00
  2. Jellyfin 12.0 Is Here: New Versioning, Native Books, Faster Playlists, FFmpeg 8.1, and Major Security Fixes — JellyWatch Blog jellywatch.app
  3. Books | Jellyfin jellyfin.org