Skip to content
Go back

Audiobookshelf vs Booksonic: Self-Hosted Audiobooks

By SumGuy 8 min read
Audiobookshelf vs Booksonic: Self-Hosted Audiobooks

You Don’t Own Your Audible Library

Here’s a fun thing Audible will never put in a marketing email: you don’t own a single book you bought. You own a license. Audible revokes access, changes terms, or just goes down at 2 AM and suddenly your 400-book library is a subscription you forgot to renew.

Self-hosting your audiobook collection is the same energy as running your own Plex server — you paid for the content, you store it, you stream it. No DRM, no monthly fee, no “this title is no longer available in your region.”

Two contenders worth knowing: Audiobookshelf (ABS) and Booksonic. One is a modern, purpose-built audiobook and podcast server. The other is a Subsonic fork that someone bolted audiobook support onto. Spoiler: the winner is obvious, but Booksonic still has a niche.


What They Are

Audiobookshelf

ABS is a self-hosted audiobook and podcast server built from scratch for the job. It’s actively maintained, has official mobile apps for iOS and Android, handles M4B chapters natively, syncs per-user listening progress, and supports OPDS so your e-readers and third-party clients can pull from it too.

The project started around 2021 and has been on a steady upward trajectory. The Docker image is well-maintained, the UI is clean, and it doesn’t feel like someone duct-taped audiobook support onto a music player.

Booksonic

Booksonic started as an Airsonic/Subsonic fork tuned for audiobooks. The idea was solid: Subsonic has a decent streaming protocol, a ton of client support, and a known quantity. Slap audiobook metadata handling on top and call it done.

The catch: it’s old. The original Booksonic hasn’t seen much love in years. There’s Booksonic-Air (a more active fork), but you’re still working with the Subsonic model under the hood — which was designed for music, not 15-hour single-file audiobooks with chapter markers.


Library Structure: Folder Layout Matters

This is where ABS wins before you even open a browser.

ABS expects:

/audiobooks/
Author Name/
Book Title/
book.m4b ← single file, chapters intact
cover.jpg
metadata.opf ← optional but used

Or for multi-part MP3:

/audiobooks/
Brandon Sanderson/
The Way of Kings/
Part 01.mp3
Part 02.mp3
...
cover.jpg

ABS scans the folder, matches metadata from Audible or OpenLibrary, pulls cover art, and presents it cleanly. It handles M4B chapters natively — you get a chapter scrubber in the player, not just a timeline.

Booksonic expects: essentially whatever Subsonic expects — it reads ID3 tags on MP3s. If you have a tidy, tagged MP3 collection that happens to be audiobooks, Booksonic will pick it up. If you have M4B files, you’re converting or losing chapter data.

If you’re starting fresh or ripping Audible DRM (with tools like OpenAudible), go M4B with ABS. You’ll thank yourself later.


Metadata: Audible vs OpenLibrary

ABS has built-in metadata providers:

You can trigger a metadata match per-book or run a bulk scan. It’s not perfect — series with weird naming conventions need manual nudging — but it’s miles ahead of editing ID3 tags by hand.

Booksonic relies entirely on your file tags. Whatever’s in the MP3 metadata is what you get. If you have a clean collection already tagged with something like beets or Mp3tag, that’s fine. If you don’t, prepare for a weekend of cleanup before your library looks presentable.


Docker Compose: Both Running in 5 Minutes

Both are trivially easy to spin up. Here’s production-ready Compose for each.

Audiobookshelf

docker-compose.yml
services:
audiobookshelf:
image: ghcr.io/advplyr/audiobookshelf:latest
container_name: audiobookshelf
restart: unless-stopped
ports:
- "13378:80"
environment:
- AUDIOBOOKSHELF_UID=1000
- AUDIOBOOKSHELF_GID=1000
volumes:
- /media/audiobooks:/audiobooks
- /media/podcasts:/podcasts
- /opt/audiobookshelf/config:/config
- /opt/audiobookshelf/metadata:/metadata

Hit http://your-server:13378, create your admin account, add your library path, and let it scan. First scan on a large library takes a few minutes. After that, incremental.

Booksonic-Air

