A cross-platform comparison of podcast players, September 2026.

The recommendations

Choose the sync layer, not the player: Pocket Casts’ free tier for zero maintenance, or PinePods to own the library. Keep Jellyfin for audiobooks, not podcasts.

NeedRecommendationWhy
All three platforms, no maintenancePocket Casts, free tierNative apps on Windows, Android and iOS plus a web player; the most reliable sync; private feeds and a full directory, all at $0
All three platforms, and own the libraryPinePods, self-hostedThe only fully open-source (GPL-3.0) option with native clients on all three platforms, deployed as one Docker Compose stack
An Android client you already trustAntennaPod, syncing to PinePodsPinePods’ built-in gpodder server lets AntennaPod share the same library
AudiobooksAudiobookshelf, or Jellyfin 12 with plappa on iOSJellyfin 12 handles audiobooks well now, but Swiftfin and Finamp do not show the library
Avoid for thisJellyfin for podcasts; Spotify; Overcast or Castro alone; Podcast Addict aloneNo private feeds or directory; no RSS import; iOS only; Android only

How to decide between the first two: run both for a week of normal listening — the steps are at the end.

Problem statement

Find a podcast player, or a combination tied together by one sync layer, that works across Windows, Android, and iOS without losing library state between devices.

Requirements, in priority order:

  1. Platform coverage — Windows, Android, and iOS. Originally a hard single-app constraint; later relaxed to allow per-platform combinations if a shared sync layer connects them.
  2. RSS feed import — arbitrary feed URLs, including private/tokenized feeds (Patreon, paid subscriptions).
  3. Directory browsing — a searchable public catalog (Apple directory, Podcast Index, or equivalent).
  4. Seamless sync — subscriptions, queue, and playback position follow the listener across devices.
  5. Modern, sleek UI/UX — a polished daily driver, not a utilitarian afterthought.
  6. Open source preferred, not required — willing to trade some polish for auditable code and self-hostable infrastructure.

Key finding: the bottleneck in this market is the sync layer, not the players. Windows and Android are richly served by open-source clients speaking the open gpodder API; iOS was historically the gap. Two developments changed the calculus: Pocket Casts moved its web player and desktop apps to the free tier (March 2025), and PinePods shipped native iOS and Android clients, making a fully open-source, fully self-hosted, all-three-platforms stack viable.

Master matrix

Thirteen candidates evaluated against the six requirements. “⚠️” = partial support.

AppWindowsAndroidiOSRSS importDirectorySync
Pocket Casts✅ app + web✅✅✅ incl. private✅✅ own service
PinePods✅ native✅ native✅ native✅ + OPML✅ Podcast Index + iTunes✅ self-hosted, + built-in gpodder server
Podverse⚠️ web only✅✅✅✅ Podcast Index✅ Premium (~$18/yr) or self-hosted instance
AntennaPod❌✅❌✅ incl. password-protected, OPML✅✅ gpodder API
Kasts / Cardo / Podcast Merlin✅❌❌✅✅✅ gpodder API
Podcast Addict❌✅❌✅ + audiobooks, YouTube, streams✅⚠️ limited
Overcast❌❌✅ + web✅✅✅ Apple devices only
Castro❌❌✅✅✅❌
Snipd❌✅✅✅✅✅
Podurama✅✅✅✅✅✅
Apple Podcasts⚠️ iTunes❌✅✅ “Add a Show by URL”✅✅ Apple devices
YouTube Music⚠️ web✅✅✅ incl. private feeds✅✅ Google account
Spotify✅✅✅❌ (Patreon partnership only)✅✅

Licensing and cost, separated so the requirements table stays readable at one glance:

AppLicenseCost (USD)
Pocket CastsMobile clients MPL-2.0; server/web/desktop proprietaryFree; Plus $39.99/yr; Patron ~$100/yr
PinePodsGPL-3.0 full stackFree (your hardware)
PodverseAGPLv3 full stackFree; Premium for sync
AntennaPodGPLv3Free
Kasts / Cardo / Podcast MerlinOpen sourceFree
Podcast AddictProprietary~$10 one-time
OvercastProprietaryFree w/ ads; $14.99/yr
CastroProprietaryFree; Plus $24.99/yr
SnipdProprietaryFreemium
PoduramaProprietaryFree
Apple PodcastsProprietaryFree
YouTube MusicProprietaryFree
SpotifyProprietaryFree / Premium

