Home › Monitoring and research › Apple Podcasts Scraper

Apple Podcasts Scraper: Active Shows, Charts & Cadence

How it works

Find active Apple Podcasts shows by keyword, chart or genre. Each row adds real activity from the show RSS feed: last episode, cadence, episodes per 90 days and a 0-100 activity score. No emails, no login, no API key.

Input options

FieldNameRequiredWhat it does
searchTermsSearch termsnoKeywords searched in the Apple Podcasts directory (show title, publisher and topic), for example marketing, saas, true crime. Each term returns up to 200 shows per country.
chartGenresApple charts (genres)noRead the Apple Podcasts top chart for these genres in every selected country. All podcasts = the overall Top Shows chart. Each show keeps its chartRank.
chartLimitShows per chartnoHow many chart positions to read per genre and country (1-200; the overall Top Shows chart allows up to 100, larger values use the classic chart feed).
appleIdsApple ids or URLsnoSpecific shows to check, as Apple ids (1200361736) or Apple Podcasts URLs (https://podcasts.apple.com/us/podcast/the-daily/id1200361736). Useful for tracking a watch list.
countriesCountriesnoApple storefronts as 2-letter codes, for example us, gb, ca, au, de. Search and charts run per country.
onlyActiveOnly active showsnoReturn only shows whose newest episode is within the active window below. Turn off to also get dormant shows (they get isActive = false).
activeWithinDaysActive within (days)noA show is active when its newest episode was published within this many days (1-3650).
minEpisodesMinimum episodesnoSkip shows with fewer episodes than this (Apple episode count). 0 = no filter.
languageLanguagenoKeep only shows whose feed declares this language, for example en, es or pt-br (prefix match: en also matches en-us). Leave empty for any language.
excludeExplicitExclude explicit showsnoSkip shows Apple or the feed marks as explicit (brand-safety filter for sponsors).
includeFeedActivityRead RSS feeds for activitynoRead each show public RSS feed (newest 400 KB) to measure last episode, cadence and episodes per 30/90 days. Turn off for a faster Apple-only run (activity then uses the Apple...
onlyNewSinceLastRunOnly new since last runnoMonitor mode: skip shows delivered in an earlier run (remembered by Apple id in a named key-value store). A repeat run on the same input charges only for new shows.
stateStoreNameMonitor store namenoNamed key-value store that remembers delivered shows. Use a different name per watch list.
maxItemsMax showsnoMaximum podcast rows delivered (and charged) this run. Rows are delivered in source order (your ids, chart rank, then search relevance).

Output fields

One row per result. These are the 37 fields declared in the actor's dataset schema (field list from the schema, not a sample run).

FieldTypeMeaning
titlestringPodcast title as listed in the Apple Podcasts directory.
publisherstringPublic creator / publisher brand shown on Apple Podcasts (artistName). Never a personal email or owner contact.
activityScoreinteger0-100: recency of the latest episode (45), episode cadence (25), episodes in the last 90 days (15) and catalogue depth (15).
isActivebooleantrue when the latest episode is within activeWithinDays (default 45) of the run.
lastEpisodeAtstringPublish time (ISO 8601 UTC) of the newest episode in the RSS feed; Apple latest-episode date when the feed could not be read.
daysSinceLastEpisodeintegerWhole days between the newest episode and the run.
avgDaysBetweenEpisodesnumberMean gap in days across the newest 10 episodes in the feed (7 = weekly, 1 = daily).
episodesLast30DaysintegerEpisodes published in the 30 days before the run (from the feed).
episodesLast90DaysintegerEpisodes published in the 90 days before the run (from the feed).
episodesInFeedintegerEpisodes found in the part of the feed read (a lower bound when feedTruncated is true).
trackCountintegerEpisode count Apple reports for the show.
primaryGenrestringApple primary genre, for example Business or True Crime.
genresarrayAll Apple genres for the show (the generic Podcasts tag removed).
categoriesarrayiTunes categories declared in the show RSS feed.
chartNamestringApple chart the show was found in (Top Shows or a genre chart); null for search and id lookups.
chartRankintegerPosition in that chart at run time (1 = top).
countrystringApple storefront (ISO 3166-1 alpha-2) the record and chart rank come from.
languagestringLanguage declared in the RSS feed (BCP 47, lowercase), for example en or es-mx.
explicitbooleantrue when Apple or the feed marks the show explicit.
contentAdvisorystringApple content advisory rating (Clean or Explicit).
lastEpisodeTitlestringTitle of the newest episode in the feed.
lastEpisodeDurationstringLength of the newest episode as hh:mm:ss.
lastEpisodeDurationSecintegerLength of the newest episode in seconds.
websitestringShow website (channel link from the RSS feed, http/https only).
appleUrlstringPublic Apple Podcasts page of the show.
feedUrlstringPublic RSS feed URL listed by Apple.
appleIdstringApple Podcasts collection id (stable key for joins and monitor mode).
artworkUrlstring600 x 600 cover art URL from Apple.
releaseDatestringLatest-episode date Apple holds for the show (ISO 8601).
descriptionstringShow description from the feed, tags removed, emails and phone numbers scrubbed, max 500 characters.
feedTruncatedbooleantrue when the feed was larger than 400 KB and only its newest part was read (episodesInFeed is then a lower bound).
feedStatusstringok, ok_partial, no_feed_url, not_requested, not_rss, unreachable or http_<status>.
activitySourcestringrss when activity came from the feed, apple when it fell back to Apple data.
activeWithinDaysintegerThe activeWithinDays value used for isActive.
sourcestringsearch, chart or appleId.
sourceQuerystringSearch term, chart name or Apple id that surfaced the show.
scrapedAtstringTime the row was produced (ISO 8601 UTC).

Limits, stated plainly

Public data only, no login. Fields a source does not publish come back empty rather than guessed. Coverage and freshness follow the underlying public source.

Price

Pay on Apify, no subscription: $0.001 per podcast returned (pay per event). The live price is on the actor page.

Run it on Apify

Disclosure: we build and maintain this actor.

Related

More in monitoring and research