Whisper Speech to Text — Audio & Video Transcriber avatar

Whisper Speech to Text — Audio & Video Transcriber

Pricing

$40.00 / 1,000 result rows

Go to Apify Store
Whisper Speech to Text — Audio & Video Transcriber

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

daehwan kim

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

15 hours ago

Last modified

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 Title stamps, 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, .vtt and .txt files 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

  1. Paste one or more direct media URLs into Audio / video URLs (mp3, wav, m4a, mp4, ogg, flac, webm and most other formats work).
  2. Optionally pick a model, a language, or flip on Translate to English / Word-level timestamps.
  3. 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
}
FieldWhat it does
audioUrls (array) / audioUrl (single)Direct URLs to media files. Up to 10 files per run, 500 MB per file.
modeltiny (fastest) · base (recommended) · small (most accurate; downloads on first use, ~1 min extra).
languageISO 639-1 code (en, es, ko, …). Empty = auto-detect.
translateToEnglishTranscribe any language directly into English.
wordTimestampsPer-word start/end times inside every segment.
vadFilterSkip long silences (faster, cleaner). On by default.
enrichmentRowsAdds the file summary, chapter and keyword rows (on by default).
segmentRowsAdds one row per sentence segment — roughly 10 rows per minute of speech. Off by default; see Pricing before enabling.
maxMinutesPerFileCost guard — transcription stops after this many minutes per file.
maxResultsCap on billable result rows per run.

Output

Every row carries a rowType so you can filter in one click:

rowTypeHow manyWhat it is
file-summary1 per fileLanguage, duration, transcribed minutes, word count, speech rate (wpm), chapter count, top keywords.
chapter~1 per 2–10 minPause-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.
keywordup to 10 per fileA most-mentioned topic word with occurrences, firstMentionSec and mentionsSec (timestamps of mentions). English stopwords are filtered; other languages get plain frequency ranking.
minute1 per transcribed minuteThe transcript workhorse row, unchanged from day one — see below.
segmentopt-in, ~10 per minOne 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

FieldMeaning
rowTypefile-summary · chapter · keyword · minute · segment.
sourceUrlThe media URL this row came from.
minuteIndex / startSec / endSecWhich minute of the recording this row covers.
transcriptAll 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 / languageProbabilityDetected language and detection confidence.
tasktranscribe or translate.
modelUsed / audioDurationSecModel that ran, and the file's total duration.
subtitleFilesNames of the SRT/VTT/TXT files in the run's key-value store.
chargedWhether 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 returnedCost
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

  • base is the sweet spot for podcasts and meetings. Switch to small for noisy audio, heavy accents or dense technical vocabulary; drop to tiny for quick previews at half the runtime.
  • Batch related files in one run — the model loads once and every additional file transcribes faster.
  • Setting language explicitly 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 maxMinutesPerFile are 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.