Lead generation · Marketing
Spotify Podcast Guest Graph Scraper
Extract a structured guest-history graph from Spotify podcast episodes via the Spotify API — episode metadata plus NLP-detected guest names, roles, and confidence scores — export to JSON or CSV. Uses your own Spotify Developer credentials; metadata only, no audio.
Free Apify credit covers a first run. No credit card to try.
What this Actor scrapes
Spotify publishes every show's episode list at api.spotify.com/v1/shows/{id}/episodes. This Actor authenticates with your Spotify Developer credentials, pages through episodes for one or more shows, runs spaCy + regex over each episode description, and emits one row per episode × guest pair — name, inferred role (host / cohost / guest), and a confidence score. The result is a clean, exportable podcast guest database ready for research, lead-gen, or AI training pipelines.
What we handle for you
- 🛡️ Browser fingerprint rotation —
curl-cffiimpersonates real Chrome / Firefox / Safari TLS handshakes so the endpoint sees a browser, not Python. - 🌐 Residential proxy rotation via Apify Proxy — fresh session and exit IP on every block or rate-limit response.
- 🔁 Retries with exponential backoff on
408 / 429 / 5xx— up to 5 attempts per page,Retry-Afterhonoured. - 🧱 Rate-limit-aware pacing — when the target pushes back, we slow down and surface partial progress rather than going silent.
- 🧊 Clean, typed dataset rows — Pydantic-validated, ISO-8601 timestamps, stable IDs, JSON / CSV / Excel export straight from the Apify Console.
- 💰 Pay-Per-Event pricing — you only pay for results that hit your dataset. No data, no charge.
Use cases
- Podcast guest research — build a podcast guest database of who has appeared on which shows to find cross-show patterns and booking opportunities.
- Booking agencies — surface guests that match a target podcast's profile to pitch your client into similar shows; replaces hours of manual research.
- Media intel — track when a public figure (CEO, author, researcher) makes podcast appearances; export a podcast guest list for any show in seconds.
- Entity-graph AI training — feed (person, show, date) triples into a knowledge graph for downstream ML or recommendation systems.
- Journalists — quickly trace a person's recent podcast circuit to map their messaging and audience reach.
- Founder-led PR — research which shows align with your topic before you pitch, using real guest history data rather than guessing.
Input
Paste this into the Apify Console, or send it as the run input over the API. Proxy settings are on by default; you rarely need to touch them.
| Field | Type | Required | What it does |
|---|---|---|---|
show_ids | array | no | List of 22-character Spotify show IDs (the bit after `/show/` in any open.spotify.com URL). Provide this OR `showSearchQuery`. |
showSearchQuery | string | no | Free-text query passed to /v1/search. The top-matching show is used. Ignored when `showIds` is set. |
maxEpisodesPerShow | integer | no | Newest episodes first. Hard cap 200. |
clientId | string | yes | From your Spotify Developer Dashboard application (https://developer.spotify.com/dashboard). Required. |
clientSecret | string | yes | From the same Spotify Developer application. Required. Stored as an Apify Secret — never logged. |
market | string | no | Country code used for availability filtering on Spotify episode endpoints. |
{
"show_ids": [
"2MAi0BvDc6GTFvKFPXnkCL"
],
"maxEpisodesPerShow": 3,
"clientId": "your_client_id_here",
"clientSecret": "your_client_secret_here",
"market": "US",
"proxyConfiguration": {
"useApifyProxy": false
}
} Output
One row per result, schema-validated before it is written. Export JSON, CSV, Excel or XML from the run, or read it over the API.
show_idshow_nameepisode_idepisode_nameepisode_release_dateepisode_duration_msguest_nameguest_roleconfidenceepisode_urlscraped_at
{
"show_id": "2MAi0BvDc6GTFvKFPXnkCL",
"show_name": "Lex Fridman Podcast",
"episode_id": "5kF8w2Q9pNeLBxXxNH1mxJ",
"episode_name": "#412 \u2014 Demis Hassabis: AGI and the Future of AI",
"episode_release_date": "2026-04-30",
"episode_duration_ms": 9384210,
"guest_name": "Demis Hassabis",
"guest_role": "guest",
"confidence": 0.92,
"episode_url": "https://open.spotify.com/episode/5kF8w2Q9pNeLBxXxNH1mxJ",
"scraped_at": "2026-05-16T12:00:00Z"
} Pricing
| Event | Price | When |
|---|---|---|
| Actor start | $0.20 | Once per run, covers warm-up and proxy session setup. |
| Result emitted | $0.0050 | Per result written to the dataset. |
You pay only for results that land. Cap any run with maxTotalChargeUsd. See pricing & billing for worked examples.
FAQ
Why do I need a Spotify client_id and client_secret?
client_credentials grant, which gives it read-only access to the public catalog and never touches any user account. Your credentials stay encrypted in Apify Secrets.Are episode transcripts included?
How accurate is the guest extraction?
with guest X, interview with X, #412 — X, etc.) at confidence 0.85–1.00. It then falls back to spaCy's en_core_web_sm PERSON entity recognizer at confidence 0.55–0.75. Each row carries its confidence score — filter on confidence >= 0.8 for high-precision research.Can I export a podcast guest list to CSV or Excel?
What if a show is in a language other than English?
Why is one row sometimes emitted with `guest_name: null`?
confidence field is 0.0 in this case.How large can a podcast guest database run get?
Ready to run it?
Open the listing on Apify, paste the input above, and watch rows land. If it ever breaks, it is our problem before it is yours.
Related Actors