Audio Transcription and Speech to Text for Podcasts
Pricing
from $4.80 / 1,000 audio minute (standard)s
Audio Transcription and Speech to Text for Podcasts
Turn podcast RSS feeds, Apple Podcasts links and audio or video files into text with timestamps. Whisper speech to text in about 100 languages, with SRT and VTT subtitles. Get only new episodes on a schedule. No login. $6 per 1,000 audio minutes. Maintained by CleanScrape.
Pricing
from $4.80 / 1,000 audio minute (standard)s
Rating
0.0
(0)
Developer
CleanScrape
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 hours ago
Last modified
Categories
Share
Turn podcasts and audio files into text. Paste a podcast RSS feed, an Apple Podcasts link or a link to an audio or video file, and get the full transcript with timestamps, plus TXT, SRT and VTT files. It uses Whisper speech to text, works in about 100 languages and needs no login or API key of your own.
- Podcast transcription: the newest episodes of any public feed, with show, episode title, date and episode number.
- Audio to text: MP3, M4A, WAV, FLAC, OGG, MP4, MOV, WebM and other files, from any link that opens without logging in.
- Only new episodes: give a scheduled check a watch name and each run transcribes only what has appeared since the last one.
- Timestamps and subtitles: every spoken segment with its start and end, as a table and as SRT and VTT files.
Price: $6 per 1,000 audio minutes on Standard, $15 per 1,000 on Accurate. A one-hour episode is $0.36 or $0.90. Files that fail are not charged.
Watch the walkthrough
A NASA podcast goes in and timestamped text comes out. In this 75-second demo, a 52-minute episode becomes 8,022 words, with subtitles, on a real run.
Quick start
- Paste a feed or file link under Podcasts and audio links.
- Choose Standard or Accurate.
- For feeds, set Episodes per feed. It starts at 1, the newest episode.
- Click Start. An hour of speech takes about 10 minutes on Standard and 30 on Accurate.
Choose a ready-to-run example
| Example | What you get |
|---|---|
| Transcribe the latest episode of a podcast | The newest episode of a show as text with timestamps, from its Apple Podcasts link |
| Turn an audio file into text with timestamps | One MP3 link to a transcript with TXT, SRT and VTT files |
| Weekly check: transcribe only new podcast episodes | Schedule it, and each run transcribes only what has appeared since the last one |
| Transcribe a Japanese news podcast | Accurate quality with the language found automatically |
What you can paste
| You have | Example |
|---|---|
| A podcast RSS feed | https://feeds.megaphone.fm/abc123 |
| An Apple Podcasts show | https://podcasts.apple.com/us/podcast/name/id1078765985 |
| An Apple Podcasts episode | the same link with ?i=1000… at the end |
| A podcast's website | most sites name their feed, and the Actor finds it |
| A file link | https://example.com/interview.mp3, a signed S3 or Google Cloud link |
| A Dropbox or Google Drive share link | set to "anyone with the link". This is the way to use a file from your computer |
You can also paste several links at once, or a share message with a link in it.
Not supported: YouTube, TikTok, Instagram, Spotify and similar sites. They play media on their own pages and their terms don't allow downloading it. If a show is on Spotify, paste its Apple Podcasts link or RSS feed instead.
Output
One row per episode or file. The Output tab shows a table, and every format can be exported from Storage > Dataset.
| Field | What it is |
|---|---|
podcastTitle, podcastAuthor | The show, from its feed |
title | Episode title, or the file name |
episodeNumber, seasonNumber | When the feed numbers them |
publishedAt, episodeUrl | From the feed |
duration, durationSeconds | Length of the audio |
language, languageConfidence | Language code, and how sure the detection was |
text | The full transcript |
segments | Each spoken segment: start, end, text |
wordCount | Empty for languages written without spaces, such as Chinese |
txtUrl, srtUrl, vttUrl, jsonUrl | The transcript as files |
quality, model, minutesCharged | What was used and charged |
Example segment:
{ "start": 12.4, "end": 16.1, "text": "Welcome back to the show." }
Use it from the API
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("cleanscrape/podcast-transcription").call(run_input={"sources": ["https://podcasts.apple.com/us/podcast/mindshift-podcast/id1078765985"],"maxEpisodesPerFeed": 2,"quality": "standard",})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["title"], item["duration"], item["text"][:200])
Monitor a podcast
- Set Only new episodes: watch name, for example
weekly-podcasts. - Save it as a task and add a schedule under Schedules.
The first run transcribes the newest episodes, up to Episodes per feed. Each later run transcribes only episodes that have appeared since. A check with nothing new costs $0.003 per feed, so a daily check of one feed is about $0.09 a month before any episodes. An episode that fails is tried again on the next runs, up to three times.
Pricing
| Standard | Accurate | |
|---|---|---|
| Whisper model | base | small |
| Per audio minute | $0.006 | $0.015 |
| 30-minute episode | $0.18 | $0.45 |
| 1-hour episode | $0.36 | $0.90 |
| 10 hours | $3.60 | $9.00 |
| Time for 1 hour of speech | about 10 minutes | about 30 minutes |
Apify's Bronze, Silver and Gold plans get 10%, 15% and 20% off. Each file is charged by its started minutes, so 61 seconds counts as 2 minutes. Silence and music count too, because the file is charged by its length.
Reading a podcast feed costs $0.003 per feed, each run, whether or not it has new episodes. Direct file links have no such charge.
Nothing is charged for a file that fails, has no speech or would go over your limits. Set Maximum cost per run under Run options to cap a run: the Actor checks each file's price first and stops before going over.
What to expect
- Accuracy depends on the audio. Clear speech comes out well on Standard. Choose Accurate for names, accents, crowded rooms and languages other than English, and add names under Names and terms to listen for.
- Some podcast hosts refuse automated downloads. In a test of 134 shows, the newest episode of 127 could be reached. The rest, mostly on Buzzsprout and Captivate, refused or answered "not found". Those episodes are listed in the run report and their audio is not charged. The Actor doesn't pretend to be a podcast app to get around this.
- Speakers are not labelled. The transcript doesn't say who is speaking.
- One language per file. It is detected from samples across the whole file, so an ad in another language at the start doesn't decide it. Parts in a second language come out poorly. Set Language if you know it.
- Music and singing are mostly skipped. Sung words may come out wrong or not at all.
- Long files need time. The run stops before its timeout, and a file that would not finish is left out and not charged. The default timeout is 4 hours. For several long files on Accurate, raise it under Run options.
- Memory: 4 GB is the default. Each 4 GB adds a CPU core, so 8 GB works about twice as fast at about the same cost.
Run report
Each run saves REPORT, a readable page listing every source and episode with what happened to it, and SUMMARY, the same as JSON. Both are in the run's Storage > Key-value store.
Common questions
Does this use an official API?
It reads public podcast RSS feeds, which exist so that apps can download episodes, and Apple's public podcast lookup. Transcripts are made by Whisper on Apify's servers. Your audio isn't sent to any other service.
Do I need an OpenAI key or a login?
No. The Whisper models run inside the Actor.
Can I export to Excel or CSV?
Yes. Use Export on the Output tab, or the Storage > Dataset tab for all formats. Long transcripts can pass Excel's limit of 32,767 characters per cell: use txtUrl or the JSON export for those.
How much will a run cost?
Add up the audio minutes and multiply: see Pricing. Maximum cost per run under Run options caps it.
Can I transcribe a private feed?
Yes, if the feed link works without logging in, as many supporter feeds do. The part of a link after ? is hidden in rows and reports.
Is this legal?
Podcasts and audio belong to their creators. Transcribing for your own research, notes or accessibility is common, but publishing a transcript may need the owner's permission. You are responsible for how you use the audio and the transcripts.
Support
Questions or a problem? Open an issue on the Issues tab or write to contact.cleanscrape@gmail.com.
If the Actor was useful, an honest review on its Store page helps other people find it.
CleanScrape is independent and not affiliated with Apple, OpenAI or any podcast host.
More tools from CleanScrape
- ATP and WTA Tennis Rankings Scraper: current ATP and WTA singles, doubles and race rankings with points and movement
- Flashscore Tennis Scraper: tennis results, statistics, point-by-point and head-to-head
- Kick Sponsor Tracker: which Kick streamers promote which brands, with codes and broadcast hours
- Whatnot Scraper: Whatnot listings with prices and seller stats, and live shows
- Whatnot Seller Tracker: top sellers per category, items sold, sales per day and followers over time
- TikTok Shop Product Scraper: US TikTok Shop prices, sellers and ratings
- Bilibili Scraper: Bilibili videos, danmaku, comments and creators
- App Store Reviews & Google Play Reviews Scraper (Play Store): reviews from both app stores in one table
- Google Trends Scraper API for Interest Over Time: search interest over time, by region, related queries and trending searches
- Map Your Show Exhibitor List Scraper for Trade Shows: trade show exhibitor lists and booth changes
- Shopify Product Reviews Scraper for Judge.me and Okendo: Judge.me and Okendo reviews from Shopify product links
- Google News Scraper and RSS Feed Reader: headlines from Google News and publisher feeds
- Google Jobs Scraper: job listings with salaries and apply links
- Pinterest Scraper API: keyword search, public pin links and board previews; search results may lack a pin link
- Google Hotels Scraper: hotel prices and booking offers for your dates
- Meta Threads Scraper: public Threads posts from accounts or post links
- Likee Scraper API: Likee videos and comments
- Casino Bonus Checker: the casino bonus each affiliate and review site shows, with promo codes, 18+ notices and affiliate IDs
- Video Frame Extractor for Scene Changes and Thumbnails: still images from video files at scene changes, intervals or timestamps, with contact sheets
- Career Site Job Listings from Workday, Greenhouse and Lever: open jobs from company career pages, with salaries and new or closed jobs per company
- Economic Calendar Scraper for Official Release Dates: central bank decisions and economic releases with dates and times