Main features
- Streams any audio format, transcoding when needed
- Listening progress per user, synced across devices
- Podcast search, subscriptions and automatic episode downloads
- Multiple users with custom permissions
- Metadata and cover lookup from several providers
- Chapter editor with chapter lookup
- Merge audio files into one M4B with embedded metadata and cover
- Basic e-book reader for EPUB, PDF, CBR and CBZ
- RSS feeds for podcasts and audiobooks
- OpenID Connect single sign-on
- Scheduled backups of database and metadata
- Chromecast support and a progressive web app
What Audiobookshelf does
Audiobookshelf is a server built for audiobooks and podcasts rather than a music server adapted to them. It remembers where each listener stopped in each book and syncs that position between the web app and the mobile apps, so you can start a chapter on the phone and continue on a laptop. It streams any audio format, transcoding when a device cannot play the file directly.
Podcasts are handled end to end: you search for a show, subscribe, and the server downloads new episodes on a schedule. Audiobookshelf can also publish RSS feeds for podcasts and audiobooks in your library, which lets ordinary podcast apps play them.
Library tools
Several tools target the chores of managing an audiobook collection. Metadata and covers can be looked up from several providers. A chapter editor can fetch chapter data from Audnexus. Books made of many MP3 files can be merged into a single M4B with metadata and the cover embedded. There is also a basic e-book reader for EPUB, PDF and comic archives, and a send-to-device option for e-readers.
Apps and sign-in
Besides the web app, which can be installed as a progressive web app and supports Chromecast, the project publishes open source Android and iOS apps. Both are still labeled beta, and the README notes the iOS TestFlight beta is full. Third-party clients exist as well.
Multi-user setups get custom permissions per user, and sign-in can be delegated to an OpenID Connect provider such as Authelia, Keycloak or Google. A server API with API keys is available for scripts and other tools.
Self-hosting Audiobookshelf
Docker or Docker Compose is the recommended installation. The project also documents Podman, Debian and RPM packages, Nix and Windows, and one-click deployments on PikaPods and Easypanel. The server is written in Node.js with a Vue front end, stores its data in SQLite under /config, and keeps covers, logs and backups under /metadata. FFmpeg and FFprobe are used to read and transcode audio; the docs note that only the Docker image ships FFmpeg 8.
Scheduled backups cover the database and metadata, not the audio files themselves, so media needs its own backup. A reverse proxy in front of the server must pass WebSocket connections. If you serve it from a subfolder, the path must be /audiobookshelf.
The library layout is strict: each book needs its own folder. Collections that mix several books in one folder must be reorganized first.
Hosted version
The project does not offer a hosted service. Third-party hosts such as PikaPods provide one-click installs.
Limitations
The mobile apps are still in beta. The web front end is being rewritten from Vue 2, and the README says pull requests to the front end are paused during the rewrite. The one-folder-per-book rule takes work on an existing collection, and the e-book reader is basic compared with dedicated e-book servers.
Who it suits
Audiobookshelf fits anyone with a collection of DRM-free audiobooks, and households that want each member’s progress tracked separately. It also works as a self-hosted podcast catcher. It does not replace a general music or video server: pair it with Navidrome or Jellyfin, and see the media server guide for more options.
License details
GPL-3.0. The mobile apps are open source in a separate repository (advplyr/audiobookshelf-app).
Technical details
Self-hosting needs
- FFmpeg
- SQLite
Built with
- Node.js
- Vue
GitHub topics
- audiobook-manager
- audiobooks
- audiobookshelf
- podcasts
- self-hosted
Reviewed by the OpenSourcePicks editors from the project's repository and documentation. Something out of date? Tell us.