Podspine¶
Turn your audiobook files into per-chapter podcast feeds any podcast app can play.
Podspine is a small self-hosted server. Point it at a folder of audiobooks and it gives each book its own podcast RSS feed — one episode per chapter, in the right order — that you subscribe to in Apple Podcasts, Pocket Casts, Overcast, AntennaPod, or anything else that reads RSS. No accounts, no separate app, no built-in player. Just a feed URL.
- Chapters as episodes, in order. The #1 bug in naive attempts is episodes
playing out of order; Podspine emits sequential
pubDates (oldest = chapter 1) anditunes:episodenumbers, and refuses to serve a feed that fails its own self-check. - Zero-config.
docker runwith your library mounted just works. - No re-encode, no quality loss. Podspine never transcodes: chapters are extracted by stream copy, and whole files are served straight from your library.
- Private by default. Each feed lives at an unguessable capability URL; the library is watched and feeds auto-refresh as you add books.
- Your files stay yours. DRM-free input only — Podspine ships no DRM circumvention.
Quick start¶
Run the container with your library mounted:
docker run \
-v /path/to/audiobooks:/library:ro \
-v podspine-data:/data \
-p 8080:8080 \
-e PODSPINE_BASE_URL=http://<your-lan-ip>:8080 \
ghcr.io/schubydoo/podspine:latest
Then open http://localhost:8080 to browse your books, copy feed URLs, or scan a book's QR code to open its one-tap subscribe page.
Set PODSPINE_BASE_URL
Point it at the address podcast apps will actually reach (your LAN IP or public
hostname). It defaults to http://localhost:8080, which only works from the same
machine — feed and audio URLs are built from it.
ffmpeg/ffprobe are bundled in the image. /data holds the SQLite index and any
extracted chapter files (whole-file episodes stream from your library), so keep it
on a persistent volume. Prebuilt static binaries and cargo run are covered in
Deploying.
Where to next¶
- Deploying — Docker/compose, reverse proxy, systemd, backups, and the full config reference.
- Adding to your podcast app — the subscribe page, per-app steps, and troubleshooting.
- Architecture — how the pipeline and feeds work, and the invariants behind them.
- Development — local setup, crate layout, testing, and release builds.
License¶
AGPL-3.0-only. Podspine
shells out to ffmpeg/ffprobe as separate processes (no linking) and ships no DRM
circumvention.