# Audiobookshelf

> Your Audiobookshelf audiobooks and ebooks as notes, with how far you have listened, and ebook files that open in the reader.

[Audiobookshelf](https://www.audiobookshelf.org) is a self-hosted server for audiobooks and ebooks. Turn it on in **Settings → Library Hub → Providers** and its books join your notes: one note per book, whichever place holds it.

## What it brings

- **Notes for your audiobooks and ebooks.** A book you also have in Calibre or Audible joins that note (matched by ISBN, ASIN, then title and author); one only Audiobookshelf has gets its own note (turn that off with **Notes for books only another provider has**).
- **Details:** narrators, length, series and its number, publisher and language, under the same fields Audible fills.
- **What you did with it:** a book you have started shows `reading_status: reading` and `started`; one you have finished shows `read` and `finished`. These fill blanks only. Where your note says something different, the sync preview lists it under **Differences from providers** for you to accept (see [Reading activity](activity.md)). How far you have listened is kept as `audiobookshelf_progress`.
- **Ebook files in the reader.** **This book: Read** opens an ebook Audiobookshelf holds (EPUB, or PDF) in the reader, with your place remembered.
- **A link to the audiobook.** An audiobook has no file to read here, so it opens its page on your server. **This book: Open with…** lists both ways when a book has both.

It is read-only: it never changes anything on your server. Podcast libraries are skipped.

## Connect

1. In Audiobookshelf choose **Settings → API Keys → Add**, and copy the key. (The login token the web app uses expires; an API key does not.)
2. In **Providers**, turn Audiobookshelf on and choose **Connect…**.
3. Enter the server address (for example `http://localhost:13378`) and paste the key. It is kept in Obsidian's keychain.
4. Choose which libraries to read, or leave all off for every book library, then **Test**.

## Try it without your own server

`scripts/audiobookshelf-test-server.sh` starts a throwaway server in Docker with three invented books and prints an address and an API key to paste in. `scripts/audiobookshelf-test-server.sh stop` removes it.

## What it sends

Requests go only to your server, with the API key as a bearer token. Nothing from your vault is sent.
