Podcast Directory Scraper
Pricing
Pay per usage
Podcast Directory Scraper
Search Apple Podcasts by keyword and get full show details including host contacts, email addresses, website URLs, episode listings, and publishing frequency. Perfect for PR agencies, advertisers, and podcast guest outreach.
Pricing
Pay per usage
Rating
0.0
(0)
Developer

ryan clinton
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
Search Apple Podcasts by keyword and get full show details including host contacts, email addresses, website URLs, episode listings, and publishing frequency. Perfect for PR agencies, advertisers, and podcast guest outreach.
How it works
- Search Apple Podcasts — finds podcasts matching your keywords via the iTunes Search API
- Fetch RSS feeds — gets the full podcast RSS feed for each result
- Extract rich data — parses show metadata, host contacts, episodes, and publishing patterns
No API keys needed. No browser required. Pure HTTP + XML parsing.
How to use it
- Go to the Podcast Directory Scraper on Apify
- Enter search terms like "true crime", "marketing", or "AI technology"
- Click Start — results appear in seconds
- Download as JSON, CSV, or export to Google Sheets
Output
Each podcast produces one record. Here's a real example:
{"podcastId": 1234567890,"title": "The Startup Show","author": "Jane Smith","description": "Weekly interviews with startup founders sharing their stories, lessons learned, and advice for aspiring entrepreneurs.","categories": ["Business", "Entrepreneurship"],"language": "en","episodeCount": 245,"lastEpisodeDate": "2026-02-01","episodeFrequency": "weekly","isActive": true,"applePodcastsUrl": "https://podcasts.apple.com/us/podcast/the-startup-show/id1234567890","feedUrl": "https://feeds.simplecast.com/abc123","websiteUrl": "https://thestartupshow.com","artworkUrl": "https://is1-ssl.mzstatic.com/image/thumb/Podcasts/v4/...","ownerName": "Jane Smith","ownerEmail": "jane@thestartupshow.com","copyright": "© 2026 The Startup Show","episodes": [{"title": "How We Raised $10M in a Down Market","description": "In this episode, we talk with...","publishDate": "2026-02-01","duration": "42:15","audioUrl": "https://cdn.simplecast.com/audio/abc123/episode-245.mp3","episodeNumber": 245,"seasonNumber": 5}],"searchTerm": "technology startups","scrapedAt": "2026-02-07T12:00:00.000Z"}
Output fields
| Field | Type | Description |
|---|---|---|
podcastId | Integer | Apple Podcasts / iTunes collection ID |
title | String | Podcast title |
author | String | Creator / host name |
description | String | Full show description (from RSS feed) |
categories | Array | Podcast categories and subcategories |
language | String | Language code (e.g., "en") |
episodeCount | Integer | Total number of episodes |
lastEpisodeDate | String | Date of most recent episode (YYYY-MM-DD) |
episodeFrequency | String | Publishing cadence: daily, weekly, biweekly, monthly, irregular |
isActive | Boolean | Has the podcast published in the last 90 days? |
applePodcastsUrl | String | Apple Podcasts page URL |
feedUrl | String | RSS feed URL |
websiteUrl | String | Podcast website URL (from RSS) |
artworkUrl | String | Cover art image URL |
ownerName | String | Podcast owner name (from RSS) |
ownerEmail | String | Podcast owner email (from RSS) |
copyright | String | Copyright notice |
episodes | Array | Recent episodes with title, date, duration, audio URL |
searchTerm | String | The search term that found this podcast |
scrapedAt | String | ISO timestamp |
Input
| Field | Type | Description | Default |
|---|---|---|---|
searchTerms | Array of strings | Keywords to search (required) | — |
maxResults | Integer (1-200) | Max podcasts per search term | 50 |
country | String | iTunes Store country code | "us" |
includeEpisodes | Boolean | Include episode listings | true |
maxEpisodesPerShow | Integer | Max episodes per podcast (0 = all) | 10 |
activeOnly | Boolean | Only include active podcasts (last 90 days) | false |
proxyConfiguration | Object | Proxy for iTunes API requests | Apify Proxy |
Example input
{"searchTerms": ["true crime","comedy interviews"],"maxResults": 100,"activeOnly": true,"maxEpisodesPerShow": 5}
How to use the API
Python
from apify_client import ApifyClientclient = ApifyClient(token="YOUR_API_TOKEN")run = client.actor("ryanclinton/podcast-directory-scraper").call(run_input={"searchTerms": ["business marketing"],"maxResults": 50,"activeOnly": True,})for podcast in client.dataset(run["defaultDatasetId"]).iterate_items():print(f"{podcast['title']} by {podcast['author']}")print(f" Email: {podcast['ownerEmail']}")print(f" Website: {podcast['websiteUrl']}")print(f" Frequency: {podcast['episodeFrequency']}")print(f" Episodes: {podcast['episodeCount']}")
JavaScript / Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });const run = await client.actor('ryanclinton/podcast-directory-scraper').call({searchTerms: ['business marketing'],maxResults: 50,activeOnly: true,});const { items } = await client.dataset(run.defaultDatasetId).listItems();items.forEach(podcast => {console.log(`${podcast.title} by ${podcast.author}`);console.log(` Email: ${podcast.ownerEmail}`);console.log(` Website: ${podcast.websiteUrl}`);console.log(` ${podcast.episodeCount} episodes, ${podcast.episodeFrequency}`);});
Use cases
Podcast PR and guest pitching
Search for podcasts in your niche, filter by active shows, and get host emails directly. Export to CSV and load into your outreach tool. Replace expensive services like Podchaser ($2,500/year).
Podcast advertising
Find shows by topic and audience size (episode count + frequency as proxies). Get contact info to pitch ad deals directly.
Market research
Analyze podcast categories, publishing frequency, and episode counts to understand the competitive landscape in any niche.
Content strategy
Find podcasts to pitch yourself as a guest, build backlinks, or cross-promote. The websiteUrl field lets you evaluate each show's web presence.
CRM building
Run multiple search terms, export all results as CSV, and build a podcast contact database for ongoing outreach campaigns.
Data sources
- Apple Podcasts / iTunes Search API — free, public, no authentication needed
- RSS feeds — fetched directly from each podcast's feed URL for rich metadata
No Spotify (requires OAuth, restricted API, doesn't provide RSS feed URLs).
Performance
| Podcasts | Estimated time | Notes |
|---|---|---|
| 10 | ~15 seconds | 3-second delay between iTunes API calls |
| 50 | ~30 seconds | RSS feeds fetched in parallel per search term |
| 200 | ~1-2 minutes | Rate limit is ~20 iTunes API calls/minute |
Cost is minimal — the actor makes HTTP requests only, no browser rendering.
Tips
- Use specific terms — "true crime mystery" will return more relevant results than just "crime"
- Set
activeOnly: true— filters out dead podcasts that haven't published in 90+ days - Set
maxEpisodesPerShow: 0— to get ALL episodes (useful for podcast analytics) - Multiple search terms — duplicates are automatically removed (deduplicated by podcast ID)
- Country matters — set
countryto match your target market (e.g., "gb" for UK, "de" for Germany) - Email availability — not all podcasts expose owner emails in their RSS feed. Apple deprecated this field in 2022, but many feeds still include it.
FAQ
Where do the contact emails come from?
From the podcast's RSS feed — specifically the <itunes:owner> and <itunes:email> XML tags. Apple deprecated these in 2022, but many podcast hosting platforms (Buzzsprout, Libsyn, Podbean, etc.) still include them. Availability varies by podcast.
Can I get podcast ratings and review counts?
Not from the iTunes Search API. Apple doesn't expose ratings in their public API. Episode count, publishing frequency, and show age serve as quality proxies.
Does this work for non-English podcasts?
Yes. Set the country parameter to the target market's iTunes Store (e.g., "de" for Germany, "jp" for Japan). Category names will be in the local language.
Why no Spotify data?
Spotify's podcast API requires OAuth authentication, has heavily restricted access (requires 250K+ MAU for extended scope), and critically doesn't return the RSS feed URL — which is our primary source for rich metadata and contact information.
How often can I run this?
As often as you need. The iTunes Search API has a rate limit of ~20 requests per minute. The actor respects this with built-in delays. For very large runs (1000+ podcasts), consider using proxy configuration.
Responsible use
This actor processes publicly available data from Apple Podcasts and RSS feeds. By using it, you agree to:
- Comply with all applicable laws, including GDPR, CAN-SPAM, and CCPA
- Respect Apple's Terms of Service for the iTunes Search API
- Use extracted data only for legitimate business purposes
- Not use this tool for unsolicited bulk email or spam
Changelog
v1.0 (2026-02-07)
- Initial release
- iTunes Search API integration
- RSS feed parsing (show metadata, episodes, host contacts)
- Episode frequency calculation (daily, weekly, biweekly, monthly, irregular)
- Active podcast filtering (last 90 days)
- Deduplication across multiple search terms
- Configurable episode limits