Client Setup¶
rpodder implements the gpodder.net API, so it works with any podcast app that supports gpodder sync.
Tested clients¶
AntennaPod (Android)¶
Status: Fully tested and working.
- Open AntennaPod → Settings → Synchronization
- Tap Choose provider → gpodder.net
- Enter your server URL:
http://your-server:3005 - Enter your rpodder username and password
- Tap Login
AntennaPod will sync subscriptions and episode actions automatically.
Kasts (KDE / Linux / Android)¶
Status: Fully tested and working. rpodder was primarily developed and tested with Kasts.
- Open Kasts → Settings → Synchronization
- Select Custom server
- Enter:
http://your-server:3005 - Enter your rpodder username and password
Kasts compatibility
Kasts sends episode actions as a bare JSON array [...] instead of {"actions":[...]}. rpodder handles both formats automatically.
gPodder (Desktop — Linux, macOS, Windows)¶
Status: Should work (gpodder API compatible), not extensively tested.
- Open gPodder → Preferences → gpodder.net
- Set Server URL to
http://your-server:3005 - Enter your username and password
Other clients¶
Any client that implements the gpodder.net API should work. This includes:
- Podcini (Android) — gpodder-compatible fork of AntennaPod
- JEMC — desktop podcast manager
If you test rpodder with another client, please let us know how it goes by opening an issue.
Authentication¶
rpodder supports two authentication methods:
HTTP Basic Auth¶
Used by all podcast clients. The username and password are sent with every request.
Session cookies¶
Used by the web UI. After logging in, a sessionid cookie is set with a 365-day expiration.
SSO / OAuth2¶
Used by the web UI only. See the SSO guide. After SSO login, a session cookie is set — podcast clients still use HTTP Basic Auth with a local password (which can be set from the Settings page).
HTTPS¶
We strongly recommend running rpodder behind a reverse proxy (nginx, Caddy, Traefik) with TLS termination. Podcast clients send credentials with every request, so HTTPS is important for security.
Example with Caddy: