Apple Podcasts Scraper avatar

Apple Podcasts Scraper

Pricing

from $1.60 / 1,000 podcast episodes

Go to Apify Store
Apple Podcasts Scraper

Apple Podcasts Scraper

Scrape Apple Podcasts episodes by search term, iTunes ID, or RSS feed. Extract titles, show notes, audio URLs, durations, transcripts, and show metadata. Export JSON, CSV, Excel.

Pricing

from $1.60 / 1,000 podcast episodes

Rating

0.0

(0)

Developer

ParseBird

ParseBird

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Apple Podcasts Scraper

Apple Podcasts Scraper extracts podcast episode data from Apple Podcasts by search term, iTunes collection ID, or direct RSS feed, including episode titles, show notes, audio URLs, durations, release dates, transcripts, and show metadata.

Discover shows by keyword or pull specific podcasts by iTunes ID or RSS feed, then extract every episode's audio URL, duration, description, and Podcast 2.0 fields like transcripts and chapters โ€” well beyond Apple's ~200-episode lookup cap.

Copy to your AI assistant

Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.

Use Apify Actor parsebird/apple-podcasts-scraper to scrape Apple Podcasts episodes. Example with ApifyClient: client.actor("parsebird/apple-podcasts-scraper").call(run_input={"searchTerms":["artificial intelligence"],"country":"us","maxPodcastsPerSearch":10,"maxEpisodesPerPodcast":20}). Inputs: searchTerms string[] discovers shows via iTunes Search; podcastIds string[] iTunes collection IDs for deterministic pulls; rssFeeds string[] direct RSS URLs bypassing Apple; country string default "us"; maxPodcastsPerSearch integer default 50; maxEpisodesPerPodcast integer default 100 (iTunes hard cap ~200); useRssForFullArchive boolean default false unlocks the full archive via RSS; minReleaseDate/maxReleaseDate string YYYY-MM-DD; explicit string enum all/clean/explicit default all; minDurationSeconds integer default 0; fetchShowMetadata boolean default true. Output fields: podcastId, podcastName, author, episodeId, episodeGuid, episodeTitle, episodeNumber, season, episodeType, description, showNotesHtml, releaseDate, durationMs, durationSec, audioUrl, audioExtension, audioFileSize, artworkUrl600, episodeAppleUrl, feedUrl, transcriptUrl, chapters, keywords, explicitness, genres, primaryGenre, country, trackCountTotal, source, scrapedAt. API docs: https://docs.apify.com/api/client/python/ and https://docs.apify.com/api/client/js/. Token: https://console.apify.com/account/integrations.

What is Apple Podcasts Scraper?

Apple Podcasts Scraper is an Apple Podcasts scraper and Apple Podcasts API alternative for pulling structured episode data without manually browsing the app or website. Supply search terms, iTunes collection IDs, or RSS feed URLs, and the actor returns one row per episode, ready for analysis, monitoring, or downstream automation.

Use it for podcast data extraction workflows: content research, competitive monitoring, transcript pipelines, or building your own podcast search index through Apify.

What can Apple Podcasts Scraper do?

  • ๐Ÿ” Discover podcasts by keyword using the iTunes Search API and expand every result into episodes.
  • ๐ŸŽฏ Pull specific shows deterministically by iTunes collection ID.
  • ๐Ÿ“ก Fetch episodes directly from a podcast's RSS feed, bypassing Apple entirely.
  • ๐Ÿ“š Unlock a show's full episode archive via RSS, beyond the iTunes Lookup API's ~200-episode cap.
  • ๐ŸŽ™๏ธ Extract Podcast 2.0 fields when available: transcript URLs, chapter markers, season and episode numbers.
  • ๐Ÿงน Filter episodes by release date range, explicit rating, and minimum duration.
  • โฐ Run on demand or with Apify schedules for recurring monitoring.
  • ๐Ÿ”Œ Access results through the Apify API, webhooks, and integrations.
  • ๐Ÿ’พ Download datasets as JSON, CSV, Excel, XML, RSS, or HTML from Apify storage.

What data can you extract from Apple Podcasts?

FieldDescription
podcastNamePodcast show title
authorShow author or network
episodeTitleEpisode title
episodeNumber / seasonEpisode and season numbers, when the RSS feed exposes them
descriptionPlain-text episode description
showNotesHtmlFull HTML show notes, when available via RSS content:encoded
releaseDateEpisode publish date and time
durationSecEpisode duration in seconds
audioUrlDirect audio file URL
episodeAppleUrlLink to the episode on Apple Podcasts
transcriptUrlTranscript file URL, when the feed publishes a Podcast 2.0 <podcast:transcript>
chaptersChapter markers, when the feed publishes a Podcast 2.0 chapters JSON file
genres / primaryGenreShow category classification
trackCountTotalTotal episode count for the show

How to scrape Apple Podcasts episodes

  1. Open Apple Podcasts Scraper on Apify.
  2. Add one or more searchTerms, for example artificial intelligence, or add specific podcastIds or rssFeeds for deterministic pulls.
  3. Set country to the iTunes storefront you want to search or look up shows in.
  4. Set maxPodcastsPerSearch and maxEpisodesPerPodcast to control how much data each run pulls.
  5. Enable useRssForFullArchive if you need a show's complete back catalog instead of just its most recent episodes.
  6. Optionally add minReleaseDate, maxReleaseDate, explicit, or minDurationSeconds to narrow results.
  7. Run the actor, open the dataset, and export results as JSON, CSV, Excel, or through the Apify API.

Input parameters

ParameterTypeRequiredDefaultDescription
searchTermsarray of stringsNo*-Keyword queries to discover podcasts via the iTunes Search API.
podcastIdsarray of stringsNo*-iTunes collection IDs for direct, deterministic lookups.
rssFeedsarray of stringsNo*-Direct podcast RSS feed URLs. Bypasses Apple entirely.
countrystringNousiTunes storefront (30 supported). Affects ranking and country-restricted shows.
maxPodcastsPerSearchintegerNo50Max podcasts returned per search term. iTunes hard cap is 200.
maxEpisodesPerPodcastintegerNo100Max episodes pulled per iTunes lookup. iTunes returns roughly the 200 most recent.
useRssForFullArchivebooleanNofalseAfter each iTunes lookup, also fetch the show's RSS feed to unlock the full archive and Podcast 2.0 fields.
minReleaseDatestringNo-Drop episodes released before this date (YYYY-MM-DD).
maxReleaseDatestringNo-Drop episodes released after this date (YYYY-MM-DD).
explicitstringNoallall, clean, or explicit content filter.
minDurationSecondsintegerNo0Drop episodes shorter than this duration. Useful for filtering trailers and ads.
fetchShowMetadatabooleanNotrueEnrich each episode with show-level fields: genres, total episode count, explicitness.

* Supply at least one of searchTerms, podcastIds, or rssFeeds.

Example โ€” discover and pull AI podcasts in the US:

{
"searchTerms": ["artificial intelligence", "machine learning", "LLM"],
"country": "us",
"maxPodcastsPerSearch": 50,
"maxEpisodesPerPodcast": 100
}

Example โ€” full archive of a single show beyond the iTunes 200-episode cap:

{
"podcastIds": ["1434243584"],
"useRssForFullArchive": true,
"fetchShowMetadata": true
}

Example โ€” direct RSS feeds only, no iTunes lookup:

{
"rssFeeds": [
"https://feeds.simplecast.com/54nAGcIl",
"https://lexfridman.com/feed/podcast/"
]
}

Output example

{
"podcastId": "1434243584",
"podcastName": "Lex Fridman Podcast",
"author": "Lex Fridman",
"episodeId": "1000766518218",
"episodeGuid": "https://lexfridman.com/?p=6494",
"episodeTitle": "#500 โ€“ Khabib Nurmagomedov: Dagestan, MMA, UFC, Islam, Conor, Fedor & Football",
"episodeNumber": null,
"season": null,
"episodeType": "full",
"description": "Khabib Nurmagomedov is one of the greatest fighters of all time...",
"showNotesHtml": null,
"releaseDate": "2026-08-12T13:11:45Z",
"durationMs": null,
"durationSec": null,
"audioUrl": "https://media.blubrry.com/takeituneasy/ins.blubrry.com/takeituneasy/lex_ai_khabib_nurmagomedov.mp3",
"audioExtension": "mp3",
"audioFileSize": 5242880,
"artworkUrl600": "https://is1-ssl.mzstatic.com/image/thumb/Podcasts115/.../600x600bb.jpg",
"episodeAppleUrl": "https://podcasts.apple.com/us/podcast/.../id1434243584?i=1000782963648",
"feedUrl": "https://lexfridman.com/feed/podcast/",
"transcriptUrl": null,
"chapters": [],
"keywords": null,
"explicitness": "clean",
"genres": ["Technology", "Podcasts", "Science"],
"primaryGenre": "Technology",
"country": "USA",
"trackCountTotal": 501,
"source": "itunes+rss",
"scrapedAt": "2026-08-21T11:25:03Z"
}

Fields reflect what the source actually publishes โ€” some feeds omit duration, show notes HTML, or Podcast 2.0 fields, and those fields come back null rather than a guessed value. Download results in JSON, CSV, Excel, XML, RSS, or HTML from the Apify dataset.

Python API example

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("parsebird/apple-podcasts-scraper").call(run_input={
"searchTerms": ["artificial intelligence"],
"country": "us",
"maxPodcastsPerSearch": 10,
"maxEpisodesPerPodcast": 20,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)

JavaScript API example

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('parsebird/apple-podcasts-scraper').call({
searchTerms: ['artificial intelligence'],
country: 'us',
maxPodcastsPerSearch: 10,
maxEpisodesPerPodcast: 20,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

See Apify's official Python client and JavaScript client documentation for more options.

How much does it cost to scrape Apple Podcasts?

What is the price per Apple Podcasts episode?

PlanPrice per eventPrice per 1,000
Free$0.0023$2.30
Bronze$0.0021$2.10
Silver$0.0019$1.90
Gold$0.0016$1.60

Each episode-scraped event means one podcast episode was extracted and pushed to the dataset. A run collecting 1,000 episodes costs $2.30 on the Free plan or $1.60 on Gold. Apify's free trial credits cover test runs.

Use cases

  • Build a podcast search index or discovery tool for a niche category.
  • Monitor competitor or industry podcasts for new episodes and topics.
  • Feed episode audio URLs and transcripts into a transcription or summarization pipeline.
  • Track show metadata (genres, episode counts, explicitness) across a portfolio of podcasts.
  • Archive a show's complete back catalog before a feed migration or hosting change.

How it works

  1. The actor validates searchTerms, podcastIds, rssFeeds, and the optional filters.
  2. For each search term, it queries the iTunes Search API and deduplicates discovered shows against any directly supplied podcastIds.
  3. For each unique podcast, it calls the iTunes Lookup API to pull up to maxEpisodesPerPodcast recent episodes and, optionally, show metadata.
  4. If useRssForFullArchive is enabled, it also fetches the show's RSS feed, merges Podcast 2.0 fields into matching episodes, and adds any older episodes beyond the iTunes cap.
  5. For direct rssFeeds, it fetches and parses the feed without any iTunes lookup.
  6. It applies the minReleaseDate, maxReleaseDate, explicit, and minDurationSeconds filters, then pushes one row per episode to the default Apify dataset and charges one PPE event per pushed episode on the Apify platform.

What are the limitations of Apple Podcasts scraping?

  • The iTunes Lookup API returns roughly the 200 most recent episodes per show; use useRssForFullArchive for older episodes.
  • Fields like durationSec, showNotesHtml, transcriptUrl, and chapters depend on what the show's RSS feed publishes โ€” many feeds omit some of them.
  • Podcast search ranking and country-restricted catalogs vary by the country storefront selected.
  • RSS-only input (rssFeeds) has no Apple identifiers, so podcastId, episodeId, and episodeAppleUrl are not available for those rows.

Is scraping Apple Podcasts legal?

Apple Podcasts Scraper reads Apple's public iTunes Search and Lookup APIs and podcasters' own public RSS feeds โ€” the same data a podcast app or Apple Podcasts itself uses. Scraping publicly available data is generally allowed in many jurisdictions, but you should review Apple's terms and each feed's usage terms and make sure your use case complies with applicable laws. For background, read Apify's guide: Is web scraping legal?.

ActorBest for
Apple Podcasts ScraperPodcast episode and show data by search, ID, or RSS
RSS Feed ExtractorGeneric RSS/Atom feed parsing for any site
YouTube Search ScraperStructured YouTube search results

FAQ

Does Apple Podcasts Scraper require an Apple Podcasts login?

No login or API key is required. The actor uses Apple's public iTunes Search and Lookup APIs and podcasters' public RSS feeds.

How do I find a podcast's iTunes collection ID?

It's the numeric segment in an Apple Podcasts URL. For podcasts.apple.com/us/podcast/lex-fridman-podcast/id1434243584, the ID is 1434243584. Paste it into podcastIds for a fast, deterministic pull.

Why do I only get ~200 episodes per show?

That's the iTunes Lookup API's hard cap. Enable useRssForFullArchive to pull the show's complete archive directly from its RSS feed.

Can I schedule recurring runs to catch new episodes?

Yes. Use Apify schedules to run the actor daily, weekly, or at any interval.

Can I use it as an Apple Podcasts API?

Yes. Start runs and fetch datasets through the Apify API, Python client, JavaScript client, webhooks, or integrations.

Why are some fields null?

Not every podcast RSS feed publishes every field. Duration, show notes HTML, transcripts, and chapters are only populated when the source feed includes them.

Where can I report issues or request fields?

Open the Issues tab on the actor page and include your input example, run ID, and the fields you expected.