Video & Audio Transcriber — Word-Level + SRT/VTT
Transcribe any video or audio URL into text with word-level timestamps and ready SRT, VTT, and TXT files. Auto language detection, batch mode.
How it works
- 1Open it on Apify
Hit Run on Apify — it opens the tool in the cloud, no install.
- 2Set the inputs
Adjust
mediaUrl,mediaUrls,language(sensible defaults are pre-filled). - 3Click Run
The tool runs on Apify’s cloud and collects the data for you.
- 4Export the results
Download as JSON, CSV or Excel, or pipe straight into your app, Google Sheets, or an AI agent.
Pricing
$0.02 per transcribed minute = $20 per 1,000
| You are charged for | When | Price |
|---|---|---|
| Transcribed minute | Per minute of audio transcribed. | $0.02 |
| Actor Start | Charged when the Actor starts running. Number of events charged depends on Actor memory (one event per GB, minimum one event). | $0.0000125 |
Pay-per-event pricing: you are billed per result, not per subscription — a run that returns nothing costs nothing beyond the start fee. Billing is handled by Apify on your own account. These are the live Apify store prices, in effect since 2026-08-08, and they are what you are actually charged.
Inputs
| Field | What it does | Type |
|---|---|---|
mediaUrl | Public URL to a video or audio file (mp4, mov, mp3, wav, m4a, webm). Use this for a single file, or mediaUrls for a batch. | string |
mediaUrls | Transcribe several files in one run — one dataset row per URL. Each item is a public video/audio URL. | array |
language | Spoken language ISO code, or 'auto' to detect. | string |
wordTimestamps | Return per-word start/end times (great for karaoke captions). | boolean |
outputFormats | Which subtitle/text files to also produce: srt, vtt, txt. | array |
openaiApiKey | Your OpenAI (Whisper) key. Kept private. | string |
model | Transcription model. Default whisper-1. | string |
baseUrl | OpenAI-compatible base URL. Default https://api.openai.com/v1. | string |
What you get
A structured dataset — each result includes fields like:
_demo_noticedurationSecondslanguagesegmentCountsegmentssourceUrlsrtKeytextvttKeywordCountsrtUrlvttUrlExport every run as JSON, CSV or Excel, or send it to your app, a database, Google Sheets, or an AI agent.
3 ready-to-run use cases
MP4 to SRT: Generate Timed Subtitles From a Video URL
Turn an MP4 video URL into a timed SRT subtitle file with auto-detected language, ready to upload as captions to YouTube or Vimeo.
Podcast MP3 to Text: Transcribe Episodes to Transcript
Podcasters get a clean text transcript from any MP3 episode URL, ready to paste into show notes, a blog post, or searchable archives.
Word-Level Timestamps for Karaoke & TikTok Captions
Need word-by-word captions that pop in sync? This returns per-word start and end times for animated TikTok and Reels karaoke subtitles.
Related tools in YouTube & Creator Tools
Other ready-to-run tools in the same category — all pay-per-use on the Apify cloud.
AI Character Reference Bank
Turn a text description into a consistent character reference set (portrait, 3/4, full-body, expressions) plus a reusable character-bible prompt. No code.
YouTube Channel Scraper
Scrape every video from any YouTube channel, no login or API key: views, dates, duration and thumbnails.
YouTube Comments Scraper
Scrape YouTube comments and replies with no login or API key: text, likes, reply counts, authors and timestamps.
YouTube Playlist Scraper
Export every video in a YouTube playlist: title, channel, duration, views, publish date and URL. No API key, OAuth or quota.
YouTube Transcript Scraper
Extract YouTube transcript text, timestamped segments, SRT, VTT, languages and video metadata without an API key.
YouTube Trending Scraper
Scrape trending YouTube videos by topic or keyword, no login or API key. Views, titles, channels, duration, thumbnails.
Where this tool sits
Video & Audio Transcriber
Give it a public video or audio URL and it returns accurate text with segment and word-level timestamps, plus ready-to-use SRT, VTT, and TXT files. It detects the spoken language automatically. Built for people who need captions, searchable transcripts, or source text to repurpose into clips, articles, or show notes.
How it works
The actor downloads your media, extracts the audio track with ffmpeg, and sends it to OpenAI's Whisper on your own API key. The timestamps and subtitle files come straight from the model's segment and word data, so timing lines up with the actual speech.
Input
| Field | Required | Notes |
|---|---|---|
mediaUrl | one of these | Public URL to a single video or audio file (mp4, mov, mp3, wav, m4a, webm, and similar). |
mediaUrls | one of these | An array of public URLs to transcribe in one run — one dataset row per URL. |
language | no | ISO code of the spoken language, or auto to detect it. Defaults to auto. |
wordTimestamps | no | Return per-word start/end times. Useful for karaoke-style captions. On by default. |
outputFormats | no | Which files to generate: any of srt, vtt, txt. Defaults to srt and vtt. |
openaiApiKey | yes | Your OpenAI (Whisper) key. Kept private and used only for this run. |
There are two advanced fields if you need them: model (defaults to whisper-1) and baseUrl, which points the actor at any OpenAI-compatible endpoint instead of api.openai.com.
Output
One dataset record per run. It includes the detected language, the full text, segments with start/end times, and words when word timestamps are enabled, along with wordCount, segmentCount, and durationSeconds. Each requested subtitle file is saved to the key-value store and referenced by srtKey/srtUrl, vttKey/vttUrl, and txtKey/txtUrl.
Example
{
"mediaUrl": "https://example.com/podcast.mp3",
"language": "auto",
"wordTimestamps": true,
"outputFormats": ["srt", "vtt", "txt"],
"openaiApiKey": "sk-..."
}
Pricing
$0.02 per minute of audio transcribed, plus $0.0000125 each time a run starts. Flat rate — no volume tiers, no plan gates — and you are charged only for minutes actually transcribed. A 40-minute podcast costs $0.80; a 3-minute clip costs $0.06.
That is a flat rate on every Apify plan, which is unusual in this market: transcription is normally billed per *second* on a tier that only improves once you are on a high-volume plan. Here it is $0.02 per minute from your very first run and it does not change with your plan. Word-level timestamps, SRT/VTT/TXT output and language detection are part of the same per-minute charge rather than per-second add-ons.
You bring your own OpenAI key, so Whisper usage is billed to you by OpenAI separately and is not marked up here.
Notes
The mediaUrl has to be directly downloadable. Pages that require login or stream behind a player won't work, so point it at the raw file. Long files take longer and cost more since billing is per minute of audio. Batch runs via mediaUrls are billed the same way — the total is the sum of the minutes across every file, not a per-file fee.