Apple Podcasts Scraper
Pricing
from $1.60 / 1,000 podcast episodes
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
Maintained by CommunityActor stats
1
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
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?
| Field | Description |
|---|---|
podcastName | Podcast show title |
author | Show author or network |
episodeTitle | Episode title |
episodeNumber / season | Episode and season numbers, when the RSS feed exposes them |
description | Plain-text episode description |
showNotesHtml | Full HTML show notes, when available via RSS content:encoded |
releaseDate | Episode publish date and time |
durationSec | Episode duration in seconds |
audioUrl | Direct audio file URL |
episodeAppleUrl | Link to the episode on Apple Podcasts |
transcriptUrl | Transcript file URL, when the feed publishes a Podcast 2.0 <podcast:transcript> |
chapters | Chapter markers, when the feed publishes a Podcast 2.0 chapters JSON file |
genres / primaryGenre | Show category classification |
trackCountTotal | Total episode count for the show |
How to scrape Apple Podcasts episodes
- Open Apple Podcasts Scraper on Apify.
- Add one or more
searchTerms, for exampleartificial intelligence, or add specificpodcastIdsorrssFeedsfor deterministic pulls. - Set
countryto the iTunes storefront you want to search or look up shows in. - Set
maxPodcastsPerSearchandmaxEpisodesPerPodcastto control how much data each run pulls. - Enable
useRssForFullArchiveif you need a show's complete back catalog instead of just its most recent episodes. - Optionally add
minReleaseDate,maxReleaseDate,explicit, orminDurationSecondsto narrow results. - Run the actor, open the dataset, and export results as JSON, CSV, Excel, or through the Apify API.
Input parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
searchTerms | array of strings | No* | - | Keyword queries to discover podcasts via the iTunes Search API. |
podcastIds | array of strings | No* | - | iTunes collection IDs for direct, deterministic lookups. |
rssFeeds | array of strings | No* | - | Direct podcast RSS feed URLs. Bypasses Apple entirely. |
country | string | No | us | iTunes storefront (30 supported). Affects ranking and country-restricted shows. |
maxPodcastsPerSearch | integer | No | 50 | Max podcasts returned per search term. iTunes hard cap is 200. |
maxEpisodesPerPodcast | integer | No | 100 | Max episodes pulled per iTunes lookup. iTunes returns roughly the 200 most recent. |
useRssForFullArchive | boolean | No | false | After each iTunes lookup, also fetch the show's RSS feed to unlock the full archive and Podcast 2.0 fields. |
minReleaseDate | string | No | - | Drop episodes released before this date (YYYY-MM-DD). |
maxReleaseDate | string | No | - | Drop episodes released after this date (YYYY-MM-DD). |
explicit | string | No | all | all, clean, or explicit content filter. |
minDurationSeconds | integer | No | 0 | Drop episodes shorter than this duration. Useful for filtering trailers and ads. |
fetchShowMetadata | boolean | No | true | Enrich 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 ApifyClientclient = 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?
| Plan | Price per event | Price 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
- The actor validates
searchTerms,podcastIds,rssFeeds, and the optional filters. - For each search term, it queries the iTunes Search API and deduplicates discovered shows against any directly supplied
podcastIds. - For each unique podcast, it calls the iTunes Lookup API to pull up to
maxEpisodesPerPodcastrecent episodes and, optionally, show metadata. - If
useRssForFullArchiveis 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. - For direct
rssFeeds, it fetches and parses the feed without any iTunes lookup. - It applies the
minReleaseDate,maxReleaseDate,explicit, andminDurationSecondsfilters, 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
useRssForFullArchivefor older episodes. - Fields like
durationSec,showNotesHtml,transcriptUrl, andchaptersdepend on what the show's RSS feed publishes โ many feeds omit some of them. - Podcast search ranking and country-restricted catalogs vary by the
countrystorefront selected. - RSS-only input (
rssFeeds) has no Apple identifiers, sopodcastId,episodeId, andepisodeAppleUrlare not available for those rows.
Is it legal to scrape Apple Podcasts?
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?.
Other Apple Podcasts scrapers / Related Actors
| Actor | Best for |
|---|---|
| Apple Podcasts Scraper | Podcast episode and show data by search, ID, or RSS |
| RSS Feed Extractor | Generic RSS/Atom feed parsing for any site |
| YouTube Search Scraper | Structured 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.