2.6 KiB
2.6 KiB
absdy — audiobookshelf provider
Mounts a self-hosted audiobookshelf (ABS)
server at /abs, so you can browse, search, and play your audiobooks from
crabidy. Audiobooks only for now — podcast libraries on the ABS server are
not listed.
Logging in
The provider needs your server URL and an API key; without both, /abs
does not mount (the rest of the server is unaffected).
- Open the audiobookshelf web UI as the user whose libraries you want.
- Settings → Users → (your user) → API Keys (older versions: Settings → API Keys) and create a key.
- Put it in
abs.toml(below) and restart the server.
There is no interactive login and no token to refresh — the API key is a long-lived bearer token. Revoke it in the same screen to cut access.
Configuration — ~/.config/crabidy/abs.toml
# Required.
base_url = "https://audiobookshelf.example.com"
api_key = "<your audiobookshelf API key>"
# Optional (defaults shown).
items_per_library = 200 # books listed per library
search_results = 50 # books listed per search term
call_timeout_secs = 30 # per-request timeout
The key is a secret: it is redacted from logs and never printed, but keep
abs.toml private anyway (it is stored in cleartext).
The library tree
/abs
└── <library> one node per "book" library
├── search create a search term with `%`
│ └── <term> books matching the term
│ └── <book> the book's audio files as tracks
└── <book> an audiobook; its files are tracks
└── <file> a track (one audio file)
- A library lists its books plus a creatable
searchnode. Search is per-library — a term created under one library does not appear under another. - A book lists its audio files as tracks; queue or capture (
W) the whole book, or a single file. An ebook-only item (no audio) is shown but is not queueable. - Podcast libraries are not shown (audiobooks only, for now).
Notes
- Playback streams each file directly from ABS with a per-file token URL and HTTP range requests — no transcoding session.
- Listings are capped (see the config) and fetched fresh; only your typed search terms are remembered, in memory, until the server restarts.
- Many audiobookshelf libraries store Opus audio, which needs the server's
opuscargo feature (on by default). - Build the server without the
abscargo feature to leave this provider out of the binary entirely.