docker-compose.yml
services:
booksonic:
image: linuxserver/booksonic-air:latest
container_name: booksonic
restart: unless-stopped
ports:
- "4040:4040"
environment:
- PUID=1000
- PGID=1000
- TZ=America/New_York
- CONTEXT_PATH=/booksonic # optional, for reverse proxy subpath
volumes:
- /media/audiobooks:/audiobooks
- /media/podcasts:/podcasts
- /opt/booksonic/config:/config
- /opt/booksonic/playlists:/playlists

LinuxServer.io maintains the Booksonic-Air image and keeps it reasonably current. Use their image over the upstream — better layer caching, s6-overlay, consistent UID/GID handling.


Mobile Clients: Where ABS Runs Away With It

This is the biggest practical difference day-to-day.

ABS official app (iOS + Android): purpose-built, syncs chapter position, handles sleep timers, bookmarks, and playback speed properly. It’s the app you actually want. Free, open source.

Booksonic: The official Android app is effectively dead. Your options are:

If you’re the only person using your server and you exclusively listen at home on a desktop, the client gap doesn’t matter. The moment you’re commuting with your phone, ABS wins by a mile.


Multi-User and Progress Sync

ABS handles this properly. Each user gets their own account, their own listening progress, their own bookmarks. You can share a server with your household and nobody’s position clobbers anyone else’s.

Progress syncs across devices — pick up on your phone where you left in your browser. It uses a simple API call on pause/close, so it’s not real-time, but it’s close enough.

Booksonic has multi-user support (it inherits it from Subsonic), but position sync across devices is less reliable depending on your client. Some Subsonic clients bookmark position, some don’t. It’s inconsistent in a way that’s fine for music and annoying for a 30-hour audiobook.


Podcasts and Ebooks: ABS Does More

ABS isn’t just audiobooks. It handles:

Booksonic is audiobooks (and technically podcasts in Booksonic-Air). No ebook support.

If you want a single server for your entire “non-video media” library — audiobooks, podcasts, and ebooks — ABS does it. Booksonic doesn’t.


When to Use Plex Instead

Look, Plex is right there. If you’re already running Plex for video and you have a few audiobooks, Plex handles them. The audiobook metadata experience in Plex isn’t great — it treats your audiobooks like music and the chapter support is absent — but it works if you’re not precious about it.

Use Plex for audiobooks if:

Use ABS if:

The two aren’t mutually exclusive — plenty of people run both. Plex for video + ABS for audio is a common and sensible setup.


ABS vs Booksonic: The Verdict

FeatureAudiobookshelfBooksonic-Air
M4B chapter supportNativePartial / client-dependent
Metadata importAudible, OpenLibrary, Google BooksID3 tags only
Official mobile appYes (iOS + Android)Android only, limited
Podcast supportYesYes (Booksonic-Air)
Ebook supportYes (EPUB, PDF)No
Multi-user progress syncReliableClient-dependent
OPDS supportYesYes (Subsonic API)
Active developmentVery activeModerate (LinuxServer image)

Booksonic’s one real advantage: if you already have a Subsonic ecosystem — clients you know, a Navidrome or Airsonic already running — adding Booksonic-Air for audiobooks fits naturally. The Subsonic API is universal and you’re not adding new client complexity.

For everyone else: run Audiobookshelf. It’s what you’d build if you designed an audiobook server from scratch instead of retrofitting one.


Getting Started

Terminal window
# Pull and start ABS
docker compose up -d
# Watch the logs on first run
docker logs -f audiobookshelf
# Check it's up
curl -s http://localhost:13378/ping

First-time setup:

  1. Create admin account at http://your-server:13378
  2. Add library → point to your audiobook folder
  3. Let it scan — watch metadata match on the first pass
  4. Install the ABS app on your phone, connect to your server URL
  5. Done

That’s it. No config files to edit, no database to initialize, no XML to touch. The UI handles everything.


Your Audible library is a ticking clock. You’ve got the files, you’ve got the server — spin up ABS this weekend and stop renting your own books.


Share this post on:

Send a Webmention

Written about this post on your own site? Send a webmention and it'll show up above once verified.


Next Post
iperf3 + nload: Network Diagnosis

Discussion

Powered by Garrul . Sign in with GitHub or Google, or post anonymously.

Related Posts