For Android, iOS1,2, macOS1,2, Windows, Linux, and Web*3
“Buch” (German for "book") + "able" = "Buchable"
To explore the app, you can either log in to your private server or use the official ABS demo server. The demo server is an nice way to experience the app, especially when testing the web version of Buchable.
Demo URL: https://audiobooks.dev/
Login Credentials:
demo
demo
Note: Demo user accounts are automatically deleted after 48 hours.
If you're interested in trying out the Android version of this app, please reach out to me via email (fito0912@duck.com). I'll add you to the beta testing group on the Google Play Store. It is currently private. Your participation is crucial, as I need testers to be able to create a public beta.
Alternatively, you can download the APK from the release section. However, joining the beta would greatly assist in bringing the app to the Play Store sooner.
This is a third-party app for the Audiobookshelf server, designed to maintain a single codebase for multiple OS platforms.\ The app is written in Dart and utilizes the Flutter framework.\ While the current version may not include all the features of the first-party app, it is a work in progress with ongoing development.
1 iOS functionality requires additional work. Since I do not own a Mac, I cannot fully test it. However, I have only used libraries compatible with iOS.\ 2 The Audiobookshelf server must be accessible via SSL, so you need a domain with a valid SSL certificate.\ *3 The web version requires the server to allow CORS.
For more details and to contribute, please refer to TRANSLATION.md.
All translations are managed through Weblate Hosted.
A big thank you to Weblate for providing their services!
Platform Matrix | Android | iOS | Windows | Linux | Web |
---|---|---|---|---|---|
Playing Audio | ✅ | ✅ | ✅ | ✅ | ✅ |
Playing Podcasts | ✅ | ✅ | ✅ | ✅ | ✅ |
Reading eBooks*5 | 🟨 | 🟨 | 🟨 | 🟨 | 🟨 |
Up-to-date Sync | ✅ | ✅ | ✅ | ✅ | ✅ |
Advanced Player Controls*1 | ✅ | ✅ | ✅ | ✅ | ✅ |
Car Support*2 | 🟨 | 🟨 | ❌ | ❌ | ❌ |
Car Mode (Big Buttons for Car) | ✅ | ✅ | ✅ | ✅ | ✅ |
No Extra Setup Needed | ✅ | ❌*6 | ✅ | ✅ | ❌*3 |
Media Notifications | ✅ | ✅ | ❌ | ✅ | ❌ |
Caching | ✅ | ✅ | ✅ | ✅ | ✅ |
Offline Support | ✅ | ✅ | ✅ | ✅ | ❌*5 |
Socket Support*5 | ❌ | ❌ | ❌ | ❌ | ❌ |
1 Chapter support, sleep timer, playback speed, custom skip time, and more\ 2 Android Auto and Apple CarPlay are not supported as standalone apps, but media controls are supported\ 3 You need to allow CORS on the server so the web app can access it\ 5 Will be added in the future\ *6 A secure SSL connection is needed.
iOS requires some additional setup to configure the necessary plugins. Unfortunately, I’m unable to test, build, or fix errors on iOS since I don’t have access to a Mac. However, I’ve only used packages and libraries that are compatible with Apple, so once the setup is complete, there shouldn't be any issues building the app for iOS.
As for Linux, the app hasn’t been tested on that platform yet.
🎙️ Widgets - Widgets!
🔀 Fast Account Switching - Switch between multiple Audiobookshelf accounts with different servers in just two clicks.\ 🚀 Advanced Caching - Caches items, libraries and more to save a ton of mobile data\ 📄 Pagination - Load more items when you reach the end of lists to save data.\ 📈 Does Not Rely on a Socket - Use the app even with an occasionally interrupted connection.\ 📅 Up-to-date Sync - The app stays synchronized with the server when connected to the internet.\ 🔁 Queue Support - Add multiple items to the queue and play them in order. Even works offline.\ 🔊 Advanced Player Controls - Skip chapters, set a sleep timer, adjust playback speed, and more.\ 📴 Offline Support - Listen to your audiobooks even when you're offline. Sync offline up to one year\ 🔎 Fast Search - Search for audiobooks. Preserves query while switching library or user.\ 📖 History - Track where you paused, skipped, and resumed.\ 📊 Stats - View your listening habits over the past 365 days, including total time, frequency, and recent activity.\ HTML Support - Converts HTML in descriptions and makes links clickable.\ 🚀 Fast Loading - Option to enable fast loading that loads even the biggest libraries in a fraction of time.\ 🚗 Car Player Mode (Big Buttons) - Big buttons for easy control while driving.\ ⚙️ Many Settings - Customize the app to your liking. Head to Settings to learn more.\ Tray Icon - Control the app from the tray icon. (Desktops)\
The features listed below have been requested for the first-party app.\ If no specific platform is mentioned, the feature is available on all platforms.
🚀 Fast Account Switching\ 📅 Up-to-date Sync\ 🔁 Queue Support\ HTML Support\ 🚀 Advanced Caching\ 🚗 Car Player Mode (Big Buttons)\ Tray Icon
The features listed below are available in the first-party app but are not yet included in this app.\ The goal is to eventually include all first-party features.
🚗 Car Support - Currently limited to media controls.\ 📖 Reading eBooks
The following attributions highlight contributions that were essential to this project.\ For a complete list of libraries used, please refer to the pubspec.yaml file.\ The libraries mentioned below had a particularly significant impact on the development of the app.
Library | License | Publisher | Repository | |
---|---|---|---|---|
openapi_generator (flutter) | BSD-3-Clause | devappliance.com | GitHub | |
OpenAPI Generator | Apache-2.0 | - | GitHub | |
Riverpod | MIT | dash-overflow.net | GitHub | [GitHub]( |
OpenLeaf for modified iridum | Apache-2.0 | JideGuru | GitHub | |
iridium_reader_widget | - | Mantano | GitHub | |
iridium | - | Mantano | GitHub |
Thanks to everybody contributing to Audiobookshelf to make this software so awesome. Thanks to everybody who contributed to Audiobookshelf-App to make this software so awesome. Many features of this app are based on the first-party app.
The login screen allows users to easily toggle between
https://
andhttp://
.This ensures that you can enter your server address correctly and avoid any connection issues.
The player interface is packed with features designed to enhance your listening experience.
It includes a history tracker so you can easily resume from where you left off, speed control to adjust playback to your preference, and volume control for a seamless audio experience.
Additionally, the chapter view allows you to navigate through your audiobook easily, and the sleep timer can be reset simply by shaking your device.
With offline listening, you can enjoy your audiobooks even when you’re off the grid, whether traveling, commuting, or in an area with limited connectivity.
The app provides clear indicators of what has been downloaded and what remains to be synced, ensuring you never lose track of your progress.
Once connected to the internet, your offline progress will automatically sync with the server.
The settings section offers a comprehensive range of customization options, allowing you to tailor the app to your specific needs.
From enabling dark mode to setting download preferences, you have full control over your listening experience.
Jump to Settings
The history feature keeps a detailed log of your listening activities, including when you paused, skipped, or resumed playback.
This makes it easy to track your progress and revisit previous sections of your audiobooks.
The item view screen provides details about each audiobook.
Here you can access the book's description, which supports clickable HTML links, allowing for easy navigation to related content.
You can also view important metadata such as the current position, overall progress, remaining time, and more.
Additionally, the item view allows you to filter content by author, narrator, or genre, helping you find related titles quickly.
The stats view gives you a detailed breakdown of your listening over time.
You can track how much time you've spent listening each day, view your progress over the last seven or thirty days, and analyze your overall listening trends.
Please sort the keys in the en.json
file (and other edited) alphabetically before submitting a pull request.\
You can use the following command to sort the keys:
dart pub global activate arb_utils
arb_utils generate-meta .\lib\l10n\intl_en.arb
arb_utils sort .\lib\l10n\intl_en.arb
Or for an IDE that supports running code from a README, you can use the following Dart code:
arb_utils generate-meta .\lib\l10n\intl_en.arb
arb_utils sort .\lib\l10n\intl_en.arb