docs/features/audiobookshelf.md
Libation can optionally upload each book to your Audiobookshelf server right after liberation. Local files are never deleted - upload only copies them to Audiobookshelf.
Available in Classic (WinForms), Chardonnay (Avalonia), and the CLI liberate command.
Only libraries with media type book are listed (podcast libraries are excluded).
Use the base address of your Audiobookshelf server - the same host (and optional subpath) you use to open the web UI, without a library, book, or other page path.
Examples:
| Setup | Server URL |
|---|---|
| Local default install | http://localhost:13378 |
| Hosted / reverse proxy at root | https://abs.example.com |
| Served under a subpath | https://example.com/audiobookshelf |
Do not paste a browser address for a specific library or book, such as:
http://localhost:13378/library/<id>https://example.com/audiobookshelf/library/<id>/bookshelfLibation calls the Audiobookshelf API at {Server URL}/api/.... If the Server URL already includes /library/..., that request path will be wrong.
Libation will try to strip common browser paths (and a trailing /api) automatically when you connect or save. If connection still fails with 404, double-check that the URL is only the server base (plus subpath, if any).
The API token is stored in Libation's settings. When Libation's token storage is set to encrypted (and the OS secret store is available), the Audiobookshelf token is encrypted the same way as Audible auth tokens. If encryption is not in effect, Settings shows a plaintext warning.
Create an API token in Audiobookshelf under your user account settings (see Audiobookshelf's docs for the current location).
localhost only works when Audiobookshelf is on the same computer as Libation.When auto-upload is enabled and configured:
Upload runs for GUI download/decrypt and for CLI liberate. It does not run on the separate Convert to MP3 queue or libationcli convert - those paths only convert local files.
Before uploading, Libation searches the target Audiobookshelf library for an existing item with a matching title (and author when available). If a match is found, or Audiobookshelf reports that the destination already exists, Libation skips the upload and continues.
If the Audiobookshelf server is unreachable, the token is wrong, or upload fails for another reason: