Media & Podcast Transcriber: Audio/Video to Text, SRT, VTT avatar

Media & Podcast Transcriber: Audio/Video to Text, SRT, VTT

Pricing

from $15.00 / 1,000 audio minutes

Go to Apify Store
Media & Podcast Transcriber: Audio/Video to Text, SRT, VTT

Media & Podcast Transcriber: Audio/Video to Text, SRT, VTT

Transcribe audio/video links, podcast RSS feeds, Apple Podcasts, Dropbox and Google Drive files into text, speaker paragraphs, SRT and VTT. $0.015 per audio minute; links that fail are free.

Pricing

from $15.00 / 1,000 audio minutes

Rating

0.0

(0)

Developer

Stubborn Otter Software

Stubborn Otter Software

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

12 hours ago

Last modified

Share

Paste links to audio or video files, podcast RSS feeds, Apple Podcasts shows, or Dropbox and Google Drive files. You get back the full transcript, timestamped paragraphs with speaker labels, SRT and VTT subtitle files, and the detected language and length of each file. $0.015 per audio minute on every plan, speaker labels included. You're never charged for links it can't reach, sites it doesn't support, or files with no speech.

You give itYou get back, per file
https://example.com/episode-12.mp3{"status": "ok", "title": "episode-12", "durationSeconds": 3612.4, "chargedMinutes": 61, "language": "en", "speakers": 2, "text": "Speaker 1: Welcome back…", "paragraphs": [{"start": 0.4, "end": 12.4, "speaker": 1, "text": "Welcome back…"}], "srtUrl": "…/transcript-001-episode-12.srt", "vttUrl": "…", "txtUrl": "…"}
https://feeds.example.com/show.xmlOne row per episode, newest first (5 by default)
https://youtu.be/…{"status": "unsupported_site", "reason": "YouTube links aren't supported: …", "chargedMinutes": 0}

What you can transcribe

WorksExamples
Direct audio and video files.mp3, .m4a, .wav, .flac, .ogg, .opus, .webm, .mp4, .mov, .aac: any public link that downloads the file
Podcast feedsRSS or Atom feed links, or the podcast's web page if it links its feed. Episodes are taken newest first
Apple PodcastsShow links (podcasts.apple.com/…/id123…) and episode links (…?i=1000…), resolved to the show's public RSS feed
DropboxFile share links (dropbox.com/scl/fi/…); folder links aren't supported
Google DriveFiles shared with "Anyone with the link"; private files come back with instructions to share them

Refused at no charge: YouTube, TikTok, Instagram, Facebook, X (Twitter), LinkedIn, Twitch, Loom, Vimeo, Zoom and Spotify links, including links that redirect to them and their video CDNs. These platforms' terms don't allow automated downloading, so this Actor never contacts them. Live radio streams and streaming playlists (HLS, DASH, M3U) are refused too, because they have no end to transcribe.

How to use it

  1. Paste your links into Media links, one per line, up to 100 per run. A feed counts as one link, however many episodes it has.
  2. Optional: set limits. Max episodes per feed (5), max minutes per file (180) and max minutes per run (300). Every limit is applied before anything is sent for transcription.
  3. Run. Each file becomes one dataset row, in the order you gave them. The .txt, .srt and .vtt files go to the run's key-value store, and each row links to its files.

Scheduled podcast transcripts: schedule a run with your feed. Skip episodes already transcribed is on by default, so each run transcribes and charges only the new episodes. Runs with no new episodes succeed without charging for transcription.

From n8n, Make, Zapier or the API: "URL in, transcript out". Start the Actor with {"mediaUrls": ["https://…/file.mp3"]} and read the dataset items.

Pricing

EventPriceWhen
Audio minute$0.015Each started minute of a file that came back with words
Audio minute, your own Deepgram key$0.005The same, when you add your own Deepgram API key (Deepgram bills you for the audio directly)
Actor start$0.0003Once per run

Some example prices:

  • A 60-minute podcast episode costs $0.90, or $0.30 with your own key.
  • Ten 30-minute episodes cost $4.50.
  • A 90-second clip counts as 2 started minutes and costs $0.03.

Speaker labels, subtitles and language detection are included.

Always free:

  • links refused or unreachable;
  • web pages and other files that aren't audio or video;
  • files over your limits;
  • files with no speech (silence or music only);
  • episodes skipped as already transcribed;
  • the same file listed twice in one run (charged once).

Your maximum cost per run is respected before transcription starts. The Actor reserves each file's length against your limit before sending it. A file that doesn't fit is skipped with status over_budget, and you aren't charged for it. When a file's length can't be read in advance, the Actor reserves what its size allows. You're never charged more than it reserved.

Free Apify plans: add your own Deepgram API key (new Deepgram accounts get $200 of free credit, no card needed, at console.deepgram.com), or upgrade your Apify plan. The demo clip in the example input works on any plan.

What each row tells you

FieldMeaning
statusok (charged) or, all free: no_speech, duplicate, unsupported_site, not_media, unreachable, too_long, over_budget, needs_api_key, provider_error
reasonWhy a file wasn't transcribed, in one sentence with the fix. For example: "This Google Drive file isn't shared publicly. In Drive choose Share, set General access to 'Anyone with the link', then run again."
title, sourceType, feedTitle, publishedAtWhat the file is and where it came from (direct, feed, apple_podcasts, dropbox, google_drive)
durationSeconds, chargedMinutes, chargedThe file's length and what you paid for it
language, speakers, wordCountThe language detected (or the one you set), the number of speakers and the number of words
textThe full transcript, never truncated, with "Speaker 1:" / "Speaker 2:" when there are several speakers
paragraphs[{start, end, speaker, text}], with times in seconds
txtUrl, srtUrl, vttUrl, wordsUrlLinks to the files (word timings only if you pick that format)
noteAnything unusual. For example, the file's host blocked the speech service, so the Actor uploaded the file itself

The run summary is always in the run's OUTPUT record. It has counts per status, minutes processed, minutes charged, feeds expanded and the commonest failure. Turn on Add a summary row to also get it as the last dataset item.

Reliability

  • One row per file, in your order. A file that can't be transcribed still gets a row with its status and reason. You never get 7 rows back from 10 links with no explanation.
  • Links are checked before transcription. The Actor follows redirects (podcast analytics links included), checks that the link is audio or video, and reads the file's length from its first few kilobytes.
  • No local AI model, no memory errors. Files are transcribed by Deepgram's Nova-3 speech model, which downloads them directly. The Actor runs at 512 MB, and long podcasts don't need more memory.
  • Retries with backoff when the speech service is busy. Four files are transcribed in parallel.
  • The run fails only when nothing could be transcribed, and the error says why. A scheduled feed run with no new episodes isn't a failure.

Limits

  • Links per run: 100. A feed adds up to max episodes per feed (1–500) episodes.
  • File length: up to 600 minutes per file (max minutes per file, default 180). The speech service stops processing any single file after 10 minutes of work. Very long files may hit that limit and come back as provider_error, free.
  • File size: up to 2 GB.
  • Languages: detected automatically, or set one with a code such as en, es, de, pt-BR or ja. Use multi for conversations that switch languages.

Your data and your rights

  • Where your audio goes: each file goes to Deepgram's speech API, through Deepgram's own download of your link or, if the host blocks it, through an upload by this Actor.
  • No model training: every request is sent with Deepgram's opt-out from model training (mip_opt_out=true).
  • With your own key: requests run on your Deepgram account under your agreement with Deepgram.
  • What the Actor keeps: it never stores your media. Transcripts are saved only in your own run's dataset and key-value store. The Actor's only memory between runs is the record of episodes already transcribed. That is a list of episode IDs, kept in a key-value store in your Apify account.
  • Your responsibility: only transcribe media you have the right to process, and get consent where recording laws require it.

This Actor is made by Stubborn Otter Software. It isn't affiliated with or endorsed by Deepgram, Apple, Dropbox or Google.

Questions and issues

Open an issue on the Issues tab. Issues are answered within a day.