Audio & Video Transcriber: Whisper Speech to Text (SRT, VTT)
Pricing
from $3.00 / 1,000 audio minute (base / distil small)s
Audio & Video Transcriber: Whisper Speech to Text (SRT, VTT)
Transcribe audio and video files, podcast RSS feeds and media pages to text with Whisper. Get plain text, timestamps, SRT, VTT and JSON. 90+ languages, auto language detection, optional translation to English. From $0.003 per minute, failed files are free.
Pricing
from $3.00 / 1,000 audio minute (base / distil small)s
Rating
0.0
(0)
Developer
NorthLedger Tools
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 hours ago
Last modified
Categories
Share
Audio & Video Transcriber: Whisper speech to text (TXT, SRT, VTT, JSON)
Audio & Video Transcriber turns spoken audio into text. Give it links to audio or video files, or a podcast RSS feed, and it returns the full transcript, timestamped segments and ready-to-use subtitle files (SRT, VTT, TXT, JSON). It runs OpenAI's Whisper model (through the fast faster-whisper engine) directly on Apify, so there is no API key to bring and no per-file minimum. You pay per minute of audio actually transcribed, and failed files are free.
One call, agent-ready, from US$0.003 per audio minute. That is the lowest per-minute price among the popular general audio/video transcribers on Apify Store (those with 50+ users start at US$0.006 per minute; checked 2026-10-26). One API or MCP call takes media URLs in and returns structured transcripts and SRT/VTT files out.
What can this transcription tool do?
- 🎙️ Speech to text for 90+ languages, with automatic language detection or a language you choose.
- 🌍 Translate to English: turn non-English speech into an English transcript in one step.
- 🔗 Many sources: direct audio/video file links (MP3, M4A, WAV, FLAC, OGG, MP4, MOV, MKV, WebM...), podcast RSS feeds (transcribe the latest N episodes) and, best effort, media pages through yt-dlp.
- 🧾 Every output you need: full text, timestamped segments, optional word-level timestamps, plus
.txt,.srt,.vttand.jsonfiles saved to the key-value store. - 🎚️ Four models to trade speed, price and accuracy (see below).
- 🔇 Skips silence with voice activity detection, which is faster and avoids invented text during silence or music.
- 📝 Vocabulary hint: pass names and jargon so rare words are spelled correctly.
- 💸 Cost control: per-file minute cap, per-run file cap and Apify's "Maximum cost per run" are all respected. If the budget runs out, the Actor stops cleanly.
- 🔒 Safe by default: only public http(s) URLs. Private, local and cloud-metadata addresses are refused.
Models and pricing
Pay per event, no subscription. Billing is per started minute of audio actually transcribed, charged only after a transcript is produced.
| Model | Best for | Speed (4 GB run, measured) | Price per audio minute |
|---|---|---|---|
| Base | Clean studio audio and bulk jobs where lowest cost matters most | about 8x faster than real time | US$0.003 |
| Distil Small (English only) | English with better accuracy than Base | about 4x real time | US$0.003 |
| Small (default) | Good all-round accuracy, multilingual, accents, moderate noise | about 3x real time | US$0.0075 |
| Large v3 Turbo | Highest accuracy, noisy audio, hard accents | about 1.3x real time | US$0.016 |
Plus US$0.002 per GB of memory per run (US$0.008 at the default 4 GB) for starting the Actor. Standard Apify platform usage is included in these prices.
Default model is Small.
Examples:
| Job | Cost |
|---|---|
| One 60-minute podcast, Small (default) | about US$0.46 |
| One 60-minute podcast, Base | about US$0.19 |
| 100 files of 10 minutes each, Base | about US$3.01 |
| One 30-minute interview, Large v3 Turbo | about US$0.49 |
Failed downloads, undecodable files and silent files are never charged. Media longer than Maximum minutes per file is cut at that limit and only the minutes transcribed are charged.
How to use it
- Click Try for free.
- Paste your media links (one per line). Podcast RSS feed URLs work too.
- Pick a model and, if you know it, the language.
- Click Start. Open the Output tab for the text and download links for TXT, SRT, VTT and JSON.
Example input
{"mediaUrls": ["https://example.com/audio/interview.mp3","https://feeds.npr.org/500005/podcast.xml"],"model": "small","language": "auto","task": "transcribe","outputFormats": ["txt", "srt", "vtt", "json"],"rssMaxEpisodes": 3,"wordTimestamps": false,"initialPrompt": "Interview about Kubernetes and PostgreSQL."}
Example output (one dataset item per media file)
{"url": "https://example.com/audio/interview.mp3","inputUrl": "https://example.com/audio/interview.mp3","title": null,"status": "success","model": "small","language": "en","languageProbability": 0.98,"task": "transcribe","durationSeconds": 311.4,"transcribedSeconds": 311.4,"truncated": false,"minutesCharged": 6,"wordCount": 810,"text": "This is NPR News Now. ...","segments": [{ "start": 0.0, "end": 4.6, "text": "This is NPR News Now." }],"txtUrl": "https://api.apify.com/v2/key-value-stores/.../records/transcript-interview-3f2a9c1d.txt","srtUrl": "https://api.apify.com/v2/key-value-stores/.../records/transcript-interview-3f2a9c1d.srt","processingSeconds": 113.5,"error": null,"errorType": null}
Failed files are still listed with status: "failed", a readable error and an errorType: INVALID_URL, DNS_ERROR, BLOCKED_URL, HTTP_ERROR, CONNECTION_ERROR, FILE_TOO_LARGE, DOWNLOAD_ERROR, DECODE_ERROR, SOURCE_BLOCKED, UNSUPPORTED_URL, FEED_ERROR, NO_SPEECH, CHARGE_LIMIT_REACHED, TRANSCRIPTION_ERROR.
Use it from AI agents, MCP and the API
The Actor is built for automation: URLs in, structured transcript out, machine-readable errors.
Apify MCP server (Claude, Cursor, VS Code, any MCP client): add https://mcp.apify.com/?actors=northledgertools/audio-video-transcriber and your agent gets a transcription tool.
HTTP API (synchronous)
curl -X POST "https://api.apify.com/v2/acts/northledgertools~audio-video-transcriber/run-sync-get-dataset-items?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"mediaUrls":["https://example.com/episode.mp3"],"model":"small"}'
Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_TOKEN")run = client.actor("northledgertools/audio-video-transcriber").call(run_input={"mediaUrls": ["https://example.com/episode.mp3"]})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["status"], item.get("text", item.get("error")))
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('northledgertools/audio-video-transcriber').call({ mediaUrls: ['https://example.com/episode.mp3'] });const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items[0].text);
It also connects to Make, Zapier, n8n, LangChain and LlamaIndex through Apify's integrations.
Use cases
- Podcasts and interviews: searchable transcripts, show notes and quotes.
- Subtitles: SRT and VTT files for video editors and web players.
- Meeting and call recordings: turn recordings into text for summaries.
- AI and RAG pipelines: feed spoken content to LLMs, embeddings and search.
- Research and journalism: transcribe interviews and field recordings.
- Accessibility and compliance: captions for existing audio libraries.
Tips
- Pick the model for your audio. Small (default) is a good all-rounder. Base is cheapest but makes more mistakes with applause, music or accents. Turbo is best for hard audio.
- Set the language when you know it. Automatic detection ignores a few very rare languages (for example Welsh and Latin) because Whisper often mistakes accented English for them. If your audio really is in one of those, choose the language explicitly.
- Auto-detection looks at speech near the start of the file only, so mixed-language files are best handled with an explicit choice.
- Add a vocabulary hint for names and product terms.
- Use more memory for long files. The Actor uses roughly one CPU core per 4 GB of memory, so 8 GB runs about twice as fast for the same cost per minute.
- Start with a test file and set Maximum cost per run before a big batch.
Limitations
- Whisper can make mistakes with heavy accents, overlapping speakers and domain terms. There is no speaker labelling (diarization) yet.
- Media pages (YouTube, Vimeo, SoundCloud...) are handled through yt-dlp on a best-effort basis. Many sites, YouTube in particular, block downloads from cloud servers, in which case you get a
SOURCE_BLOCKEDerror and are not charged. Direct file links and podcast feeds are the reliable inputs. - Files behind logins, paywalls or expiring signed links may fail to download.
- Maximum download size is 2 GB per file.
- Only transcribe media you have the right to use, and follow the terms of the sites you take it from.
FAQ
Do I need an OpenAI key? No. Whisper runs inside the Actor.
How is the audio length counted? The decoded audio length is rounded up to whole minutes, per file. A 61-second clip is billed as 2 minutes.
Is my audio stored? Files are downloaded to the run's temporary disk, deleted after each transcription, and never shared. The transcripts stay in your run's storage until your plan's retention period ends.
Can you add a feature (diarization, summaries, more formats)? Open a ticket in the Issues tab. Requests are read and answered.