Skip to content

URL: https://mkdocs.justinsforge.com/memory/general/reference_audiobook_download_workflow/

Audiobook download workflow

Manual, no *arr automation. Audiobookshelf only watches the library folders; you put files there yourself.

Stack

  • Audiobookshelf container on CT 102 (media-server), media-server compose project. UI at audiobooks.justinsforge.com (Cloudflare Access gated).
  • Library mount: /mnt/storage/audiobooks on Finn → /audiobooks inside the container.
  • Download path: qBittorrent (behind gluetun on CT 102) → /mnt/storage/downloads/.
  • No Readarr. Indexer search + grab is on you, via Prowlarr or direct.

Library folders (single source of truth)

Audiobookshelf scans these three roots. Drop the audiobook folder directly under the right one:

Folder What goes here
/mnt/storage/audiobooks/Justin Audiobook/ Your books
/mnt/storage/audiobooks/Kristine Audiobooks/ Kristine's books
/mnt/storage/audiobooks/Personal Collection/ Shared / niche stuff

Convention from existing entries: Author - Year - Title (Genre)/ with mp3 or m4b files inside.

Download steps

  1. Find the title in Prowlarr (prowlarr.justinsforge.com) or directly on a tracker. Audiobook categories: 3030 (Audiobooks).
  2. Send to qBittorrent (qbit.justinsforge.com) under category audiobooks if it exists, else default. Confirm save path is under /mnt/storage/downloads/ (gluetun-routed for VPN).
  3. Wait for completion, then move/rename the folder into the correct library root above.
  4. Prefer m4b single-file format. If you got mp3s, no conversion required — Audiobookshelf handles both.
  5. Trigger scan in Audiobookshelf UI: Settings → Libraries → "Scan" on the right library, or it'll auto-pick up within ~minutes.

Common gotchas

  • If qBit + Prowlarr are unreachable: gluetun likely got recreated and the network_mode: container:gluetun siblings are stranded. Fix per reference_media_server_stack.md: docker compose -p media-server up -d on CT 102.
  • File permissions: anything dropped into the library should be readable by the audiobookshelf container UID. If a book doesn't appear after scan, ssh media-server 'ls -la /mnt/storage/audiobooks/<lib>/<book>' and chmod if needed.
  • Audiobookshelf metadata is best when folder name matches Author - Title or includes the title clearly. It scrapes from Audible/Google Books at scan time.

Future improvement

Readarr (audiobook fork) would automate this end-to-end (search → grab → import → notify). Not currently wired. Cost: another container behind gluetun + a metadata db. Worth it if Justin starts doing >2 audiobook downloads/month manually.