{"name":"podcast-scraper","id":"sfoln/podcast-scraper","title":"Podcast Scraper – Episodes & Transcripts","description":"Get any podcast's episodes as JSON from its name, Apple Podcasts link or RSS feed: titles, dates, durations, audio URLs, show notes, episode and season numbers, plus a show profile with release cadence. Optional AI transcripts. $1 per 1,000 episodes.","version":"0.1","status":"ready","family":{"id":"documents-media-ai","name":"Documents & media","description":"PDF and office documents to Markdown or JSON, OCR, audio and podcast transcription, YouTube transcripts, summaries and video metadata.","actors":8},"categories":["AI","NEWS","AUTOMATION"],"availability":"on_request","seoTitle":"Podcast Scraper API – Episodes, Show Notes & Transcripts","seoDescription":"Podcast episodes as JSON from a show name, Apple Podcasts link or RSS feed: dates, durations, audio, show notes. Optional AI transcripts. $1 per 1,000.","summary":"Get any podcast's episodes as clean JSON from its name, an Apple Podcasts link or its RSS feed. For every show you get one row per episode (title, publication date, duration, audio file URL, show notes as text, the links in them, episode and season numbers, episode type, explicit flag, GUID) and one show profile with the owner's published contact, categories and release cadence. Optionally, the newest episodes are transcribed with AI (Mistral Voxtral). Built for podcast research, PR and guest booking, ad sales, media monitoring and AI agents that need what was said on a show. $1 per 1,000 episodes; transcripts $0.0105 per audio minute.","pricing":{"model":"pay-per-event","currency":"USD","billedBy":"Apify","freePlanMaxItemsPerRun":10,"events":[{"name":"episode","title":"Podcast episode","description":"Charged once per podcast episode delivered (title, date, duration, audio URL, show notes, episode and season numbers).","priceUsd":0.001},{"name":"transcription-minute","title":"Transcribed audio minute","description":"Charged per started minute of audio transcribed for the transcription add-on (a 32 min 10 s episode = 33 events). Paid plans only.","priceUsd":0.0105,"paidPlanOnly":true}]},"input":{"description":"Podcasts to read: show names, Apple Podcasts links or ids, RSS feed URLs or podcast websites. Each podcast gives one row per episode plus one show profile row, and optionally transcript rows.","required":["podcasts"],"fields":[{"name":"podcasts","title":"Podcasts","type":"array","required":true,"description":"One podcast per line: a show name (the best Apple Podcasts match is used), an Apple Podcasts link or id, an RSS feed URL, or the show's website. Accounts on the Apify free plan can process up to 10 podcasts per run (20 episodes each).","prefill":["https://feeds.npr.org/510289/podcast.xml"],"editor":"stringList"},{"name":"maxEpisodesPerShow","title":"Max episodes per show","type":"integer","required":false,"description":"Newest episodes to return per show (1–5,000).","default":50,"prefill":5,"minimum":1,"maximum":5000},{"name":"sinceDays","title":"Only episodes from the last N days","type":"integer","required":false,"description":"Keep only episodes published in the last N days (0 = all episodes, up to the maximum above).","default":0,"minimum":0,"maximum":36500},{"name":"country","title":"Apple Podcasts country","type":"string","required":false,"description":"Two-letter storefront for show names and Apple ids, e.g. us, gb, de (an Apple Podcasts link's own country is used for that link).","default":"us","editor":"textfield"},{"name":"transcribeLatest","title":"Transcribe the latest N episodes","type":"integer","required":false,"description":"Paid add-on: transcribe the newest N delivered episodes of each show with Mistral Voxtral ($0.0105 per audio minute, paid Apify plans only). Before the audio is sent, the remaining maximum cost per run must cover the longest the audio file can last (its real size at 32 kbps, at most 3 hours); only the minutes transcribed are charged. 0 = no transcription.","default":0,"minimum":0,"maximum":10},{"name":"maxMinutesPerEpisode","title":"Max minutes per transcribed episode","type":"integer","required":false,"description":"Episodes longer than this (by the feed's duration, else the audio file's size) are not transcribed and not charged (1–180).","default":90,"minimum":1,"maximum":180},{"name":"transcriptionLanguage","title":"Transcription language","type":"string","required":false,"description":"ISO 639-1 code of the spoken language (e.g. en, de, es) to help the transcription; empty = detected automatically.","editor":"textfield"},{"name":"timestamps","title":"Transcript timestamps","type":"boolean","required":false,"description":"Add timed segments ({ start, end, text }) to each transcript.","default":false},{"name":"maxShows","title":"Max podcasts","type":"integer","required":false,"description":"Safety cap on how many podcasts are processed in this run; the rest are ignored and counted in the OUTPUT record.","default":100,"minimum":1,"maximum":1000},{"name":"concurrency","title":"Concurrency","type":"integer","required":false,"description":"Podcasts processed in parallel (1–5). Apple's directory is asked at most about 20 times per minute per run.","default":3,"minimum":1,"maximum":5},{"name":"includeRaw","title":"Include raw data","type":"boolean","required":false,"description":"Attach each episode's parsed feed item (all namespaces) and the Apple directory record of the show (larger output).","default":false}]},"exampleInput":{"podcasts":["https://feeds.npr.org/510289/podcast.xml"],"maxEpisodesPerShow":5},"outputFields":[{"name":"input","type":"string | object","title":"Input","description":"The podcast this record belongs to, as given."},{"name":"recordType","type":"string","title":"Record type","description":"episode = one episode (charged); transcript = one transcribed episode (charged per audio minute); summary = the show profile, one per podcast (free).","example":"episode"},{"name":"position","type":"integer","title":"Position","description":"episode: 1-based position among the episodes delivered for the podcast (newest first)."},{"name":"showTitle","type":"string | null","title":"Show","description":"The podcast's title."},{"name":"feedUrl","type":"string | null","title":"Feed URL","description":"The show's RSS feed (after redirects)."},{"name":"appleId","type":"string | null","title":"Apple id","description":"The show's Apple Podcasts id, when it was looked up there."},{"name":"guid","type":"string | null","title":"GUID","description":"episode / transcript: the episode's GUID in the feed."},{"name":"title","type":"string | null","title":"Episode title","description":"episode: the episode's title."},{"name":"publishedAt","type":"string | null","title":"Published at","description":"episode / transcript: ISO 8601 publication time."},{"name":"durationSecs","type":"number | null","title":"Duration (s)","description":"episode: length in seconds as the feed states it; transcript: the audio length Mistral reports."},{"name":"duration","type":"string | null","title":"Duration","description":"episode: length as h:mm:ss."},{"name":"audioUrl","type":"string | null","title":"Audio URL","description":"episode / transcript: the audio file (the feed's enclosure)."},{"name":"audioType","type":"string | null","title":"Audio type","description":"episode: MIME type of the audio file."},{"name":"audioSizeBytes","type":"integer | null","title":"Audio size","description":"episode: size of the audio file in bytes, as the feed states it."},{"name":"episodeNumber","type":"integer | null","title":"Episode number","description":"episode: itunes:episode (or podcast:episode)."},{"name":"seasonNumber","type":"integer | null","title":"Season number","description":"episode: itunes:season (or podcast:season)."},{"name":"episodeType","type":"string | null","title":"Episode type","description":"episode: full | trailer | bonus."},{"name":"explicit","type":"boolean | null","title":"Explicit","description":"Explicit content flag (an episode without its own flag inherits the show's)."},{"name":"link","type":"string | null","title":"Episode page","description":"episode: the episode's web page."},{"name":"imageUrl","type":"string | null","title":"Image","description":"episode: the episode artwork; summary: the show artwork."},{"name":"description","type":"string | null","title":"Description","description":"episode: the show notes as plain text (at most 20,000 characters); summary: the show's description."},{"name":"links","type":"array | null","title":"Show-note links","description":"episode: the links in the show notes (at most 50)."},{"name":"transcripts","type":"array | null","title":"Published transcripts","description":"episode: transcripts the show publishes itself (podcast:transcript) as [{ url, type, language }]."},{"name":"chaptersUrl","type":"string | null","title":"Chapters","description":"episode: the podcast:chapters file, when the show publishes one."},{"name":"people","type":"array | null","title":"People","description":"episode: hosts and guests the feed credits (podcast:person) as [{ name, role, group }]."},{"name":"appleEpisodeId","type":"string | null","title":"Apple episode id","description":"episode: Apple's episode id (only for episodes taken from Apple's directory)."},{"name":"appleEpisodeUrl","type":"string | null","title":"Apple episode URL","description":"episode: the Apple Podcasts page of the episode (only for episodes taken from Apple's directory)."},{"name":"episodeTitle","type":"string | null","title":"Episode title","description":"transcript: the transcribed episode's title."},{"name":"text","type":"string | null","title":"Transcript","description":"transcript: the transcribed text."},{"name":"segments","type":"array | null","title":"Segments","description":"transcript: timed segments [{ start, end, text, speaker }] (with timestamps)."},{"name":"billedMinutes","type":"integer | null","title":"Billed minutes","description":"transcript: started minutes of audio charged (transcription-minute events)."},{"name":"wordCount","type":"integer | null","title":"Words","description":"transcript: words of the transcript."},{"name":"model","type":"string | null","title":"Model","description":"transcript: the transcription model."},{"name":"podcast","type":"string | null","title":"Podcast","description":"summary: the podcast as given."},{"name":"resolvedVia","type":"string | null","title":"Resolved via","description":"summary: search | apple_id | feed_url | website."},{"name":"episodesSource","type":"string | null","title":"Episodes from","description":"summary: feed (the show's RSS feed) | apple (Apple's directory, when the show has no readable feed)."},{"name":"author","type":"string | null","title":"Author","description":"summary: itunes:author, else Apple's artist name."},{"name":"ownerName","type":"string | null","title":"Owner name","description":"summary: itunes:owner name as published in the feed."},{"name":"ownerEmail","type":"string | null","title":"Owner e-mail","description":"summary: itunes:owner e-mail as published in the feed."},{"name":"language","type":"string | null","title":"Language","description":"summary: the feed's language; transcript: the detected spoken language."},{"name":"categories","type":"array | null","title":"Categories","description":"summary: iTunes categories (\"Business > Investing\")."},{"name":"appleGenres","type":"array | null","title":"Apple genres","description":"summary: Apple's genres for the show."},{"name":"showType","type":"string | null","title":"Show type","description":"summary: episodic | serial."},{"name":"complete","type":"boolean | null","title":"Complete","description":"summary: the show has ended (itunes:complete)."},{"name":"website","type":"string | null","title":"Website","description":"summary: the show's website (the feed's link)."},{"name":"newFeedUrl","type":"string | null","title":"New feed URL","description":"summary: the feed the show moved to (itunes:new-feed-url)."},{"name":"copyright","type":"string | null","title":"Copyright","description":"summary: the feed's copyright line."},{"name":"podcastGuid","type":"string | null","title":"Podcast GUID","description":"summary: Podcasting 2.0 podcast:guid."},{"name":"fundingUrls","type":"array | null","title":"Funding links","description":"summary: podcast:funding links."},{"name":"appleUrl","type":"string | null","title":"Apple Podcasts URL","description":"summary: the show's Apple Podcasts page."},{"name":"appleEpisodeCount","type":"integer | null","title":"Apple episode count","description":"summary: episodes Apple lists for the show."},{"name":"episodesInFeed","type":"integer | null","title":"Episodes in feed","description":"summary: episodes the feed (or Apple) lists."},{"name":"firstEpisodeAt","type":"string | null","title":"First episode","description":"summary: date of the oldest listed episode."},{"name":"latestEpisodeAt","type":"string | null","title":"Latest episode","description":"summary: date of the newest episode."},{"name":"averageDurationSecs","type":"integer | null","title":"Average duration (s)","description":"summary: average episode length."},{"name":"medianIntervalDays","type":"number | null","title":"Release cadence (days)","description":"summary: median days between the latest 20 episodes."},{"name":"episodesLast30Days","type":"integer | null","title":"Episodes, last 30 days","description":"summary: episodes published in the last 30 days."},{"name":"episodesLast90Days","type":"integer | null","title":"Episodes, last 90 days","description":"summary: episodes published in the last 90 days."},{"name":"episodesOutsideDateWindow","type":"integer | null","title":"Episodes outside sinceDays","description":"summary: episodes left out by sinceDays (not charged)."},{"name":"otherMatches","type":"array | null","title":"Other matches","description":"summary (name search): other Apple Podcasts matches [{ appleId, title, author, feedUrl, episodeCount }]; give one's appleId to read it instead."},{"name":"transcription","type":"object | null","title":"Transcription","description":"summary: { requested, delivered, minutesBilled, episodes: [{ guid, title, status, minutes?, reason? }] } when transcribeLatest is set on a paid plan."},{"name":"resultsDelivered","type":"integer | null","title":"Episodes delivered","description":"summary: episode rows delivered (and charged) for this podcast."},{"name":"stopReason","type":"string | null","title":"Stop reason","description":"summary: limit (maxEpisodesPerShow reached) | end (no more episodes) | budget | free_plan | aborted."},{"name":"status","type":"string","title":"Status","description":"ok | not_found | error | skipped_invalid | skipped_budget | skipped_free_plan | skipped_unmetered","example":"ok"},{"name":"charged","type":"boolean","title":"Charged","description":"episode and transcript rows: true (charged before they were written); summary rows: false."},{"name":"chargedEvent","type":"string","title":"Charged event","description":"episode on episode rows; transcription-minute on transcript rows (billedMinutes events)."},{"name":"chargedCount","type":"integer","title":"Events charged","description":"Events actually charged when a charge came back short (present only then)."},{"name":"source","type":"string","title":"Source","description":"podcast: the show's RSS feed and Apple's podcast directory (transcripts by Mistral Voxtral)."},{"name":"fetchedAt","type":"string","title":"Fetched at","description":"ISO timestamp."},{"name":"error","type":"object","title":"Error","description":"{ code, message, provider?, status? } when status is not ok: invalid_input, podcast_not_found, not_a_feed, malformed_feed, not_found, http_error, rate_limit (Apple throttling), timeout, network, blocked_url; runtime codes: budget_exhausted, free_plan_limit, unmetered, aborted, charge_failed, record_too_large, invalid_record, dataset_push_failed."},{"name":"warnings","type":"array","title":"Warnings","description":"Notes about this record (caps, Apple fallback, transcripts not included and why)."},{"name":"raw","type":"object | null","title":"Raw data","description":"episode: the parsed feed item; summary: Apple's show record (only with includeRaw)."}],"outputExample":[{"input":"https://feeds.npr.org/510289/podcast.xml","recordType":"episode","position":1,"showTitle":"Planet Money","feedUrl":"https://feeds.npr.org/510289/podcast.xml","appleId":null,"guid":"b297c28a-87e4-4b96-92e0-e64b7b581948","title":"Wanna slow down AI? These biologists can help.","publishedAt":"2026-10-14T21:30:18.000Z","durationSecs":1750,"duration":"29:10","audioUrl":"https://play.podtrac.com/npr-510289/npr.simplecastaudio.com/episodes/fe8692b3/audio/128/default.mp3","audioType":"audio/mpeg","audioSizeBytes":28012130,"episodeNumber":null,"seasonNumber":null,"episodeType":"full","explicit":false,"link":"https://www.npr.org/2026/10/14/nx-s1-6002910/ai-scientific-regulation-conference-asilomar","imageUrl":"https://npr.brightspotcdn.com/dims3/default/strip/false/crop/3377x1900+0+0/resize/1280/quality/66/format/jpg/","description":"Fifty years ago, scientists pioneering a terrifying gene-splicing technology figured out a way to collectively hit pause. Can we do it again with AI? …","links":["https://kilkenomics.com/","https://www.npr.org/newsletter/indicator"],"transcripts":[],"chaptersUrl":null,"people":[],"appleEpisodeId":null,"appleEpisodeUrl":null,"status":"ok","charged":true,"chargedEvent":"episode","source":"podcast","fetchedAt":"2026-10-15T09:00:02.000Z"},{"input":"https://feeds.npr.org/510289/podcast.xml","recordType":"transcript","guid":"b297c28a-87e4-4b96-92e0-e64b7b581948","episodeTitle":"Wanna slow down AI? These biologists can help.","showTitle":"Planet Money","publishedAt":"2026-10-14T21:30:18.000Z","audioUrl":"https://play.podtrac.com/npr-510289/npr.simplecastaudio.com/episodes/fe8692b3/audio/128/default.mp3","language":"en","text":"This is Planet Money from NPR. …","durationSecs":1750.4,"billedMinutes":30,"wordCount":4630,"model":"voxtral-mini-2602","status":"ok","charged":true,"chargedEvent":"transcription-minute","source":"podcast","fetchedAt":"2026-10-15T09:01:10.000Z"},{"input":"https://feeds.npr.org/510289/podcast.xml","podcast":"https://feeds.npr.org/510289/podcast.xml","resolvedVia":"feed_url","episodesSource":"feed","showTitle":"Planet Money","author":"NPR","ownerName":"NPR","ownerEmail":"podcasts@npr.org","description":"Wanna see a trick? Give us any topic and we can tie it back to the economy. …","language":"en","categories":["Business","News"],"appleGenres":[],"explicit":false,"showType":"episodic","complete":null,"website":"https://www.npr.org/podcasts/510289/planet-money","feedUrl":"https://feeds.npr.org/510289/podcast.xml","newFeedUrl":null,"imageUrl":"https://media.npr.org/assets/img/2022/10/24/pm_new_tile_2022_sq.jpg","copyright":"Copyright 2015-2026 NPR - For Personal Use Only","podcastGuid":null,"fundingUrls":["https://plus.npr.org/"],"appleId":null,"appleUrl":null,"appleEpisodeCount":null,"episodesInFeed":355,"firstEpisodeAt":"2023-06-16T18:28:34.000Z","latestEpisodeAt":"2026-10-14T21:30:18.000Z","averageDurationSecs":1635,"medianIntervalDays":2.9,"episodesLast30Days":9,"episodesLast90Days":28,"episodesOutsideDateWindow":0,"transcription":{"requested":1,"delivered":1,"minutesBilled":30,"episodes":[{"guid":"b297c28a-87e4-4b96-92e0-e64b7b581948","title":"Wanna slow down AI? These biologists can help.","status":"delivered","minutes":30}]},"recordType":"summary","resultsDelivered":20,"stopReason":"limit","status":"ok","charged":false,"source":"podcast","fetchedAt":"2026-10-15T09:01:10.000Z"}],"faq":[{"question":"What can I give as a podcast?","answer":"A show name or search term (the best match in Apple Podcasts is used, other matches are listed in the summary), an Apple Podcasts link or id (https://podcasts.apple.com/us/podcast/…/id290783428, or 290783428), an RSS feed URL, or the show's website (its feed is found from the page). Spotify links have no public feed, so give the show's name instead."},{"question":"Where does the data come from?","answer":"From the show's own RSS feed, which every podcast publishes for directories: episode titles, dates, durations, audio files, show notes, iTunes episode and season numbers and Podcasting 2.0 tags (transcript and chapter links, people). The show is looked up in Apple's public podcast directory to find the feed. Shows without a public feed (some Apple-exclusive shows) get Apple's latest 200 episodes with fewer fields."},{"question":"How does the transcription add-on work?","answer":"Set transcribeLatest to transcribe the newest delivered episodes of each show with Mistral Voxtral (paid Apify plans). Each transcript is a separate row (recordType transcript) and costs $0.0105 per started minute of audio. Episodes longer than maxMinutesPerEpisode, or whose audio file's size cannot be checked, are skipped rather than charged, and before any audio is sent the longest the file can last (its real size at 32 kbps) is checked against your maximum cost per run; only the minutes Mistral reports are charged. Many shows also publish their own transcripts: see the transcripts field of each episode (free)."},{"question":"What is in the show profile?","answer":"The summary row of each show: title, author, owner name and e-mail as published in the feed, description, language, categories, explicit flag, show type, website, artwork, Apple id and genres, plus publishing statistics: episodes in the feed, first and latest episode dates, average duration, the median number of days between episodes and the episodes of the last 30 and 90 days."}],"mcpExamplePrompt":"List the 5 latest episodes of the Planet Money podcast with their dates, durations and audio links.","related":["audio-transcription","rss-feed-reader","youtube-transcript-summary","app-store-scraper","rag-web-search"],"urls":{"site":"https://www.sfoln.com/actors/podcast-scraper/","siteJson":"https://www.sfoln.com/actors/podcast-scraper.json","siteMarkdown":"https://www.sfoln.com/actors/podcast-scraper.md","runSync":"https://api.apify.com/v2/actors/sfoln~podcast-scraper/run-sync-get-dataset-items","runAsync":"https://api.apify.com/v2/actors/sfoln~podcast-scraper/runs","mcp":"https://mcp.apify.com?tools=sfoln/podcast-scraper","requestAccess":"mailto:contact@sfoln.com?subject=Access%20request%3A%20Podcast%20Scraper%20%E2%80%93%20Episodes%20%26%20Transcripts%20(sfoln%2Fpodcast-scraper)&body=Please%20publish%20podcast-scraper.%20What%20we%20plan%20to%20use%20it%20for%3A"},"publisher":{"name":"SFOLN LLC","apifyUsername":"sfoln","url":"https://www.sfoln.com","apifyProfile":"https://apify.com/sfoln","email":"contact@sfoln.com"},"generatedAt":"2026-10-22T04:28:58.477Z"}