Documents and media

Podcast Summarizer: Chapters and Quotes from Transcripts

Many podcasts now publish a transcript file with each episode. This Actor reads it, falls back to the show notes when there is none, and writes a structured summary per episode: an abstract, key topics, chapters with timestamps, notable quotes, named guests and action items.

Open the Actor on Apify Store

Podcast Episode Summarizer (AI) — Transcript to Summary. Pay per result; see the Store page for current pricing.

The source and its limits

Input is a list of RSS or Atom feed URLs, Apple Podcasts show links or IDs, or search:<show name> terms. Apple links and searches are resolved through Apple's public iTunes Lookup and Search API, which needs no key.

For each episode the Actor downloads the Podcasting 2.0 <podcast:transcript> file the feed links (text, WebVTT, SRT, JSON or HTML, up to 2 MB). It does not download or transcribe audio. When an episode has no transcript, the show notes are summarized instead and transcriptSource says description; chapters and quote timestamps are then empty.

Three summarizers

  • extractive: no language model. A deterministic summary that picks sentences and keywords from the text itself, so topics, chapters and quotes are verbatim.
  • byok: Claude writes the summary with the Anthropic API key you supply, on a fast, balanced or best tier.
  • hosted: Claude on the Actor's own key. This is what an empty summarizer means when the Actor's model key is configured. If the model fails, the episode gets the extractive summary, marked extractive-fallback.

Each mode is priced differently; see the Store page.

Limits worth knowing

  • Named guests come from <podcast:person role="guest"> tags and speaker labels; the show's author and the first voice of an episode are treated as hosts.
  • The extractive summarizer makes chapters only for texts of 300 words or more, about one per 800 words, up to 8.
  • Model modes cut transcripts at maxInputTokens (at most 40,000 tokens, about three hours of speech) and say so on the item.
  • Apple lookups are limited to about 20 requests per minute.

Fields you get

FieldWhat it holds
showTitle, title, pubDate, durationSecondsThe episode
audioUrl, link, episodeGuidWhere the episode lives
transcriptSource, transcriptUrl, transcriptFormat, transcriptWordstranscript or description, and the transcript used
summary.abstractA short abstract of the episode
summary.keyTopicsKey topics
summary.chaptersChapters with titles, summaries and start times where the transcript has them
summary.notableQuotesQuotes with speaker and timestamp
summary.namedGuests, summary.actionItemsGuests and action items mentioned
summaryMethod, modelTierextractive, byok, hosted or extractive-fallback

Example output

One Podnews Daily episode summarized in extractive mode (from the Actor's README; shortened):

{
  "recordType": "episode",
  "feedUrl": "https://podnews.net/rss",
  "showTitle": "Podnews Daily - podcast industry and podcasting news",
  "title": "PAVE Studios shows head to Disney+ and Hulu",
  "pubDate": "2026-10-16T10:09:41.000Z",
  "durationSeconds": 291,
  "transcriptSource": "transcript",
  "transcriptFormat": "vtt",
  "transcriptWords": 724,
  "summaryMethod": "extractive",
  "summary": {
    "abstract": "Meanwhile, in Australia, podcast publisher Mammamia is to make it to Samsung TV Plus as a streaming TV channel. …",
    "keyTopics": [
      "adam curry",
      "youtube short",
      "samsung tv",
      "tv plus",
      "pave studios"
    ],
    "chapters": [
      {
        "title": "Adam Curry & Youtube Short",
        "summary": "YouTube leads in almost every territory, with 32% market share globally …",
        "startTime": 0,
        "startTimestamp": "0:00"
      }
    ],
    "notableQuotes": [
      {
        "quote": "Adam Curry is to step back from No Agenda, with the show on October the 29th being his last.",
        "speaker": "James Cridland",
        "timestamp": "1:29"
      }
    ],
    "namedGuests": [
      "Adam Curry"
    ],
    "actionItems": [
      "You can find out more with a link in our show notes."
    ]
  },
  "fetchedAt": "2026-10-16T15:33:45.237Z"
}

Use cases

Show notes and newsletters

Get chapters, quotes and an abstract for each new episode of the shows you cover, ready to edit into notes or a newsletter.

Media monitoring

Search summaries and quotes for a brand or topic to see what was said, by whom and at what minute.

Indexing a back catalog

Run the extractive summarizer over many episodes for search indexes. It needs no key and returns topics and quotes verbatim from the transcript.

How to run it

You need an Apify account and its API token (Console → Settings → API & Integrations). Each run is billed per result to your account; set a maximum total charge for the run to cap spend.

With curl

The sync endpoint starts a run, waits up to 300 seconds and returns the dataset items. Extractive summaries (no model) for the three newest episodes of one feed:

export APIFY_TOKEN=<your Apify API token>

curl -sS -X POST \
  "https://api.apify.com/v2/acts/owlabee~podcast-summarizer/run-sync-get-dataset-items" \
  -H "Authorization: Bearer ${APIFY_TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{
  "feeds": [
    "https://rss.buzzsprout.com/1538779.rss"
  ],
  "maxEpisodesPerFeed": 3,
  "summarizer": "extractive",
  "maxConcurrency": 3
}'

From an AI agent (MCP)

Apify hosts an MCP server. This config exposes only this Actor to the agent:

{
  "mcpServers": {
    "owlabee-podcast-summarizer": {
      "url": "https://mcp.apify.com/?tools=owlabee/podcast-summarizer",
      "headers": {
        "Authorization": "Bearer ${APIFY_TOKEN}"
      }
    }
  }
}

Then ask, for example: Summarize the two latest episodes of The Daily with chapters, notable quotes and the guests mentioned.

Python, Node.js and more examples

Runnable curl.sh, python.py, node.mjs and mcp.json files for this Actor are in examples/podcast-summarizer on GitHub.

FAQ

Does it transcribe audio?

No. It uses the transcript file the podcast publishes, or the show notes when there is none.

Can I pass an Apple Podcasts link or just a show name?

Yes. Apple links and IDs are resolved with the iTunes Lookup API, and search:show name takes the top iTunes Search match with a public feed.

Which summarizer should I use?

Extractive for bulk back catalogs, indexing and monitoring; a model mode when you want written abstracts and chapter titles in prose.

Can I summarize specific episodes only?

Yes. List episode GUIDs, episode page URLs or audio URLs in episodes. GUIDs from the podcast RSS scraper work directly.

What if a transcript cannot be downloaded?

The show notes are summarized instead, and an episode with neither produces a NO_TEXT error item.