Podcast Show Notes & Clip Finder - Whisper avatar

Podcast Show Notes & Clip Finder - Whisper

Pricing

from $0.00005 / actor start

Go to Apify Store
Podcast Show Notes & Clip Finder - Whisper

Podcast Show Notes & Clip Finder - Whisper

Transcribes podcast episodes from an RSS feed with Whisper, then generates show notes, chapter markers, pull-quotes and a ranked list of 30–60s clip-worthy segments with exact timestamps.

Pricing

from $0.00005 / actor start

Rating

0.0

(0)

Developer

Eonix Pvt Ltd

Eonix Pvt Ltd

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Podcast Show Notes & Clip Finder — Whisper

Point this Actor at a podcast RSS feed and every new episode comes back as ready-to-publish assets:

  • Full transcript (.txt) and subtitles (.srt) with exact timestamps
  • Show notes in Markdown — a hook paragraph plus topic bullets
  • Chapter markers (start time + title)
  • Pull-quotes with speaker guesses
  • A ranked list of 30–60 s clip-worthy segments — start/end timestamps, the spoken words, a scroll-stopping hook line, a 0–100 score, and platform fit (Shorts / Reels / TikTok)

Transcription runs on Whisper — on the Actor's own CPU via faster-whisper (no external API needed) or through the OpenAI transcription API. The AI analysis (show notes, chapters, quotes, clips) uses one structured OpenAI call per episode and needs your OpenAI API key; without a key you still get transcripts and subtitles, and the clip-report fee is never charged.

Built for: podcasters and their editors, social teams clipping shows for short-form video, agencies producing show notes at scale, and anyone building a searchable archive of a show.

How it works

  1. Parses the RSS feed and picks the newest unseen episodes (or oldest first with backCatalog). Seen episodes are remembered per feed, so scheduled runs only pay for new content.
  2. Streams the audio with a size guard — episodes above maxAudioMb are skipped with a skipped_too_large record and charge nothing.
  3. Transcribes with Whisper; the status message updates every 60 seconds of processed audio, so long episodes visibly move.
  4. Runs one structured LLM call per episode. Clips are enforced to 20–75 s, non-overlapping, capped at maxClips, ranked best first.
  5. Pushes one dataset record per episode and saves {guid}.txt, {guid}.srt and {guid}-shownotes.md to the key-value store — all linked from the record and the Output tab.

Input

FieldTypeDefaultDescription
rssFeedUrlstring(required)The podcast's public RSS feed URL.
episodeLimitinteger1Max unseen episodes per run (1–25).
backCatalogbooleanfalsefalse: newest unseen first. true: back catalog oldest → newest.
transcriptionModeenumlocal-whisperlocal-whisper (on-CPU, no API cost) or openai-api (needs openaiApiKey).
whisperModelenumbasetiny / base / small — local mode only. Bigger = more accurate, slower.
maxAudioMbinteger300Larger episodes are skipped and never charged.
maxClipsinteger8Upper bound on clip suggestions per episode (1–20).
openaiApiKeysecretEnables the AI analysis and openai-api mode. Stored encrypted; sent only to api.openai.com.
modelstringgpt-4o-miniOpenAI chat model for the analysis call.
proxyConfigurationobjectoffOptional proxy for feed/audio downloads.

Sample output

Real dataset record from a run against NPR News Now (local-whisper, tiny, no openaiApiKey → transcript-only):

{
"type": "episode",
"feedUrl": "https://feeds.npr.org/500005/podcast.xml",
"guid": "b326dfe6-8f9b-4f24-9525-e725000a6484",
"episodeTitle": "NPR News: 08-13-2026 4AM EDT",
"publishedAt": "2026-08-13T08:11:13Z",
"durationSec": 298.1,
"durationHuman": "4:58",
"language": "en",
"transcriptionMode": "local-whisper",
"whisperModel": "tiny",
"wordCount": 776,
"transcriptPreview": "Live from NPR news in Washington, I'm Dan Roman.\nSome agents at immigration and customs enforcement will be getting new gloves to wear\non the field. [...]",
"showNotesMarkdown": null,
"chapters": [],
"pullQuotes": [],
"clips": [],
"clipCount": 0,
"analysis": "skipped-no-openai-key",
"transcriptUrl": "https://api.apify.com/v2/key-value-stores/.../records/b326dfe6-...-2d7af797.txt",
"srtUrl": "https://api.apify.com/v2/key-value-stores/.../records/b326dfe6-...-2d7af797.srt",
"showNotesUrl": null,
"chargedEvents": { "audio-minute": 5, "clip-report": 0 }
}

