Warning
This is the README for version 3.0.0, which will be released soon!
ShelfPlayer is a powerful iOS application for listening to audiobooks and podcasts, designed for users with self-hosted Audiobookshelf libraries. Built in Swift 6 for iOS 18+, ShelfPlayer is fast, privacy-respecting, and deeply integrated with the Apple ecosystem.
Warning
ShelfPlayer does not include any media content. A running Audiobookshelf instance is required to use the app.
- Full content browsing: Explore audiobooks, authors, narrators, series, podcasts, episodes, collections, and playlists.
- Multiple users and libraries: Connect to multiple Audiobookshelf servers or user accounts simultaneously.
- System-level integration: Supports Widgets, Siri, App Intents, and CarPlay.
- Global discovery: "Listen Now" and universal search work across all connected libraries.
- Advanced playback tools: Highly configurable playback speed and sleep timer.
- Daily listen tracking: Accurate tracking of playback time, with optional daily goals.
- PDF viewer: Built-in support for attached PDF documents.
- Offline access: Automatic media downloads for seamless offline playback.
- Modern interface: Clean, native design optimized for both iPhone and iPad.
Audiobook | Podcast | Player | Other |
---|---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Download the latest release from the Releases page and install it using tools such as SideStore.
Important limitations when sideloading:
- Siri is not supported without a paid Apple Developer account due to entitlement restrictions.
- App extensions (e.g., Widgets) may not function correctly; it is recommended to remove them before sideloading.
- For background and technical details, see #20 and #4.
To build ShelfPlayer using Xcode:
- Install Xcode.
- In the
Configuration/
directory, copyDebug.xcconfig.template
and rename it toDebug.xcconfig
. - Edit the file with values appropriate for your environment (e.g. development team ID, bundle prefix, feature flags).
- Connect your iPhone and enable Developer Mode.
- Open the project in Xcode, select your device, then build and run the app.
Note
The Debug
configuration is used by default.
Contributions are welcome. To contribute:
- Fork the repository.
- Make your changes in a new branch.
- Open a pull request.
If you're interested in helping translate ShelfPlayer, see the Localization Guide for instructions on how to contribute a translation.
ShelfPlayer is licensed under the Mozilla Public License 2.0 with the Commons Clause.
You are allowed to:
- View, modify, and build the source code for personal use.
- Submit changes or improvements via pull requests.
You are not allowed to:
- Distribute ShelfPlayer in binary form (including on the App Store or through other app distribution platforms).
Prebuilt sideloadable binaries are made available for convenience, but redistribution is not permitted.
- Some text and preview content may have been enhanced using AI tools.
- Code was written manually with occasional help from Xcode's built-in AI suggestions.
- ShelfPlayer is not affiliated with Apple, Audiobookshelf, or any third-party platform or service.