2.9 KiB
audiobookshelf — /abs
Mounts a self-hosted audiobookshelf
server at /abs, so your audiobooks browse, queue, and play like any other
part of the library. Audiobooks only for now — podcast libraries on the ABS
server are not listed.
Logging in
The provider needs two things in abs.toml: your server's base URL and an
API key. Without both, /abs does not mount and the rest of the server
carries on.
-
Open your audiobookshelf web UI as the user whose libraries you want.
-
Go to Settings → Users → (your user) → API Keys (on older versions: Settings → API Keys) and create a key.
-
Put it in
~/.config/crabidy/abs.toml:base_url = "https://audiobookshelf.example.com" api_key = "<the key you just created>" -
Restart the server.
/absappears with one child per book library.
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.
The API key grants access to your audiobookshelf account. Crabidy redacts it
from logs and never prints it, but keep `abs.toml` private — it is stored in
cleartext, like every other provider credential.
The tree
/abs
└── <library> one node per "book" library
├── search create a term with `%`
│ └── <term> books matching the term
│ └── <book> the book's audio files as tracks
└── <book> an audiobook
└── <file> one audio file = one track
- A library lists its books plus a creatable
searchnode. Search is scoped per library: a term created under one library is not visible under another. See Search. - A book lists its audio files as tracks, in the server's order. Queue or capture the whole book, or a single file.
- An item with no audio (an ebook-only entry) is listed but not queueable.
Playback
Each file streams directly from audiobookshelf over HTTP with range
requests — no transcoding session is opened, and the audio is whatever the
server stores (commonly Opus or MP3; Opus needs the opus build feature, see
Tailored builds). Captures (W) download the same
files into the content store.
Configuration — abs.toml
# Required — without both of these the provider does not mount.
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
Listings are fetched fresh on every visit and capped by the values above. Only your typed search terms are remembered, and only in memory until the server restarts.