How to Read Ebooks from Jellyfin on Android
Jellyfin can store your ebook library, but it can't read one to you on a phone. Here is how to get EPUBs off your Jellyfin server and into a proper Android reader.
Jellyfin is very good at holding on to things. Films, music, photos — and, if you have set up a Books library, your ebooks too. What it is not good at is reading them. The web player opens an EPUB in a bare-bones viewer with no font control, no offline copy, and no memory of where you stopped once you switch devices.
So the usual question comes up: can I just read my Jellyfin books on my phone? Yes. You need a reader app that talks to Jellyfin rather than trying to make Jellyfin be the reader.
First, get the library shaped right
Jellyfin will index a Books library happily, but it is much less fussy than it should be about structure, and a messy folder gives you a messy shelf on every device afterwards.
Two things are worth doing before you connect anything:
- One folder per author, one folder per book. Jellyfin picks up metadata from folder names far more reliably than from filenames.
- Keep covers next to the file. A
cover.jpgsitting beside the EPUB is the single biggest difference between a library that looks like a bookshelf and one that looks like a file manager.
If you already keep your library in Calibre, point Jellyfin at the Calibre folder rather than exporting a copy. Calibre’s layout is already one-folder-per-book, and it writes the cover in the right place.
Three ways to get the books onto your phone
Copy them across by hand
Perfectly reasonable if your library is small and mostly static. Plug the phone in, drag a folder across, open it in any reader. The catch is that nothing is kept in step — a book you finish on your phone is still marked unread everywhere else, and new additions do not appear until you remember to copy them.
Use the Jellyfin web player
Works, requires nothing extra, and is genuinely fine for a quick look at a reference PDF. It is not somewhere you want to read a novel: there is no offline copy, so a tunnel or a plane ends your reading session, and the typography controls are minimal.
Use a reader that connects to Jellyfin directly
This is the one worth setting up. A reader that speaks to your server can list what is there, download the books you actually want to read, and — crucially — push your reading position back so every device agrees.
Setting it up with Shellf
Shellf is an Android reader built around this exact problem. The connection takes about a minute:
- In Jellyfin, go to Dashboard → Plugins → Repositories, press +, and add the Book
Reader repository:
https://raw.githubusercontent.com/codevardhan/jellyfin-plugin-bookreader/main/manifest.json - Open Catalog, find Book Reader under General, install it, and restart Jellyfin.
- Open Shellf on your phone, go to Settings → Jellyfin → Connect, and enter your server
address — the same
http://your-server:8096you use in a browser. - Sign in once. Your Books library appears on the shelf.
You need Jellyfin 10.11 or newer. If you would rather not add a repository, the releases page has a zip you can drop into your plugins folder by hand.
From there, tap a book to download it. It lives on the phone from that point on, so the train, the plane and the patchy hotel wifi are all fine. When you next have a connection, your position goes back to the server and forward to your other devices.
If you read on more than one device
The thing that usually goes wrong with sync is position. Most apps remember a page number, which means changing font size on your tablet lands you in the wrong chapter on your phone. Shellf tracks where you are in the text rather than on the screen, so a bigger font on a smaller device still puts you on the right sentence.
If you delete books
Delete a book on the phone while offline and it stays deleted once you reconnect. This sounds obvious; a surprising number of sync setups will helpfully re-download everything you just cleared out.
What about remote access?
You do not need to expose Jellyfin to the open internet to make this work. On your home network it just works. Away from home, the tidy answer is a VPN back to your own network — Tailscale or WireGuard both work and both take less setup than port forwarding, with none of the risk of leaving a media server facing the public web.
Or download what you want before you leave. Since the books live on the phone, offline is the normal state of affairs rather than a degraded mode.
Worth knowing
- Shellf works without Jellyfin. If you are only here for the reader, skip all of the above and point it at a folder.
- The plugin is free and open source (GPLv3), separately from the app.
- Comics work the same way. See the comics and manga guide for the bits that differ.