Screenshots could not be embedded directly in this document; each app name links to a page with current UI imagery, and official galleries are on each project’s site and app-store listing.

Feature breakdown by strength

Each app leads in one category; none leads in all.

CategoryLeaderWhat it doesRunner-up
Playback engineeringOvercastSmart Speed (silence removal without distortion) and Voice Boost (volume leveling); 2026 releases added chapter art and transcriptsPocket Casts (0.1x speed steps, Trim Silence); Podcast Addict on Android (EQ, per-show settings)
Cross-device sync reliabilityPocket CastsSubscriptions, queue, and playback position sync across iOS, Android, web, and desktop; consistently rated most reliablePinePods (position sync “down to the second,” self-hosted)
Queue / library managementCastroEmail-style inbox triage of new episodes; ideal for wide subscribing, selective listeningPocket Casts folders (Plus); Podcast Addict rule-based playlists
Knowledge captureSnipdHeadphone-tap highlights with AI transcripts and summaries; exports to Notion, Readwise, ObsidianPodurama (free AI summaries)
Open standards (Podcasting 2.0)PodverseReference implementation: chapters, transcripts, cross-app comments, Value-for-Value, all per spec; app and server both AGPLv3PinePods (Podcast Index search, chapter support)
Feature density on AndroidPodcast AddictAudiobooks, YouTube channels, live streams, OPML, local backup, 0.1x speed control, one-time purchaseAntennaPod (open source, password-protected feeds)
Self-hostingPinePodsRust server, multi-user, native clients on all platforms, built-in gpodder server, Docker Compose / Helm deployPodverse (self-hostable instance)

Free-tier generosity is worth calling out separately: Pocket Casts’ free tier includes the full mobile experience, ad-free interface, sync, Trim Silence, and — since March 2025 — the web player and desktop apps (Engadget). Plus ($39.99/yr) adds folders, bookmarks, 20 GB cloud storage, and standalone wearable playback. Pricing has trended up: Plus launched at $9.99/yr in 2019 and reached $39.99/yr by April 2023 (Pocket Casts support).

The three sync ecosystems

Sync architecture, not app features, is the real decision — it determines which clients can coexist and who holds the library.

1. Proprietary account sync. The vendor runs the server; the account is the library. Pocket Casts (all platforms), Overcast (Apple devices only), Snipd, Podurama, and the platform giants (Apple, Spotify, YouTube Music, each inside its own ecosystem). Zero setup, zero ownership, and no interoperability — leaving means OPML export and losing play history.

2. The gpodder API — an open protocol, not an app. Any compliant client syncs against any compliant server. Clients: AntennaPod (Android), KDE Kasts, Cardo (Windows/Mac/Linux), Podcast Merlin (full-sync Windows client). Servers: gpodder.net, the Nextcloud gpoddersync app, and self-hosted Docker options (PodFetch, opodsync, podsync). Historic weakness: no mainstream iOS client speaks the protocol, so an iPhone breaks the chain.

3. Self-hosted full stack. One open-source server plus first-party clients on every platform. PinePods is the standout: a Rust server (Postgres or MySQL) serving native apps for web, Linux, Windows, macOS, Android, and iOS plus a CLI client, with multi-user support and a built-in gpodder-compatible server so ecosystem-2 clients like AntennaPod can ride along. The 0.9.0 release (220+ commits) added video playback, a native iOS audio engine with CarPlay, Android Auto, and a reworked web frontend. Podverse also allows self-hosting its AGPLv3 instance, though with less turnkey tooling.

Diagram: the four shapes side by side — each column is one way a library can sync, and the dashed line is a PinePods server taking in the gpodder clients. The guided views walk the four in order.

Ecosystem 3 subsumes ecosystem 2: a PinePods server can act as the gpodder endpoint, so mature third-party clients and first-party apps share one library.

A fourth shape is drawn above and deliberately kept out of the matrix: a general-purpose media server with a podcast plugin bolted on. It syncs like ecosystem 3 and subscribes like nothing else here. It gets its own section.

Self-hosted vs. SaaS

The trade-off is maintenance burden versus ownership; neither side wins on features anymore.

