Whisper Speech to Text — Audio & Video Transcriber
Pricing
$40.00 / 1,000 result rows
Whisper Speech to Text — Audio & Video Transcriber
Turn audio and video into text with the open-source Whisper engine. Paste one or more file URLs and get back a timestamped transcript, per-segment detail, and ready-to-use SRT/VTT subtitle files — across 90+ languages, with optional translation to English.
Pricing
$40.00 / 1,000 result rows
Rating
0.0
(0)
Developer
daehwan kim
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
1
Monthly active users
15 hours ago
Last modified
Categories
Share
Turn any audio or video URL into accurate, timestamped text — powered by Whisper, the state-of-the-art open-source speech recognition model, running here on the fast faster-whisper engine. Paste one URL or a whole batch, get back a clean per-minute transcript table plus ready-to-use SRT, VTT and TXT subtitle files — in one run, with no OpenAI API key and no per-seat subscription.
Unofficial. This Actor runs the open-source faster-whisper engine (MIT) with OpenAI's open-source Whisper models (MIT) and is not affiliated with, endorsed by, or sponsored by OpenAI or SYSTRAN. It processes only the media URLs you provide. You are responsible for having the right to transcribe those files and for complying with the source site's Terms of Service and the laws that apply to you.
Why use this Actor?
- One URL → the whole transcript, structured. Every minute of speech becomes one dataset row with its text, sentence-level segments, exact timestamps and a confidence score — ready for spreadsheets, dashboards, embeddings or LLM pipelines.
- Chapters, keywords and a summary — from the same run. Each file also produces pause-detected chapter rows with YouTube-ready
MM:SS Titlestamps, the top 10 keywords with every mention's timestamp, and a one-row file summary (language, duration, word count, speech rate). Show notes, video chapters and topic research without a second tool. - Batch-first. Feed 10 podcast episodes, interview recordings or video files in a single run.
- 99 languages, auto-detected. Spanish meeting? Korean vlog? It just works — and the built-in Translate to English switch gives you an English transcript of any language in one step.
- Subtitles included. Each file also produces
.srt,.vttand.txtfiles in the run's key-value store — drop them straight into YouTube, Premiere or your video player. No extra charge. - Word-level timestamps on demand, for karaoke-style captions or precise clip cutting.
- Private by design. Your media is processed inside the run and discarded with it. Nothing is sent to third-party transcription APIs.
Typical uses: podcast show notes and SEO pages, turning webinars into blog posts, subtitling short-form video, mining user interviews, monitoring earnings calls, making meeting recordings searchable.
How to use it
- Paste one or more direct media URLs into Audio / video URLs (mp3, wav, m4a, mp4, ogg, flac, webm and most other formats work).
- Optionally pick a model, a language, or flip on Translate to English / Word-level timestamps.
- Run it. Read the transcript in the Dataset tab; download subtitles from the Key-value store tab (
transcript-1.srt,transcript-1.vtt,transcript-1.txt, …).
Input
{"audioUrls": ["https://example.com/podcast-episode-42.mp3","https://example.com/interview.mp4"],"model": "base","language": "","translateToEnglish": false,"wordTimestamps": false,"vadFilter": true,"maxMinutesPerFile": 20,"maxResults": 100}
| Field | What it does |
|---|---|
audioUrls (array) / audioUrl (single) | Direct URLs to media files. Up to 10 files per run, 500 MB per file. |
model | tiny (fastest) · base (recommended) · small (most accurate; downloads on first use, ~1 min extra). |
language | ISO 639-1 code (en, es, ko, …). Empty = auto-detect. |
translateToEnglish | Transcribe any language directly into English. |
wordTimestamps | Per-word start/end times inside every segment. |
vadFilter | Skip long silences (faster, cleaner). On by default. |
enrichmentRows | Adds the file summary, chapter and keyword rows (on by default). |
segmentRows | Adds one row per sentence segment — roughly 10 rows per minute of speech. Off by default; see Pricing before enabling. |
maxMinutesPerFile | Cost guard — transcription stops after this many minutes per file. |
maxResults | Cap on billable result rows per run. |
Output
Every row carries a rowType so you can filter in one click:
rowType | How many | What it is |
|---|---|---|
file-summary | 1 per file | Language, duration, transcribed minutes, word count, speech rate (wpm), chapter count, top keywords. |
chapter | ~1 per 2–10 min | Pause-detected chapter with startSec/endSec, a title from its opening words, a YouTube-ready youtubeChapter stamp (MM:SS Title), a 200-character textPreview and word/segment counts. |
keyword | up to 10 per file | A most-mentioned topic word with occurrences, firstMentionSec and mentionsSec (timestamps of mentions). English stopwords are filtered; other languages get plain frequency ranking. |
minute | 1 per transcribed minute | The transcript workhorse row, unchanged from day one — see below. |
segment | opt-in, ~10 per min | One sentence segment per row with exact timestamps and confidence (segmentRows: true). |
The minute row:
{"rowType": "minute","sourceUrl": "https://example.com/podcast-episode-42.mp3","fileIndex": 1,"minuteIndex": 0,"startSec": 0,"endSec": 60,"transcript": "Welcome back to the show. Today we are talking about…","segments": [{"start": 0.0,"end": 4.2,"content": "Welcome back to the show.","confidence": 0.94}],"language": "en","languageProbability": 0.99,"task": "transcribe","modelUsed": "base","audioDurationSec": 1834.2,"subtitleFiles": ["transcript-1.srt", "transcript-1.vtt", "transcript-1.txt"],"charged": true}
Files that fail to download, cannot be decoded, or contain no speech produce a separate notice row (noticeCode + message) instead — so "nothing found" is always distinguishable from "the run broke".
Data fields
| Field | Meaning |
|---|---|
rowType | file-summary · chapter · keyword · minute · segment. |
sourceUrl | The media URL this row came from. |
minuteIndex / startSec / endSec | Which minute of the recording this row covers. |
transcript | All speech in that minute, as plain text. |
segments[] | Sentence-level pieces with start, end, content, confidence (0–1), and words[] when word timestamps are on. |
language / languageProbability | Detected language and detection confidence. |
task | transcribe or translate. |
modelUsed / audioDurationSec | Model that ran, and the file's total duration. |
subtitleFiles | Names of the SRT/VTT/TXT files in the run's key-value store. |
charged | Whether this row was billed. Notice rows are never billed. |
Pricing / Cost estimation
$0.04 per result row (billed as the transcribed-minute event). A row is a transcribed minute, a chapter, a keyword, a file summary or an opt-in sentence segment — every row you receive is one event; rows you don't want can be switched off. No subscription, no monthly fee, no OpenAI API key. Failed downloads, unreadable files, silent audio and notice rows are never charged.
| What you transcribe (defaults: enrichment on, segments off) | Rows returned | Cost |
|---|---|---|
| 5-minute voice memo | ~5 minutes + ~1 chapter + up to 10 keywords + 1 summary ≈ 17 | ~$0.68 |
| 40-minute podcast episode | ~40 + ~8 + 10 + 1 ≈ 59 | ~$2.36 |
| 10 × 30-minute interviews | ~300 + ~60 + 100 + 10 ≈ 470 | ~$18.80 |
Want the plain per-minute transcript only? Set enrichmentRows: false — a 40-minute episode is then 40 rows (**$1.60**), exactly as before. segmentRows: true adds roughly 10 rows per minute of speech on top; enable it only when your pipeline needs sentence-level rows.
Three ways to control spend: switch off enrichmentRows/segmentRows, lower Max minutes per file, or set Max result rows per run — the run stops cleanly at that number and tells you it stopped. You can also set a maximum cost per run in the Actor's Run options; the run then finishes successfully with everything collected up to that point.
Free-plan users get a sample of up to 25 result rows per run — the highest-value rows first (file summary → chapters → keywords → transcript minutes), so you see everything the Actor produces before upgrading. The run ends successfully with a message listing exactly what the full run contained.
Tips
baseis the sweet spot for podcasts and meetings. Switch tosmallfor noisy audio, heavy accents or dense technical vocabulary; drop totinyfor quick previews at half the runtime.- Batch related files in one run — the model loads once and every additional file transcribes faster.
- Setting
languageexplicitly skips detection and shaves a few seconds per file. Worth it on large batches in a known language. - Schedule it against a podcast RSS enclosure URL and pipe the dataset into Google Sheets — an always-current, searchable archive of every episode.
Limitations
- Transcribes media you have the right to process, fetched from direct URLs. It does not log into any site, bypass DRM or paywalls, or rip streaming platforms.
- Music, heavy crosstalk and very low-quality recordings reduce accuracy — that is a property of speech recognition, not of this wrapper.
- Speaker labels (diarization) are not included; segments are timestamped but not attributed to speakers.
- Files over 500 MB or past
maxMinutesPerFileare truncated with a clear notice row (nothing silently dropped).
Privacy & data protection
You (the customer) are the data controller for any personal data contained in the media you submit; this Actor acts as a processor during the run only. Media files are downloaded to ephemeral run storage, transcribed locally inside the run, and destroyed with it — no transcripts or audio are retained by the developer, and nothing is sent to third-party transcription services. Ensure you have a lawful basis (GDPR/PIPA/CCPA etc.) before transcribing recordings of other people.
FAQ and support
Is this the official OpenAI Whisper API? No — it runs the same open-source Whisper models on the faster-whisper engine, inside Apify. Same quality family, no API key, per-minute pay-as-you-go.
Which formats are supported? Practically everything with an audio track: mp3, wav, m4a, aac, ogg, opus, flac, mp4, mov, mkv, webm and more.
Can it transcribe YouTube/TikTok links? No — it needs a direct media file URL. Pair it with a downloader Actor if your source is a platform page, and mind that platform's Terms of Service.
Something is wrong or missing. Open an issue on the Actor's Issues tab — it is read and answered.
⭐ If this Actor saved you time, a sentence about what you used it for helps the next person decide whether it fits their case.