With openaiApiKey set, analysis becomes "ok" and the record additionally carries:

"showNotesMarkdown": "…150–400 words of Markdown…",
"chapters": [ { "start": 0, "title": "Intro" }, … ],
"pullQuotes": [ { "start": 154.2, "quote": "…", "speakerGuess": "Host" }, … ],
"clips": [
{
"start": 612.4, "end": 654.0,
"transcript": "the words spoken in that window",
"hookLine": "a scroll-stopping caption",
"score_0_100": 91.0,
"platformFit": ["shorts", "tiktok"]
}, …
],
"showNotesUrl": "…/{guid}-shownotes.md"

The dataset's Clips view shows one row per suggested clip across all episodes. Oversized episodes produce a skipped_too_large record, failures an episode_error record, and each run ends with a run-summary listing counts and every saved file.

Use cases

  1. Weekly clip pipeline — schedule the Actor on your show's feed; every new episode lands as an SRT, show notes, and a ranked shortlist of moments to cut for Shorts/Reels/TikTok the same day.
  2. Back-catalog revivalbackCatalog: true with episodeLimit: 25 works through an archive; per-feed state guarantees each episode is transcribed and billed exactly once.
  3. Agency show-notes desk — one scheduled task per client feed; pull showNotesMarkdown and chapters straight into your CMS via the dataset API.

Pricing (pay-per-event)

EventWhen it's chargedPrice
Actor startOnce per run$0.00005
Audio transcribed (per minute)After transcription succeeds and the transcript + SRT are saved; every started minute counts$0.015 / minute
AI clip report (per episode)Once per episode when the AI analysis succeeds$0.07 / episode

You are never charged for failed or skipped work: oversized episodes, download failures and transcription failures charge nothing, and a failed or key-less analysis charges no clip report. A one-hour episode with the full AI report costs about $0.97; transcript-only about $0.90. Compare that with typical transcription services at $0.25–1.00 per minute.

Quality note: the default base model is solid for clear English audio but will make mistakes on crosstalk, heavy accents, music beds and niche jargon; tiny is rougher (fine for clip-finding, not verbatim quotes). Use small or openai-api mode when accuracy matters most. Whisper auto-detects ~100 languages; the record's language field reports what it heard.

State, dedupe and reprocessing

  • Processed episode GUIDs are stored per feed in the named key-value store podcast-clipper-state. A second run on an unchanged feed reports 0 new episodes and charges only the Actor start fee.
  • Episodes skipped as too large are remembered with their size; raising maxAudioMb above it makes them eligible again automatically.
  • To re-process everything, delete the feed's key from podcast-clipper-state (Storage → Key-value stores).

FAQ

Do I need an OpenAI API key? Only for show notes/chapters/quotes/clips (and openai-api transcription). Without it you still get transcripts and SRT files.

Is my API key safe? The field is marked secret, so the platform stores it encrypted. It is sent only to api.openai.com and never logged or written to output.

Why did my run say "0 new episodes"? Every episode in the feed is already in the state store — that's the dedupe working. See the section above to reset.

Can it process video podcasts? If the feed's enclosure is audio (audio/*), yes. Video enclosures are ignored.

Private / paywalled feeds? Any URL served without login works (including secret-token URLs). Feeds requiring cookies or auth headers are not supported.

How are clips chosen? The LLM proposes moments; the Actor then enforces 20–75 s length, clamps to episode bounds, drops overlaps (best score wins) and caps at maxClips, ranked by score_0_100.

A 2-hour episode looks stuck. It isn't — the status message updates every 60 seconds of processed audio. Expect roughly 15–30 minutes for a 2-hour episode on the default settings.

Changelog

  • 0.1 — Initial release: RSS ingestion with per-feed dedupe, local faster-whisper (tiny/base/small) and OpenAI API transcription with chunking, AI show notes / chapters / pull-quotes / ranked clips, SRT + transcript + show-notes artifacts, pay-per-event pricing, dataset Overview + Clips views and Output tab.