3.0 KiB
MiniABS
A tiny Audiobookshelf podcast client for the Samsung Galaxy Mini (GT-S5570) and other Android 2.2+ phones. Native Java, no libraries, ~100 KB.
Install
- Copy
MiniABS.apkto the phone (USB to the SD card, or download it in the browser). - On the phone: Settings → Applications → Unknown sources → tick it.
- Open the APK from a file manager and install. It can be moved to the SD card (Settings → Applications → Manage applications → MiniABS → Move to SD card).
Connecting
Use your server's local http:// address, e.g. http://192.168.1.10:13378.
Android 2.x only speaks old TLS and has an outdated certificate list, so it usually can't connect to modern HTTPS servers (including Let's Encrypt behind a reverse proxy). The "Accept any HTTPS certificate" box only helps with self-signed certificates on servers that still allow older TLS.
Sign in with your username and password, or tick "Use an API key instead". It works with both current servers (2.26+, short-lived access tokens that MiniABS refreshes automatically) and older ones (single long-lived token).
Using it
- Latest: "Continue listening" plus the newest episodes across your podcast library. Tap the library name at the top to switch libraries.
- Shows: every podcast; tap one for its episodes. Menu key → sort oldest/newest, hide played.
- Saved: episodes downloaded to the SD card, plus download progress.
- Tap an episode to play. Long-press for Download, Delete download, Mark as played/unplayed, Go to show.
- Player: skip back/forward (set the amounts in Settings), seek bar, show notes. Menu key → sleep timer, mark as played, download, stop.
- Headset buttons: play/pause; next/previous skip forward/back. Playback pauses when headphones are unplugged and during calls.
Colored dots: blue = new, amber = in progress (with a bar), grey = played.
Progress sync
Playback opens an Audiobookshelf session and syncs every 15 seconds and on pause, so progress follows you to other apps. Saved episodes play offline; their positions are kept on the phone and sent to the server next time you're online (or tap refresh on the Saved tab).
Limits
- Episodes are streamed with direct play. Formats Android 2.x can't decode (e.g. Opus) can't be played, since the transcoded HLS stream isn't supported on 2.x.
- No playback speed control: Android 2.x's media player doesn't support it.
- Downloads need an SD card. "Download on Wi-Fi only" is on by default.
Building
Needs a JDK, aapt, dalvik-exchange (dx), zipalign, apksigner (Ubuntu: apt install aapt dalvik-exchange zipalign apksigner) and an API 8 android.jar:
ANDROID_JAR=/path/to/android-8/android.jar ./build.sh
Compiling against the API 8 jar guarantees no newer Android APIs are used. The APK is signed with miniabs.keystore (password miniabs); keep it to install updates over the top.
test/run_tests.sh runs the API, JSON and progress code on the desktop against a mock Audiobookshelf server (test/mock_abs.py).