DimensionSaaS (Pocket Casts, Podurama, Overcast)Self-hosted (PinePods, AntennaPod + gpodder server, Podverse instance)
Setup effortInstall app, create account — minutesDeploy server (Docker Compose / Helm), configure clients — an evening
Ongoing maintenanceNoneUpdates, backups, database care; you are the sysadmin
Data ownershipVendor’s servers hold subscriptions, history, positionEverything in your own Postgres/MySQL database
PrivacyListening data visible to vendor; policies can changeNo third party sees listening behavior
Pricing riskReal — Pocket Casts Plus went from $9.99/yr (2019) to $39.99/yr (2023)None; cost is hardware and electricity already running
Longevity riskService shutdown or acquisition strands the library (OPML export mitigates partially)Project abandonment possible, but GPL code and your database survive; migration stays in your control
Polish / UX maturityHigh — years of design investment, large user basesA notch below; PinePods is young, with reports of an occasional lost-playback-position bug on iOS (App Store review)
Multi-user / householdPer-person accounts, per-person fees where paidPinePods serves a whole household from one instance, each user with their own library and stats
Remote accessWorks anywhere by defaultRequires exposing the server safely (reverse proxy, VPN, or SSO)
Ecosystem interopClosed; clients locked to vendorPinePods’ built-in gpodder server lets third-party clients share the same library

Rule of thumb: SaaS buys back the evening of setup and all future maintenance for the price of trusting a vendor with the library. Self-hosting costs that evening plus ongoing care, and in return removes pricing risk, privacy exposure, and shutdown risk entirely. For someone already operating Docker-based services with a reverse proxy and SSO in place, the marginal cost of self-hosting one more container is low — which shifts the calculus notably toward PinePods.

The fourth option: a Jellyfin server you may already run

Jellyfin is not a podcast app, and the question it answers is a different one: if a media server is already running in the house, can it absorb this? Two things made that worth asking in September 2026 — a podcast plugin ecosystem (JellyPodcast and others) and Jellyfin 12’s overhaul of book and audiobook handling. The short answer is that Jellyfin is a strong complement and a weak replacement, and the two halves of it fail and succeed for different reasons.

Podcasts: the plugins are real, and they are early

Jellyfin has never supported podcasts natively — the feature request is one of its oldest — so everything below is third-party.

JellyPodcast (MIT) takes any RSS/Atom feed URL or Apple Podcasts link and organizes each show as a TV series in the library: episode ordering, artwork, descriptions, a refresh task every two hours, audio and video podcasts, and optional cleanup of old episodes. It targets Jellyfin 10.11.x on .NET 9. It also has, at the time of writing, two stars and two commits.

jellyfin-plugin-podcast (MIT) is the more developed of the two — 89 commits, still self-described as alpha. It adds feed validation before subscribing, scheduled downloads to a podcasts folder, auto-deletion two days after an episode passes 90% played, and a daily auto-generated playlist of unplayed episodes at 01:00 UTC. It requires Jellyfin 12.0 or 12.1; version 0.0.3.7 was the last to support 10.11.x.

That version split is the important part, not a footnote. Jellyfin 12 requires every third-party plugin to be rebuilt — the server moved to .NET 10, the release notes tell migrators to remove non-built-in plugins before upgrading, and deprecated APIs (ISearchEngine, the ISubtitleWriter family) were removed outright. So the podcast plugin ecosystem was reset within weeks of this evaluation, and the two candidates sit on opposite sides of the break.

Scoring it against the six requirements

#RequirementJellyfin + podcast pluginWhy
1Windows / Android / iOS✅Web player on Windows; official apps, Findroid and Finamp on Android; Swiftfin on iOS
2RSS import incl. private feeds⚠️Arbitrary public feed URLs work. Neither plugin supports authenticated or tokenized feeds — the Patreon case simply does not load
3Directory browsing❌There is no catalog. You paste feed URLs, or you do not subscribe
4Seamless sync✅The strongest part. Resume points live on the server, so position follows the listener by construction — the same mechanism that resumes a film
5Modern, sleek UI/UX⚠️Podcasts render as TV series. No queue, no inbox triage, no Smart Speed, no volume leveling
6Open source✅GPL-2.0 server, MIT plugins, self-hosted end to end

