catalyst-labs/podcast-transcript-api
catalyst-labs--podcast-transcript-apiThis tool calls the Actor "catalyst-labs/podcast-transcript-api" and retrieves its output results. Actor description: Starts a podcast transcript run (RSS, Apple, episode or audio URL) and waits up to waitSecs (max 45s). Returns results, or a runId to poll with get-actor-run, then get-dataset-items. Use those for runs already started. Publisher transcript $0.01, else Whisper $0.009/min; failures free.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"sources": "<sources>"
},
"name": "catalyst-labs--podcast-transcript-api"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| sources | Yes | **REQUIRED** Podcast RSS feed URLs, Apple Podcasts show or episode links, episode web pages, or direct audio/video file URLs (mp3, m4a, mp4, wav...). Feeds return the newest episodes (see maxEpisodesPerFeed). Spotify and YouTube links are not supported. Example: ["https://feeds.buzzsprout.com/1.rss", "https://podcasts.apple.com/us/podcast/id1584274529"] Example values: ["https://podnews.net/rss"] | |
| language | No | Optional ISO 639-1 code (en, es, de...). Picks the publisher transcript in that language and tells speech-to-text the spoken language. Empty = auto-detect (about 100 languages). | |
| waitSecs | No | Max seconds (0–45, default 30) to cap the wait for the Actor run to reach terminal state. For long-running Actors the response returns at the cap with the current run status; follow `nextStep` to poll via get-actor-run. Set to 0 to fire-and-forget. | |
| monitorId | No | Optional name for the onlyNewEpisodes memory, so several schedules can track the same feeds separately. Defaults to the list of sources. Example: "weekly-news-shows" | |
| vocabulary | No | Guest names, brands and jargon passed to speech-to-text so they are spelled right. The show and episode titles are always used. Example: ["Adam Curry", "Podcasting 2.0", "Fountain"] | |
| referrer_id | No | Referral code from another user's receipt (ref_...). They earn 10% of this run's price as credit. | |
| titleFilter | No | Only episodes whose title contains this text (case-insensitive). Example: "interview" | |
| outputFormats | No | Fields to include per episode: text (paragraphs, speaker-labelled when known), segments (start/end seconds, speaker), llmText (fillers removed), srt, vtt, markdown (also combined in TRANSCRIPTS.md). Same price for any combination. Example values: ["text","segments","llmText","srt","vtt","markdown"] | |
| buyerPublicKey | No | Base64 Ed25519 public key (SPKI). Lets you sign a useful/not useful verdict on this run's receipt for 5% off your next run. | |
| publishedAfter | No | Only episodes published on or after this date (YYYY-MM-DD). Example: "2026-10-01" | |
| transcriptMode | No | auto: use the publisher's Podcasting 2.0 transcript ($0.01 per episode) and transcribe only when none exists (per audio minute). publisherOnly: never run speech-to-text. speechToText: always transcribe. Example values: "auto" | auto |
| includeChapters | No | Add the episode's Podcasting 2.0 chapters (start, title) when the feed publishes them. Free. Example values: true | |
| maxAudioMinutes | No | Hard cap on speech-to-text minutes billed in this run; episodes that would exceed it are skipped (not charged, retryable). 0 = publisher transcripts only. Combine with the run option maxTotalChargeUsd. Example: 300 Example values: 120 | |
| onlyNewEpisodes | No | Remember delivered episodes and skip them on later runs (never charged twice). Use with a schedule to get each new episode once. | |
| maxEpisodesPerFeed | No | Newest N episodes taken from each feed or Apple show link. 0 = all episodes in the feed. Example: 5 Example values: 1 | |
| maxMinutesPerEpisode | No | Episodes longer than this are skipped (not charged), or transcribed only up to this length when truncateLongEpisodes is on. Example: 240 Example values: 180 | |
| truncateLongEpisodes | No | When an episode is longer than maxMinutesPerEpisode, transcribe and bill only its first maxMinutesPerEpisode minutes (record flagged truncated: true) instead of skipping it. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| tip | No | Advisory guidance RAG Web Browser wrote to its key-value store under the reserved "TIP" key | |
| runId | Yes | Actor run ID | |
| stats | No | Run statistics | |
| status | Yes | Run status: READY | RUNNING | TIMING-OUT | TIMED-OUT | ABORTING | ABORTED | SUCCEEDED | FAILED | |
| actorId | Yes | Stable Apify Actor ID from the run record | |
| summary | Yes | Past-tense summary of the run state | |
| exitCode | No | Actor process exit code; populated for terminal states (especially FAILED) | |
| nextStep | Yes | One primary follow-up action with identifiers interpolated | |
| storages | Yes | Dataset and key-value store metadata, keyed by alias. "default" is always the primary entry. | |
| actorName | No | "username/actor-name" | |
| startedAt | No | ISO timestamp when the run started | |
| finishedAt | No | ISO timestamp when the run finished (terminal states only) | |
| statusMessage | No | Pass-through from Apify run.statusMessage | |
| apifyConsoleUrl | No | Personalized Apify Console link to the run; present only for Console sessions |