Audio & Video Transcriber (Whisper): MP3, MP4, Podcasts to Text
Pricing
from $15.00 / 1,000 audio minute transcribeds
Audio & Video Transcriber (Whisper): MP3, MP4, Podcasts to Text
Transcribe audio and video to text with Whisper: MP3 to text, MP4 transcription, podcast transcripts from an RSS feed, meeting recordings. Timestamps, SRT and VTT subtitles, 99 languages, no API key. Never charges for a failed or empty result.
Pricing
from $15.00 / 1,000 audio minute transcribeds
Rating
0.0
(0)
Developer
Pavel Tashev
Maintained by CommunityActor stats
0
Bookmarked
10
Total users
7
Monthly active users
24 days ago
Last modified
Share
What does Audio & Video Transcriber do?
Transcribe audio, video and podcast episodes to text, SRT and VTT subtitles with OpenAI Whisper — no API key, pay per audio minute. Optional RAG chunks with audio timestamps, readable paragraphs, and podcast monitoring that never bills the same episode twice. Give it direct links to MP3, M4A, WAV, MP4, MOV or WEBM files, or a podcast RSS feed, and it returns the full transcript, timestamped segments, the detected language and ready-to-use subtitle files.
Whisper runs inside your Apify run, so your files are never sent to a third-party speech API. Because it runs on the Apify platform, you also get API access, scheduling, webhooks, integrations (Make, Zapier, n8n, LangChain) and run monitoring out of the box, and AI agents can call it through the Apify MCP server.
You are never charged for a failed or empty result
Every result says what it is, and only real results cost anything.
status | Meaning | Charged |
|---|---|---|
success | The file was transcribed | Yes, per started audio minute |
truncated | Cut short by the maximum cost per run you set | Only the minutes delivered |
partial | The run stopped mid-file; the text transcribed so far is kept | Only the minutes delivered |
failed | Could not be done — the error field says why | No |
A small Actor start fee applies to every run, including runs where nothing could be transcribed (see the Pricing tab).
If every input fails, the run itself fails with an explanation instead of reporting success with no data.
Why use Audio & Video Transcriber?
- No API keys or accounts. Paste a link and click Start.
- Text, segments and subtitles in one run. Plain text for search and AI, timestamps for editing, SRT and VTT files for video players.
- Podcast monitoring. Add an RSS feed, turn on Only new podcast episodes, and put it on a schedule: each new episode is transcribed once and never billed twice. A day with no new episode costs you nothing.
- Ready for RAG and AI agents. Turn on chunking and the transcript comes back already split into overlapping chunks — each one carrying the start and end time of the audio it came from, so an answer can cite and replay the exact moment.
- Readable output. Paragraphs broken on the natural pauses in speech, not one unbroken wall of text.
- Private by design. Files are processed inside your run and deleted afterwards. Nothing is sent to third-party APIs.
- Fair billing. You pay per started minute of audio that was transcribed. Broken links, web pages, silent files and files over your limits are never charged.
- ~99 languages, with automatic language detection and an option to translate speech into English.
Typical uses: meeting and interview notes, podcast show notes and SEO pages, subtitles for videos, searchable archives of lectures and webinars, and feeding spoken content into RAG pipelines and AI agents.
How to transcribe audio and video to text
- Click Try for free.
- Paste direct file links into Audio and video file links, or add a Podcast RSS feed.
- Optionally choose the Language (automatic by default) and whether to translate to English.
- Click Start. The status line shows progress, for example "Transcribing 2/5: episode.mp3 — 12:30 of 45:00".
- Open the Output tab: Overview lists every file with its duration, billed minutes and subtitle link; Transcript shows the text.
Input
| Field | Description | Default |
|---|---|---|
| Audio and video file links | Direct links to MP3, M4A, WAV, FLAC, OGG, OPUS, AAC, MP4, M4V, MOV, WEBM or MKV files. Dropbox and Google Drive share links are converted automatically. | – |
| Podcast RSS feeds | Feed links; the newest episodes are transcribed. | – |
| Episodes per feed | 1–50 | 3 |
| Language | Automatic detection, or one of 25 common languages. Whisper recognizes about 99 languages in automatic mode. | automatic |
| Task | Transcribe in the original language, or translate to English | transcribe |
| Quality | "Fast" for clear speech; "Accurate" searches harder for the best wording, taking about a third longer at no extra cost to you | fast |
| Names and jargon | Names, brands or terms that appear in the audio, so they are spelled correctly. Keep it short; long prompts can make Whisper skip similar wording | – |
| Word-level timestamps | Start, end and confidence for every word inside each segment; about 15% slower | off |
| Include timestamped segments | Phrases with start and end times in seconds | on |
| Create SRT and VTT subtitle files | Saved to the run's key-value store and linked in the output | on |
| Maximum minutes per file | Longer files are skipped and not charged. The limit is also checked on the decoded audio, so files that do not declare their length are stopped too | 240 |
| Maximum file size (MB) | Larger files are skipped and not charged | 1024 |
| Readable paragraphs | Also return the transcript broken into paragraphs on the pauses in speech | on |
| Split into chunks for RAG | Return extra rows, each an overlapping chunk carrying the audio times it came from | off |
| Chunk size / overlap (characters) | Target chunk size, and how much of the previous chunk to repeat | 1200 / 150 |
| Transcript files | Downloadable .txt, .md and .json files, linked in the output | txt |
| Only new podcast episodes | Remember finished episodes and skip them next run — podcast monitoring | off |
| Memory name | Names this feed's memory so separate feeds never mix | default |
Example input:
{"mediaUrls": [{ "url": "https://archive.org/download/newhampshire_1902_librivox/newhampshire_13_frost_64kb.mp3" }],"podcastFeeds": ["https://www.nasa.gov/feeds/podcasts/small-steps-giant-leaps"],"maxEpisodesPerFeed": 1}
Downloadable transcript files
Every run can also save the transcript as files you can hand to someone, linked in the output as txtUrl,
mdUrl and jsonUrl:
| Format | What is in it |
|---|---|
.txt | The transcript as readable paragraphs |
.md | The same, with a heading and the source, language and duration — drops straight into notes or a wiki |
.json | The whole result: text, paragraphs, segments, language, billed minutes and chunks, as one document |
Plain text is produced by default. The files cost nothing extra — you pay per audio minute transcribed.
Podcast monitoring: never pay for the same episode twice
Turn on Only new podcast episodes, give the feed a Memory name, and schedule the Actor. Each episode is transcribed once; the next run skips it. Measured on a real feed:
| Run | Cost to you | Log |
|---|---|---|
| First run | 11 audio minutes | transcribed |
| Second run, same feed | 0 audio minutes | "1 episode(s) already transcribed, skipped" |
Only episodes that actually finished are remembered, so a download that failed is retried next time rather than being silently skipped forever. Use a different Memory name per feed to keep them independent.
Chunks for RAG, with timestamps you can replay
Set Split into chunks for RAG to On and each transcript also produces chunk rows (rowType: "chunk"), ready
to embed. Unlike chunking a document, every chunk is built from whole speech segments and keeps the audio times it
came from — so a retrieved answer can cite the moment and play it:
{"rowType": "chunk","chunkIndex": 1,"chunkCount": 16,"text": "well and duly equipped, stays, shoes, curls, dress, ornaments...","startTime": 50.0,"endTime": 89.4,"startClock": "0:50","endClock": "1:29","characterCount": 609,"segmentCount": 7}
Chunk rows are not charged — you pay per audio minute transcribed, however many chunks that produces.
Output
Each file becomes one item in the dataset. A real example from a run on 21 September 2026 (text and segments shortened):
{"url": "https://traffic.megaphone.fm/NATIONALAERONAUTICSANDSPACEADMINISTRATION1980847908.mp3","source": "podcast","title": "Passing Down Knowledge","podcast": "Small Steps, Giant Leaps","publishedAt": "2026-09-02T14:11:00+00:00","fileName": "NATIONALAERONAUTICSANDSPACEADMINISTRATION1980847908.mp3","status": "success","error": null,"language": "en","languageProbability": 0.998,"task": "transcribe","quality": "fast","durationSeconds": 996.3,"billedMinutes": 17,"text": "When I learned that it was okay to not know everything, that it's okay to ask questions...","paragraphs": "When I learned that it was okay to not know everything, that it's okay to ask questions.\n\nAllow myself to be mentored — that's when opportunities presented themselves.","wordCount": 2792,"segments": [{ "start": 0.46, "end": 4.36, "text": "When I learned that it was okay to not know everything," },{ "start": 4.36, "end": 6.1, "text": "that it's okay to ask questions" }],"chunkCount": 14,"txtUrl": "https://api.apify.com/v2/key-value-stores/.../records/002-episode.txt","mdUrl": "https://api.apify.com/v2/key-value-stores/.../records/002-episode.md","jsonUrl": "https://api.apify.com/v2/key-value-stores/.../records/002-episode.json","srtUrl": "https://api.apify.com/v2/key-value-stores/.../records/002-episode.srt","vttUrl": "https://api.apify.com/v2/key-value-stores/.../records/002-episode.vtt","model": "whisper-small","processingSeconds": 288.9,"processedAt": "2026-09-21T08:14:02+00:00"}
With chunking on, each transcript is followed by its chunk rows (rowType: "chunk") in the same dataset.
A file that cannot be transcribed is still listed, with "status": "failed", "billedMinutes": 0 and a plain-language error, for example "This is a web page, not a media file. Use a direct link to the audio or video file."
You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.
Output fields
| Field | Meaning |
|---|---|
url, source, title, fileName | The link, file or podcast, the episode title or file name |
podcast, feedUrl, publishedAt | Podcast name, feed and episode date (podcast items only) |
status, error | success, failed, truncated (stopped at your maximum cost per run) or partial (the run ran out of time; the delivered windows are kept and only those minutes are charged) |
language, languageProbability, task | Detected or chosen language, detection confidence, transcribe or translate |
durationSeconds, billedMinutes | Media length and the minutes charged |
text, wordCount | Full transcript |
segments | [{start, end, text}] in seconds |
paragraphs | The transcript broken on the pauses in speech, blank-line separated |
chunkCount | How many chunk rows this transcript produced (when chunking is on) |
srtUrl, vttUrl | Subtitle files |
txtUrl, mdUrl, jsonUrl | Transcript files, when requested |
model, processingSeconds, processedAt | Engine and timing |
Chunk rows (rowType: "chunk") additionally carry chunkId, chunkIndex, chunkCount, characterCount,
startTime / endTime in seconds, startClock / endClock as h:mm:ss, and segmentCount.
How much does it cost to transcribe audio?
This Actor uses pay-per-event pricing: you pay per started minute of audio that was transcribed (a 2 minute 1 second file is 3 minutes). Platform compute is included in the price. Failed downloads, web pages, files without speech and files over your limits cost nothing. See the Pricing tab for the current price per minute. You can set a maximum cost per run: the Actor transcribes only as many minutes as your budget allows and marks the last file as truncated.
Minutes are charged as they are transcribed, in 15-minute windows, and nothing is charged before it is saved: each finished window is written to the run's key-value store (as 001-yourfile.partial.txt) before those minutes are billed. If a run is stopped part-way through a long recording, the file comes back as partial with the text of the windows that finished and only those minutes are billed; if the run is killed outright (the Abort button does not wait), the saved text is still in the key-value store. That file stays there after the run, next to the subtitle files. The Actor also stops starting new files two minutes before the run timeout and lists the rest as skipped, so a run never ends with work it cannot return.
Tips
- Speed: a 21-minute recording transcribes in about 7 minutes on Fast. Runs use 4 GB, which is deliberate: you are billed per minute of audio, not per minute of compute, so running lean keeps the price per minute down rather than making you wait for nothing. Files are processed one after another.
- Get names right. Put the names, brands and technical terms you expect into Names and jargon. In our test, an author's name came out as "Rick Malcrompton" without it and "Rickmal Crompton" with it. It costs nothing. Keep the list short and factual: a long prompt can make Whisper skip wording that resembles it, and in one test a spoken intro line was left out. If anything looks missing, clear the field and run again.
- When to use Accurate. On clean speech the two settings produce almost the same text — on a two-minute test clip both returned the same number of words — so the difference shows up on noisy recordings, strong accents and overlapping speakers. Accurate takes about a third longer on the same file, and the price per minute is the same.
- Word-level timestamps add roughly 15% to the time. Turn them on only if you need per-word captions or search.
- Use direct file links. A link that opens a player page returns HTML, not audio. On podcast hosting sites, copy the episode's download link or use the RSS feed.
- Set the language for short clips or heavy accents if automatic detection picks the wrong one.
- Long recordings: runs are fixed at 4 GB, which handles the 240-minute per-file limit. Very long files are checked against the run's memory before transcription starts and refused with a message instead of crashing the run.
- Put several files in one run. Starting a run costs about 11 seconds of compute before the first second of audio is transcribed (loading the model). That overhead is per run, not per file, so a batch of ten short clips is much cheaper to us — and more reliable for you — than ten separate runs.
- New episodes on a schedule: run daily with Episodes per feed set to 1.
Long recordings
Files are transcribed in 15-minute windows, so memory stays flat no matter how long the recording is — without that, peak memory grew by about 45 MB per audio minute and a long recording would eventually run out. The default run timeout is 2 hours, which covers the 240-minute per-file limit; raise both together if you need more.
Video files
Video works the same way as audio: the container is demuxed and only the audio stream is decoded, so the picture costs nothing to transcribe beyond the download. MP4, M4V, MOV, WEBM and MKV are accepted. Tested on a 37 MB MP4 (9 minutes of narration) — full transcript, SRT and VTT, in one run.
What is not supported
- YouTube, TikTok, Spotify, Instagram, Vimeo, SoundCloud and other platform pages. Their terms do not allow downloading, so this Actor only accepts direct links to files you have the right to use.
- Speaker identification (who said what) is not included yet. Tell us in the Issues tab if you need it — it is the next feature on the list and buyer demand decides when it is built.
- Password-protected or login-only links.
Related tools
Combine with these tools for content and AI pipelines:
- PDF Text Extractor & Document to Markdown: convert PDF, Word, PowerPoint and Excel files (including scans) to Markdown for AI pipelines.
- RSS Feed Reader & Finder: read RSS, Atom and JSON feeds or find the feed of any website.
FAQ and support
Which model is used? Whisper "small" by OpenAI (MIT licence), running through faster-whisper on CPU. Accuracy is best for major languages with clear audio.
Is my data stored? Files are downloaded into your run, transcribed and deleted. Transcripts and subtitles are saved only to your own Apify storage.
Can I transcribe any recording? You must have the right to transcribe the content you submit, for example your own recordings, public-domain material or content you are licensed to use.
Something went wrong? Open an issue in the Issues tab with the link (if it is public) and what you expected. Custom transcription pipelines are available on request.