Audio Transcription & Speech to Text - Video, Podcasts, SRT
Pricing
from $9.00 / 1,000 audio minutes
Audio Transcription & Speech to Text - Video, Podcasts, SRT
Turns audio and video files (your own uploads, direct file links, public podcast feeds) into text and subtitles (SRT/VTT) in ~99 languages, on the open-source Whisper model, run inside the tool (no API key).
What does Audio Transcription & Speech to Text do?
It turns audio and video files into text and subtitles. Give it direct file links, upload your own files, or add a public podcast RSS feed, and you get:
- the full transcript as plain text;
- timed segments (start, end, text) as JSON;
- SRT and VTT subtitle files, ready for video editors and players.
It runs the open-source Whisper speech recognition model (through faster-whisper) inside the run itself. There's no API key to bring and no third-party service: your audio never leaves the run.
What you get
| Input | Direct audio/video links (mp3, m4a, wav, ogg, flac, mp4, mov, webm), your own uploads, or public podcast RSS feeds |
| Output | Full text, timed segments (JSON), and SRT + VTT subtitle files |
| Model | Whisper small (accurate) or base (fast), run inside the tool; no API key, no third-party service |
| Languages | ~99, best on English and other major languages |
| Podcasts | 'Only new episodes' transcribes just the episodes it hasn't seen |
| Price | $0.009 per audio minute (fast: $0.005) + $0.005 per file transcribed |
What can I transcribe?
- Direct links to audio or video files: mp3, m4a, wav, ogg, flac, mp4, mov, webm.
- Your own files, uploaded through the input form.
- Public podcast RSS feeds. The newest episodes are transcribed. With "Only new episodes", a scheduled run transcribes only the episodes it hasn't seen before. That's the easiest way to get every new episode as text automatically.
Not supported: YouTube, TikTok, Spotify, Apple Podcasts pages, SoundCloud, and other streaming, DRM or login platforms. Their terms don't allow downloading, so those links get a status row saying so and are never fetched. For a podcast, use the show's own public RSS feed instead. Links that a site's robots.txt disallows are skipped too.
How much does it cost?
You pay per audio minute, charged as the minutes are transcribed, plus a small fee per file transcribed:
| Mode | Model | Price |
|---|---|---|
| Accurate (default) | Whisper small | $0.009 per audio minute ($9 per 1,000 minutes), on every Apify plan |
| Fast | Whisper base | $0.005 per audio minute ($5 per 1,000 minutes); less on paid Apify plans |
| Every file | $0.005 per file transcribed, only when it succeeds |
- A 30-minute podcast episode costs $0.275 in accurate mode, or $0.155 in fast mode.
- The last started minute counts as a full minute.
- You're never charged for a file that can't be downloaded or decoded, or that has no speech.
- Apify's standard run start fee applies.
- Set a spending limit on the run, and the tool stops there and returns the transcript up to that point.
Input
| Field | What it does |
|---|---|
| Audio or video files | Direct links, or your uploads |
| Public podcast RSS feeds | Feed URLs |
| Episodes per feed | The most episodes per feed in one run (default 1) |
| Max minutes per file | A cost guard: only the first N minutes of each file are transcribed and charged (empty = all) |
| Feeds: which episodes | "The newest episodes" or "Only new episodes (for schedules)" |
| Model | Accurate (small) or Fast (base) |
| Language | auto to detect, or a code such as en, de, es |
| Task | Transcribe in the spoken language, or translate to English |
| Output | Everything, plain text, segments, SRT or VTT |
| Word timestamps | Off by default. On: each segment also lists its words with start/end times and a confidence (same price) |
Output
One row per file:
{"id": "file:3f2a…","statusCode": "ok","sourceUrl": "https://example.com/episode-42.mp3","sourceType": "rss","episodeTitle": "Episode 42","language": "en","durationSec": 1834.2,"minutesCharged": 31,"text": "Welcome back to the show…","segments": [{"start": 0.5, "end": 4.2, "text": "Welcome back to the show."}],"srtUrl": "https://api.apify.com/v2/key-value-stores/…/records/transcript-3f2a….srt","vttUrl": "https://api.apify.com/v2/key-value-stores/…/records/transcript-3f2a….vtt","generatedBy": "whisper-small (automatic speech recognition)"}
Files that couldn't be processed get a row with changeType: "status" and a statusCode: platform_not_supported,
robots_disallowed, download_failed, decode_failed, no_audio, no_speech or feed_failed. The run's OUTPUT
record sums it up: files, transcribed, minutes charged, status rows, and whether the spending limit was reached.
With 'Word timestamps' on, each segment also has words: [{"word": "Welcome", "start": 0.5, "end": 0.86, "probability": 0.97}, ...]
(the segments are then included whatever the Output choice). Same price per minute.
A file cut by 'Max minutes per file' is transcribed up to that point and says so:
statusCode: "trimmed_at_max_minutes"durationSec and the minutes read in minutesCharged.
Languages and accuracy
Whisper knows ~99 languages. It works best on English and other major languages; smaller languages get more word errors. Try a short sample in your language first.
Like every speech recognition model, Whisper can sometimes produce text during music or noise ("hallucinations").
Voice detection and other settings reduce this, but check important transcripts. Every row says it was generated by
automatic speech recognition (generatedBy).
Speed and limits
- In accurate mode, an hour of audio takes about 20 minutes; fast mode is about 3 times faster.
- Files up to 2 GB. The run timeout is 2 hours, which is enough for about 5 hours of audio in accurate mode.
Your responsibility
Only transcribe audio you have the rights to. If it records people (for example, calls or meetings), make sure you have their consent where the law requires it. We don't keep, read or reuse your audio or transcripts: they stay in your own Apify storage.
How it compares
| Instead of | With this tool |
|---|---|
| Typing it out by hand | A 30-minute episode in about 10 minutes of processing, for $0.275 |
| A transcription API with its own key | No account or key to bring: the model runs inside the run, and your audio isn't sent anywhere |
| Subtitles made in a video editor | SRT and VTT files come with every transcript |
FAQ
Can I run it on a schedule? Yes. Add a podcast RSS feed, choose "Only new episodes" and schedule the run. A run with nothing new finishes in seconds and costs only Apify's run start fee.
Can I use it through the API or with AI agents? Yes, like any Apify Actor: through the Apify API, the client libraries, integrations (Make, Zapier, n8n), webhooks or MCP.
Is this affiliated with OpenAI? No. It uses the open-source Whisper model (MIT licence) through faster-whisper.
Which file types work? mp3, m4a, wav, ogg, flac, mp4, mov and webm, by direct link or upload, up to 2 GB per file.
Why isn't YouTube supported? YouTube, TikTok, Spotify, Apple Podcasts pages and SoundCloud don't allow downloading in their terms, so those links get a status row and are never fetched. For a podcast, use the show's public RSS feed.
Am I charged when a file fails? No. Files that can't be downloaded or decoded, or have no speech, are free.
My file is bigger than 25 MB. Will it work? Yes. Files up to 2 GB work, by direct link or upload, and one run can take about 5 hours of audio in accurate mode. The 25 MB cap belongs to hosted transcription APIs such as OpenAI's; this tool runs Whisper inside the run, so there's no upload cap of that kind. You pay $0.009 per audio minute (fast mode: $0.005) plus $0.005 per file transcribed, so a 1-hour recording costs $0.545 in accurate mode.
Can I shrink a file for a 25 MB API instead? Yes, if you can run ffmpeg. Keep only the audio, as mono 16 kHz at 32 kbps: ffmpeg -i input.mp4 -vn -ac 1 -ar 16000 -b:a 32k output.mp3. An hour of speech is then about 14 MB. For longer recordings, cut it into 15-minute parts with ffmpeg -i output.mp3 -f segment -segment_time 900 -c copy part%03d.mp3 and send each part separately. Use this tool when you can't run ffmpeg (for example on a hosted automation platform) or don't want to split and join files.
How do I call it from n8n, Make or Zapier? Use Apify's integration for that platform and run the Actor afterstar/audio-transcriber with input like {"audioUrls": [{"url": "https://example.com/episode.mp3"}]}; the transcript rows are in the run's dataset. From a plain HTTP request, POST the same input to https://api.apify.com/v2/acts/afterstar~audio-transcriber/run-sync-get-dataset-items with your Apify token. That call waits up to 5 minutes, which is enough for short clips; for long files, start the run and read the dataset when it finishes (or add a webhook).
More Afterstar tools
- OCR Image to Text - Bulk Images, Screenshots & Scanned PDFs: Reads the printed text in images, screenshots and scanned PDFs (every page) in 31 languages: clean text, confidence, and optionally every word with its box.
Found a problem or need a feature? Open an issue on the Issues tab.