Four shapes of podcast sync

Four shapes of podcast sync An architecture diagram generated by Archify. vendor apps · Pocket Casts · Overcast · 1 · proprietary sync vendor apps Pocket Casts · Overcast vendor servers · the account is the library · 1 · proprietary sync · not yours vendor servers the account is the library not yours gpodder clients · AntennaPod · Cardo · Kasts · 2 · the gpodder API · no iOS client gpodder clients AntennaPod · Cardo · Kasts no iOS client your gpodder server · Nextcloud app · PodFetch · 2 · the gpodder API your gpodder server Nextcloud app · PodFetch PinePods apps · Windows · Android · iOS · web · 3 · self-hosted stack PinePods apps Windows · Android · iOS · web your PinePods server · Rust · Postgres or MySQL · 3 · self-hosted stack · built-in gpodder endpoint your PinePods server Rust · Postgres or MySQL built-in gpodder endpoint Jellyfin clients · web · Findroid · Swiftfin · plappa · 4 · media server Jellyfin clients web · Findroid · Swiftfin · plappa your Jellyfin server · + a podcast plugin · 4 · media server your Jellyfin server + a podcast plugin public RSS feeds · no private or tokenized feeds · 4 · media server public RSS feeds no private or tokenized feeds account sync gpodder API sync gpodder API resume points plugin fetch 1 · proprietary sync 2 · the gpodder API 3 · self-hosted stack 4 · media server

Where each shape breaks

  • • Proprietary: no interoperability — leaving means an OPML export and losing play history
  • • gpodder: no mainstream iOS client speaks the protocol
  • • Media server: the plugins cannot fetch authenticated or tokenized feeds

Why 3 subsumes 2

  • • A PinePods server answers the gpodder API, so AntennaPod and the first-party apps share one library