Requirement 2 is the one that decides it. Private feeds were named explicitly in the requirements, and an unauthenticated fetcher cannot retrieve them — that is a missing feature, not a rough edge. Requirement 3 compounds it: subscribing becomes “find the feed elsewhere, paste the URL here,” which is exactly the friction a directory exists to remove.

Audiobooks: the genuinely new capability

Jellyfin 12.0 (September 2026) folded the old Bookshelf plugin into the server and rebuilt what it did:

  • Audiobook chapters are extracted server-side and exposed through the API, with chapter navigation and resume across the official Web, iOS and Android clients. M4B — embedded chapters and cover art in one file — is the format that behaves best.
  • Background playback on iOS continues with the screen off, which is the difference between a working audiobook client and a demo.
  • Books and comics parse without a plugin: OPF and ComicInfo metadata, generated covers for EPUBs and comic archives, page counts for comics and PDFs, ISBN support, a redesigned reading interface with progress indicators and PDF swipe navigation. Metadata providers moved out to GoogleBooks, ComicVine and a new OpenLibrary plugin.

This is a real capability and it is worth having. It is also worth being precise about what it changes: audiobooks were not one of the six requirements. A strong audiobook feature is a reason to run Jellyfin, or to keep running it. It is not evidence about podcast sync, and it should not be allowed to stand in for any.

The caveat is client-side and specific: the two best Jellyfin audio clients on iOS — Swiftfin and Finamp — do not surface audiobook libraries at all. The client that does is plappa, a SwiftUI audiobook player that lists the library, tracks progress and downloads for offline listening. It also speaks to Audiobookshelf, and syncs progress across both.

That points at the honest comparison: Audiobookshelf is the specialist, built for one job, with per-item progress and first-party mobile clients, while Jellyfin is a video-first server that has bolted on a feature it was not designed around. The two are not exclusive — both can index the same folder without conflict, and plappa reads either.

Verdict

Jellyfin does not displace Option A or Option B below, and adding it to the matrix does not change the recommendation. It fails the private-feed requirement outright, has no directory, and its podcast plugins are one alpha and one two-commit experiment straddling a breaking server release.

Where it does fit:

  • Already running Jellyfin? Let it hold audiobooks — that half is now genuinely good — and leave podcasts to the podcast stack. PinePods or Pocket Casts coexists with it on the same box without contention.
  • Considering Jellyfin for podcasts? Not on this evidence. Revisit when a podcast plugin has settled on the post-12.0 platform and supports authenticated feeds; those two together would make it a serious ecosystem-3 contender, since the sync half is already the best thing about it.
  • Audiobooks the actual priority? Audiobookshelf, or Jellyfin 12 plus plappa on iOS. Not Jellyfin plus Swiftfin, which will not show the library.

The recommendations, argued

The field collapses to a two-way decision.

Option A — Pocket Casts, free tier (zero maintenance). Every stated requirement is covered at $0: native apps on all three platforms plus web, best-in-class sync, RSS import including private feeds, full directory, and the most polished UI in the category. Mobile clients are MPL-2.0 open source; the sync server is not. Risks: library lives on Automattic infrastructure, and pricing history shows terms can drift.

Option B — PinePods (full ownership). The only fully open-source (GPL-3.0) option with native clients on Windows, Android, and iOS, deployed as one Docker Compose stack on existing infrastructure. The built-in gpodder server allows running AntennaPod as the Android client if its maturity is preferred, with PinePods covering Windows and iOS from the same library. Risks: young project, small team, sysadmin responsibility, polish a notch below Option A.

Not recommended for this use case: Jellyfin + a podcast plugin (no private feeds, no directory, alpha plugins mid-rebuild — see above; keep it for audiobooks), Spotify (no RSS import), Overcast/Castro (iOS-only), Podcast Addict/AntennaPod alone (Android-only, though AntennaPod works inside Option B), Podurama (covers all requirements but proprietary with an uncertain small-vendor future — reasonable third choice if both options above fail).

Suggested evaluation path

  • Create a throwaway account on the PinePods demo at try.pinepods.online to judge the UI firsthand (demo accounts are wiped periodically)
  • Install Pocket Casts free on all three platforms and subscribe to 3–5 real feeds, including one private feed
  • Run both for one week of normal listening; note every sync failure or UI friction point
  • Decide; either way, export OPML from the loser — both sides import it, so the choice is reversible

Sources