/ShelfPlayer

Native Audiobookshelf client for iOS written in Swift

Primary LanguageSwiftOtherNOASSERTION

ShelfPlayer

ShelfPlayer is a meticulously crafted iOS and iPadOS app designed to seamlessly integrate with your Audiobookshelf library. Enjoy a captivating listening experience with its sleek interface, lightning-fast performance, and deep system integration.

Features:

  • Explore your Audiobooks, Podcasts, Episodes, Authors & Series: Use the beautiful UI to rediscover your favorite content

  • Sync listening statistics: ShelfPlayer will accurately update your Audiobookshelf listening stats

  • Download audiobooks & episodes and listen to them on the go: The app is designed to work as well offline as if you were at home

  • Sleep timer: Set a sleep timer to automatically stop playback, even at the end of the current chapter

  • Siri & Shortcuts integration: Use Siri to play your audiobooks or podcast episodes

  • Custom playback speed: Customize the playback speed

  • Automatic downloads & notifications: Download new episodes automatically in the background

  • Immersive Exploration: Effortlessly navigate through your audiobooks, podcasts, episodes, authors, and series with our beautifully designed interface.

  • Synchronized Listening: Accurately track your listening progress and seamlessly sync your statistics with Audiobookshelf.

  • Offline Enjoyment: Download your favorite audiobooks and episodes to indulge in uninterrupted listening, even without an internet connection.

  • Personalized Sleep: Wind down with our customizable sleep timer, which automatically pauses playback at your desired time, even at the end of a chapter.

  • Voice Control: Enjoy hands-free convenience with Siri integration and create custom shortcuts for effortless playback.

  • Tailored Listening: Adjust playback speed to match your preferred listening pace.

  • Automated Convenience: Automatically download new episodes and receive notifications to stay up-to-date with your favorite shows.

Download

Download on the App Store

Screenshots

Library Audiobook Player Podcast
Library Album Player Queue
Library Album Player Queue

Sideload

Pre-built

Grab the latest Release and install it using your favorite tool like SideStore.

Warning

Pre-built versions of ShelfPlayer lack Siri support due to limitations with sideloading tools. These features require a paid developer account or can't be reliably implemented for sideloaded apps. See rasmuslos#20 & rasmuslos#4 for more information.

Stripping app extensions is highly recommended as they won't function correctly when sideloaded.

Build ShelfPlayer Yourself

If you're comfortable with Xcode, you can build ShelfPlayer yourself:

  1. Install Xcode on your Mac.
  2. In the Configuration directory, copy the Debug.xcconfig.template file and rename it to Debug.xcconfig.
  3. Edit Debug.xcconfig:
    • Change DEVELOPMENT_TEAM to your Apple developer team ID.
    • Set a unique BUNDLE_ID_PREFIX (e.g., me.yourname).
  4. If you don't have a paid developer account, remove the ENABLE_ALL_FEATURES compilation condition to avoid crashes. You can also remove the DEBUG flag if you don't intend on further development.
  5. Connect your iPhone to your Mac and enable developer mode.
  6. Select your iPhone as the run destination in Xcode.
  7. Run the application.

Note

The DEBUG configuration is used by default for most builds. To create a release build for distribution (which isn't allowed under the license), you'll need to edit the Release.xcconfig file.

Licensing & Contributing

ShelfPlayer is licensed under the Mozilla Public License Version 2. Additionally the "Common Clause" applies. This means that you can modify ShelfPlayer, as well as contribute to it, but you are not allowed to distribute the application in binary form. Compiling for your own personal use is not covered by the commons clause and therefore fine. Additionally, prebuilt binaries are available on GitHub for side loading using popular tools like SideStore, etc.

Contributions are welcome, just fork the repository, and open a pull request with your changes. If you want to contribute translations you have to edit Localizable.xcstrings in the iOS directory, as well as Localizable.xcstrings located at ShelfPlayerKit/Sources/SPFoundation/Resources using Xcode. If you want to add a new language add it in the project settings

Miscellaneous

  • ShelfPlayer is not endorsed by nor associated with Audiobookshelf
  • I generated some parts of this readme using Gemini, too