Podcast and Video to Text, Billed by the Minute
Under maintenancePricing
$40.00 / 1,000 audio minutes
Podcast and Video to Text, Billed by the Minute
Under maintenanceFor podcast producers and content-repurposing leads: turn public podcast RSS feeds or direct audio/video URLs into a timestamped transcript, billed one event per started audio minute.
Pricing
$40.00 / 1,000 audio minutes
Rating
0.0
(0)
Developer
US Tech Automations
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
Podcast transcript, audio transcription, and video to text, billed by the minute
This Actor takes public podcast RSS feeds or direct audio/video file URLs and returns a podcast transcript with timed audio transcription (and video to text when the file is video), one row per file, billed one event per started audio minute.
Who it is for
A podcast producer or a content-repurposing lead who needs a back catalogue turned into articles and captions without uploading one file at a time.
Input
| Field | What it does |
|---|---|
| Direct audio or video URLs | Public http(s) file links (mp3, wav, ogg, mp4, and other formats ffmpeg can read) |
| Podcast RSS feed URLs | Public RSS/Atom feeds; the Actor reads enclosure URLs from the feed |
| Maximum episodes per RSS feed | How many enclosures to take from each feed, from the top |
| Maximum files | Hard cap on files transcribed this run |
| Maximum minutes per file | ffmpeg stops each file after this many minutes |
| Whisper model | base (default, baked into the image) or small; CPU, int8 |
| Include SRT text | Optional SubRip captions on each row |
| Language hint | Optional (en, es, …). Blank = detect from the audio |
| Proxy configuration | Apify Proxy, off by default |
You must pass at least one direct file URL or one RSS URL.
Output (one row per file)
| Field | What it holds |
|---|---|
source_url | The media file that was transcribed |
title | Episode title when the file came from an RSS feed; otherwise null |
language | Language the model reported, or null |
audio_minutes / audio_seconds | Length of the audio actually transcribed (after the per-file cap) |
text | Full transcript text |
segments | Timed {start, end, text} list |
srt | SubRip text when Include SRT is on; otherwise null |
model | base or small |
error | Null on success. On failure this is the HTTP or tool error, and text is null |
fetched_at | UTC timestamp of this run |
billed_minutes | ceil(audio_minutes), the number of audio-minute events for this row |
Example row (live run on this machine, 2026-09-20)
Input:
{"mediaUrls": ["https://archive.org/download/testmp3testfile/mpthreetest.mp3"],"maxItems": 1,"maxMinutesPerFile": 2,"modelSize": "base","includeSrt": false}
Output:
{"source_url": "https://archive.org/download/testmp3testfile/mpthreetest.mp3","title": null,"language": "en","audio_minutes": 0.2068,"audio_seconds": 12.408,"text": "Okay, we are trying this for a second time to test the ability to upload an MP3 file. Hopefully this will work.","segments": [{"start": 0.0, "end": 7.48, "text": "Okay, we are trying this for a second time to test the ability to upload an"},{"start": 7.48, "end": 12.24, "text": "MP3 file. Hopefully this will work."}],"srt": null,"model": "base","error": null,"fetched_at": "2026-09-20T21:47:53Z","billed_minutes": 1}
That file is 12.408 seconds of public test speech on archive.org. On this machine, one fetch() run (download + ffmpeg to 16 kHz mono + faster-whisper base int8 on CPU) returned the row above in 2.41 seconds of wall time. A whisper-only pass on the already-downloaded file took 1.08 seconds. Those are two measured runs of this one file, not a speed claim for other files or other machines.
Pricing
Pay per result. On Apify the Actor charges one audio-minute event for every started minute of audio actually transcribed (count = ceil(minutes)). A 12-second file bills 1 event. A 90-second file bills 2 events. Error rows (HTTP 404, empty download, ffmpeg failure) bill 0. The store listing sets the dollar amount per event; this package does not.
Maximum files and Maximum minutes per file are the spend caps.
Limits
- Public files only. No login, no cookies, no CAPTCHA solving.
- Direct file URLs, not a YouTube watch page or a site that only plays audio inside a logged-in player.
- CPU only. The image does not use a GPU.
baseis in the image. Choosingsmalldownloads that model on first use.- One file at a time. Default cap 5 files and 30 minutes each; hard cap 50 files and 180 minutes each.
- Hosts are asked 1 second apart, with a declared User-Agent.
What this does not do
- It does not log in, store cookies, or bypass a paywall or DRM.
- It does not scrape YouTube, Spotify, or Apple Podcasts episode pages. Paste a public RSS URL or a public file URL.
- It does not promise a word-perfect transcript. The text is what faster-whisper
baseorsmallproduced from the audio on this run. Quiet, overlapping, or noisy speech can come back wrong or empty. Empty text on a successful row means the model returned no words, not that words were invented. - It does not check whether you have the right to transcribe the file you pointed at. The live sample uses a public-domain Internet Archive test file and LibriVox public-domain RSS feeds. Other URLs are your responsibility.
- It does not measure or guarantee runtime, accuracy, or uptime beyond the one sample above.
Refunds and support
Refunds: if a run returns zero rows for a valid input, email operations@ustechautomations.com within 7 days and we refund that run. Support: same address, replies within 2 business days.