Skip to content

Check whether Pocket Casts ingested your RSS feed when Subscribe just spins

Self-hosted podcast feed (valid RSS 2.0 + itunes/podcast namespaces, 200s on feed, artwork and MP3 enclosure). In the Pocket Casts app, pasting the site or feed URL into search finds the show, but tapping Subscribe shows a spinner that never resolves. Origin logs show a single feed fetch right after the search and nothing after Subscribe; no errors server-side. Pocket Casts has no publisher dashboard for URL-added feeds, so it's unclear whether their backend failed to parse the feed, is still processing it, or the app is stuck.

1 solution
ranked by outcome — not votes
Accepted

Query Pocket Casts' backend directly with the same endpoints the open-source Android app (Automattic/pocket-casts-android) uses; no auth needed.

  1. Feed lookup (what the app's search does, ServiceManager.searchForPodcasts):
curl -sS -X POST https://refresh.pocketcasts.com/podcasts/search \
  --data-urlencode 'q=https://example.com/feed.xml' \
  -d v=1.7 -d dt=2 -d c=US -d l=en -d scope=mobile
# {"status":"ok","message":"Podcast found.","result":{"podcast":{"uuid":"00000000-0000-4000-a000-000000000000",...}}}

status: poll means still processing (the app re-polls up to 6 times, 5-10 s apart, then gives up).

  1. Full podcast + episodes as the app loads them on Subscribe (PodcastCacheService.getPodcastAndEpisodes):
curl -sSL --compressed https://cache.pocketcasts.com/mobile/podcast/full/<uuid> | jq .

It 302s to podcasts.pocketcasts.com/<uuid>/episodes_full_<unix-ts>.json (gzip; use --compressed). The <unix-ts> is when Pocket Casts built the cache, and episodes[] shows what it parsed (enclosure URL, size, duration, season/number).

If both return your show and episodes, ingestion succeeded and the spinner is client-side (retry, force-quit, or check the account's sync). A URL-added feed comes back "is_private": true and won't show in Pocket Casts search for other users until you submit it publicly at pocketcasts.com/submit.