Audio, Video & Podcast Transcription: Speech to Text
Pricing
from $4.00 / 1,000 audio minute transcribeds
Audio, Video & Podcast Transcription: Speech to Text
Audio, video and podcast transcription: MP3, M4A, WAV or MP4 links, uploaded files or podcast RSS feeds to text, timestamped segments, and SRT and VTT subtitles. Failed links are not charged. Optional translation and YouTube chapters. 99 languages, no API key needed. $0.004 per audio minute.
Pricing
from $4.00 / 1,000 audio minute transcribeds
Rating
0.0
(0)
Developer
Brasspage
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
11 days ago
Last modified
Categories
Security
Limited permissionsShare
Audio, Video & Podcast Transcription: Speech to Text
Audio, video and podcast transcription in one Actor. Paste a direct MP3, M4A, WAV, MP4 or MOV link, upload a file, or add a podcast RSS feed. Get the full transcript, timestamped segments and SRT and VTT subtitles, in one row per file. $0.004 per audio minute. A link that fails to download or decode is not charged. No API key needed.
| You give it | You get back |
|---|---|
| A direct audio or video file URL (MP3, M4A, WAV, OGG, MP4, MOV) | text: the full transcript |
| ...or a podcast RSS feed (its newest episodes) | segments: start, end and text for every line |
| ...or a file you upload | srt and vtt subtitles, plus .txt, .srt and .vtt files |
language, durationSec, wordCount, minutesBilled, episode titles |
Try it in one click. The prefilled input is a 26-second public-domain clip (President Roosevelt, December 8, 1941). Click Start. The transcript is ready in about 10 seconds and costs $0.004 (1 audio minute plus the $0.00005 start). This is the row it returns (real run, Oct 25, 2026):
| text | language | durationSec | wordCount | minutesBilled |
|---|---|---|---|---|
| Yesterday, December 7, 1941, a date which will live in infamy, the United States of America was suddenly and deliberately attacked by naval and air forces of the Empire of Japan. | English | 26.21 | 31 | 1 |
segments: [{"start": 0, "end": 14, "text": "Yesterday, December 7, 1941, a date which will live in infamy,"}, {"start": 14, "end": 26.1, "text": "the United States of America was suddenly and deliberately attacked..."}]
Transcription uses OpenAI's open Whisper large-v3-turbo model, which supports 99 languages and detects the language automatically. A 1-hour podcast episode costs $0.24. You pay only for the minutes the Actor transcribes. On the Apify free plan, you can try the first 5 audio minutes of each run, up to 30 free minutes per month (see Limits).
Which links work
- Direct links to audio or video files on any public host: MP3, M4A, AAC, WAV, OGG, OPUS, FLAC, MP4, MOV, MKV or WEBM. The Actor reads the audio track of a video.
- Podcast RSS feeds: the newest episodes of each feed, with an optional date filter.
- A file you upload, or an Apify key-value store record URL.
- Not supported: page links from YouTube, Spotify, TikTok, Instagram, Facebook, X, Vimeo, SoundCloud or Twitch. Their terms do not allow downloads of their media, so the Actor returns an
errorrow for them, with no charge. Most podcasts on Spotify or Apple Podcasts also publish a public RSS feed. - Not included: speaker labels (who said what). You get one transcript per file, with timestamps.
Translation and chapters
Both are optional and off by default.
- Translation (
translateTo): set a language code such ases,de,fr,jaorpt-BR. You get the translated text and a translated SRT file with the same timestamps, ready to upload as a second subtitle track. Useento get English subtitles for a podcast in another language. $0.002 per audio minute. - Chapters, summary and keywords (
chapters: true): 5 to 15 chapter markers with titles and start times, as YouTube description lines (00:00 Intro), plus a 3-sentence summary and 5 keywords. Paste the lines into a YouTube description or your show notes. $0.01 per file.
When you turn on both, the chapters, summary and keywords are in the translation language.
What you get
For each episode or file, one row with:
- The full transcript, plus the detected language, the duration and the word count.
- Timestamped segments (start, end, text).
- SRT and VTT subtitles, in the row and as files to download, with a
.txttranscript. - Episode details for podcast feeds: show title, episode title, GUID and publish date.
- Optional extras: a translation with its own SRT file, and chapters, a summary and keywords.
- No charge for failures: a file that fails gives a row with an
errorfield.
How to transcribe audio or video to text (no code)
- Open the Actor in the Apify Console. Keep the prefilled 26-second clip, or paste your podcast RSS feed or a direct audio or video URL.
- Optional: set Translate to (for example
es) and turn on Chapters, summary and keywords. - Click Start. The prefilled clip is ready in about 10 seconds and costs about $0.004. A 5-minute episode costs about $0.02.
- Read the text in the Output tab, or download the
.txt,.srtand.vttfiles.
Tutorial
A real run, start to finish, with the prefilled clip (85 seconds):
What you can do with it
- Podcast transcription: give a feed URL and get the latest N episodes as text. Schedule it with "Only new episodes since last run" to transcribe each new episode as it comes out.
- Video to text and video transcripts: send MP4, MOV or WEBM links. The Actor takes the audio track only. Files can be up to 2 GB.
- Subtitles: download ready-to-use
.srtand.vttfiles for video players, YouTube Studio uploads or editing tools. - Subtitles in other languages: translate the SRT to Spanish or another language, with the original timestamps.
- Show notes and YouTube chapters: get chapter lines, a summary and keywords for each episode.
- AI agents, RAG and LLM pipelines: clean text plus
{start, end, text}segments in JSON. Call it from the Apify API, the Apify MCP server, LangChain, n8n, Make or Zapier. - Content repurposing and SEO: turn episodes into show notes, blog posts, quotes and searchable archives.
- Research and monitoring: track what is said on news, finance or industry podcasts.
Use it from code or an AI agent
- Actor ID:
brasspage/media-transcriber - Smallest input:
{"mediaUrls": ["https://example.com/episode.mp3"]}for files, or{"podcastRssUrls": ["https://example.com/feed.xml"]}for a podcast. - Read the result: one dataset row per file.
textis ready for an LLM, andsegmentsgive{start, end, text}so you can cite timestamps. - AI agents: connect the agent to the Apify MCP server with this one tool:
https://mcp.apify.com?tools=brasspage/media-transcriber. It also works from the Apify API, LangChain, n8n, Make and Zapier. - Cap the bill: set Maximum cost per run (
maxTotalChargeUsd) in the run options. At $0.004 per audio minute, $1 buys about 250 audio minutes.
How it works
- You give podcast RSS feed URLs, direct media file URLs, or upload a file.
- For feeds, the Actor reads the public RSS feed and takes the newest episodes (you can filter by date).
- The Actor downloads the file from public hosts only, and ffmpeg converts the audio to 16 kHz mono. Long files are split into 20-minute parts, and the timestamps are joined again into one timeline.
- Whisper large-v3-turbo transcribes the audio and detects the language.
- Optional: an open LLM (gpt-oss-20b) translates the segments in batches and keeps each segment's timestamps, and writes the chapters, summary and keywords.
- You get one dataset row per file, plus
.txt,.srtand.vttfiles (and the translated.txtand.srt) in the run's key-value store.
Input
| Field | Description |
|---|---|
mediaUrls | Direct links to MP3, M4A, AAC, WAV, OGG, OPUS, FLAC, MP4, MOV, MKV or WEBM files. Apify key-value store record URLs also work (private stores in your account too). |
audioFile | Upload one file from your computer. |
podcastRssUrls | Public podcast RSS feed URLs. |
maxEpisodesPerFeed | How many of the newest episodes to transcribe per feed (default 1). |
publishedAfter | Skip episodes published before this date (YYYY-MM-DD). |
onlyNewSinceLastRun | Skip episodes that an earlier run already transcribed. Use with a schedule. |
language | ISO-639-1 code such as en, es or de. Empty means automatic detection. |
translateTo | Optional. Language code to translate into, such as es, de, ja or pt-BR. Empty means no translation. |
chapters | Optional. true adds chapters, a 3-sentence summary and 5 keywords. |
maxAudioMinutesPerRun | Safety limit: total audio minutes per run (default 600). A file that goes over the limit is cut at the limit. |
Input examples
Each example uses public media and was run once on the Apify platform on Oct 27, 2026. All three SUCCEEDED. Paste one into the JSON input tab and click Start.
1. Spanish subtitles for an English clip (the prefilled 26-second public-domain clip, plus translation). Run hYgxmjT1aEtCKZWJQ: 8 seconds, 1 audio minute plus 1 translated minute, about $0.006. It returned the English text and translatedText "Ayer, 7 de diciembre de 1941, una fecha que vivirá en la infamia, ...", with a translated .es.srt file on the same timestamps.
{"mediaUrls": ["https://api.apify.com/v2/key-value-stores/sTnmNrGoSsi7tLQvs/records/fdr-1941-26s.ogg"],"translateTo": "es"}
2. Podcast transcription with chapters (the newest episode of NPR News Now, a public 5-minute news podcast). Run KDhIcWf6Cygr9wMOO: 10 seconds. It returned 714 words, 4 chapter lines such as 01:09 Israel Election and Netanyahu's Future, a summary and 5 keywords. On a paid plan the full episode costs about $0.024 plus $0.01 for the chapters. (Our test account is on the free plan, so this run stopped at the 5-minute trial.)
{"podcastRssUrls": ["https://feeds.npr.org/500005/podcast.xml"],"maxEpisodesPerFeed": 1,"language": "en","chapters": true}
3. Video to text (a 2-minute public-domain NASA MP4 about Apollo 11). Run 4XdqQKSFkhnFlCxTQ: 8 seconds, 117 seconds of audio, 230 words, 2 audio minutes, about $0.008. The text starts "You're watching NASA Direct. On July 20th, 1969, the world watched in awe ...".
{"mediaUrls": ["https://images-assets.nasa.gov/video/ksc_080504_apollo/ksc_080504_apollo~mobile.mp4"]}
Output example
One dataset item per file:
{"sourceUrl": "https://feeds.npr.org/500005/podcast.xml","feedTitle": "NPR News Now","episodeTitle": "NPR News: 10-15-2026 1AM EDT","episodeGuid": "nx-s1-20261015-0100","publishedAt": "2026-10-15T01:00:00-04:00","mediaUrl": "https://.../default.mp3","durationSec": 318.48,"language": "English","wordCount": 812,"text": "Live from NPR News, I'm ...","segments": [{ "start": 0.0, "end": 4.2, "text": "Live from NPR News, I'm ..." }],"srt": "1\n00:00:00,000 --> 00:00:04,200\nLive from NPR News, I'm ...\n","vtt": "WEBVTT\n\n00:00:00.000 --> 00:00:04.200\nLive from NPR News, I'm ...\n","txtUrl": "https://api.apify.com/v2/key-value-stores/.../records/transcript-0001.txt","srtUrl": "https://api.apify.com/v2/key-value-stores/.../records/transcript-0001.srt","vttUrl": "https://api.apify.com/v2/key-value-stores/.../records/transcript-0001.vtt","minutesBilled": 6,"model": "whisper-large-v3-turbo","llmModel": "openai/gpt-oss-20b","translatedLanguage": "es","translatedText": "En vivo desde NPR News, soy ...","translatedSrt": "1\n00:00:00,000 --> 00:00:04,200\nEn vivo desde NPR News, soy ...\n","translatedTxtUrl": "https://api.apify.com/v2/key-value-stores/.../records/transcript-0001.es.txt","translatedSrtUrl": "https://api.apify.com/v2/key-value-stores/.../records/transcript-0001.es.srt","translationMinutesBilled": 6,"chapters": [{ "start": 0, "title": "Titulares" },{ "start": 92, "title": "Investigación federal" }],"chaptersText": "00:00 Titulares\n01:32 Investigación federal","summary": "Three sentences about the episode.","keywords": ["economía", "Ucrania", "Tennessee", "encuesta", "Starlink"],"transcribedAt": "2026-10-15T05:12:00+00:00"}
The translation and chapter fields appear only when you turn those options on. If a translation or the chapters fail, the row has a translationError or chaptersError field, you still get the transcript, and you are not charged for the failed part.
If a file or feed fails (for example a 404, or a URL that is not media), you get a row with an error field and you are not charged for it.
How much does audio transcription cost?
Pay per event. There is no monthly fee.
| Event | Price |
|---|---|
| Actor start | $0.00005 per run |
audio-minute | $0.004 per started minute of audio, per file |
translation-minute | $0.002 per started minute of audio, per translated file |
chapters-run | $0.01 per file with chapters, summary and keywords |
Examples: the prefilled 26-second clip costs about $0.004 (1 audio minute). A 5-minute news episode costs about $0.024 (6 started minutes). A 45-minute interview costs about $0.18, or $0.28 with a translation and chapters. 100 hours of audio cost $24.
Set Maximum cost per run in the run options to cap your spending. The Actor stops before a file that does not fit in the remaining budget.
Limits
- Max audio minutes per run (
maxAudioMinutesPerRun, default 600 = 10 hours). The run stops when it reaches this total. A file that goes over the limit is cut at the limit, and you pay only for the minutes you get. The last dataset row has anotethat tells you the limit was reached. Raise the limit or start another run for more. - Apify free plan: free trial of 5 audio minutes per run and 30 free minutes per month. On the free plan, the Actor transcribes only the first 5 audio minutes of each run, then stops with a note. Each audio minute, translated minute and chapters run counts as one free minute. After 30 in a calendar month (UTC), runs return only a note until the 1st of the next month. To get full transcripts of all your files, upgrade to a paid Apify plan. Paid plans have no trial limit.
- With Only new episodes since last run, an episode that was cut is not marked as done, so a later run transcribes all of it.
- Translation and chapters use only the transcribed minutes. On the free plan, you can try them on the 5 trial minutes of each run.
FAQ
How do I transcribe an MP3 or MP4 link to text? Paste the link into Direct audio or video file URLs and click Start. You get the text, the segments and the subtitle files in one row. The link must point to the file itself, not to a web page that plays it.
How do I get an SRT file for a podcast episode?
Paste the episode's audio URL, or the podcast's RSS feed. Each row has an srtUrl and a vttUrl to download, and the srt text itself.
Is there a speech to text API without a subscription? Yes, this Actor. You pay per audio minute, with no monthly fee. Call it from the Apify API (see Use it from code or an AI agent).
Can I transcribe YouTube, Spotify, TikTok or Instagram links? No. The terms of those platforms do not allow downloading their media, so the Actor rejects those page URLs, with no charge. Use direct media file URLs or public podcast RSS feeds. Most podcasts that are on Spotify or Apple Podcasts also publish a public RSS feed. Search for "
What happens if a link is wrong?
You get a row with an error field, for example a 404 or a URL that is not media, and you are not charged for it. The other files in the run continue.
Which languages are supported?
Whisper large-v3-turbo supports 99 languages, for example English, Spanish, German, French, Portuguese, Italian, Japanese, Chinese, Hindi and Arabic. Our own test runs used English audio. Set language when you know it.
How long can a file be?
Files can be up to 2 GB. A run transcribes up to 600 audio minutes by default; raise maxAudioMinutesPerRun for more. Long files are split into 20-minute parts. Each part is sent separately, and the timestamps are joined back into one timeline. Our longest test was a 30-minute podcast episode.
How good is the translation? We tested English to Spanish. The model translates each subtitle line separately, so every translated line keeps its original timestamps. Check names, numbers and technical terms before you publish.
Can the audio trick the AI that writes chapters or translations? The transcript goes to the model only as data, with fixed instructions. The model has no tools and no internet access. The Actor accepts only the expected JSON shape and drops everything else, for example extra fields, wrong line counts, or links and HTML that are not in the transcript.
How fast is it? In our runs on Oct 26 and 27, 2026, the 26-second sample took 3 to 11 seconds, a 2-minute video took 8 seconds, and 5 minutes of a news podcast took 10 to 16 seconds.
How accurate is it? The 26-second sample comes back word for word. Music, heavy cross-talk and low-quality phone audio reduce accuracy. Speaker labels (diarization) are not included.
Who is responsible for the rights to the audio? You are. Only transcribe media that you own, that is public, or that you have permission to process. The Actor does not store your media after the run, and it does not try to get around paywalls or logins.
Issues and support
Something does not work, or you need a feature? Open an issue in the Actor's Issues tab, with the run URL if you have one. We reply there.
Related Actors
Other tools from the same developer, with the same pay-per-result pricing:
- ATS Jobs API: every open job from Greenhouse, Lever, Ashby, SmartRecruiters, Workable, Recruitee and Personio boards, with new-job alerts.
- Google Sheets Export & Sync: send the results of any Actor to a Google Sheet (append, replace or upsert).
- Website Contacts & Tech Stack: public emails, phones, social links, CMS and pixels for a list of websites.
- PDF to Markdown OCR: scanned PDFs and images to clean Markdown with tables, for $0.006 per page.