Media URL Transcriber

v1.0.2$0.005/media minuteData Extraction

Last updated November 8, 2026

Transcribe direct audio and video file links on your own Deepgram, AssemblyAI, Groq, or OpenAI key. One row per file with text, timestamps, and speakers. You pay your provider directly and this actor per minute.

Install

bash
npx @mambalabsdev/mcp-media-url-transcriber

Every tool here also runs hosted, with no install at all, through Apify's MCP endpoint.

Features

  • Works with your own Deepgram, AssemblyAI, Groq, or OpenAI key.
  • One row per file with the transcript, timestamped segments, language, and duration.
  • Speaker labels on Deepgram and AssemblyAI.
  • Refused, failed, and silent files are free, and a run with no key checks up to 3 links for free.
  • Pay per event: Media minute transcribed at $0.005.

Input

media_urlsarrayoptional

Direct links to audio or video files (mp3, wav, m4a, mp4, and others) that answer without a login. Platform pages such as YouTube, TikTok, Instagram, Vimeo, or Spotify are refused with a free row. In Clay, put the column inside a one item list.

providerstringoptional

Whose API transcribes the file, on your key: deepgram (default), assemblyai, groq, or openai. openai takes files up to 25 MB; the others read the URL.

api_keystringoptional

Your own key for the provider above. It is stored encrypted by Apify, sent only to that provider, and never written to a row or a log. With no key the run checks up to 3 files and transcribes nothing, for free.

modelstringoptional

Optional. The provider's model name. Defaults: deepgram nova-3, assemblyai its own default, groq whisper-large-v3-turbo, openai whisper-1 (the only one accepted there).

languagestringoptional

Optional. A language code such as en or de. Empty lets deepgram and assemblyai detect it; whisper models detect it on their own.

diarizestringoptional

yes or no (default no). Labels who spoke each segment. deepgram and assemblyai only; your provider may bill it as an add on.

include_segmentsstringoptional

yes (default) or no. Adds a list of segments with start and end seconds to each row.

max_charge_usdstringoptional

Optional. No new file starts once this is used up. A transcript your provider already billed is still delivered, charged up to this amount, and the run then stops. It limits this actor's charge, not your provider's bill.

Output schema

json
{
  "row_type": "string",
  "media_url": "string",
  "provider": "string",
  "model": "string",
  "language": "string",
  "duration_seconds": "number",
  "billed_minutes": "integer",
  "text": "string",
  "segments": "array",
  "word_count": "integer",
  "speaker_count": "integer",
  "provider_job_id": "string",
  "content_type": "string",
  "file_bytes": "integer",
  "row_status": "string",
  "error_reason": "string",
  "billable_events_json": "string",
  "scraped_at": "string"
}

Pricing

$0.005per media minute
EventFree plan price
Media minute transcribed$0.005
Actor Start$0.003

Pay per event on the Apify platform. Paid Apify plans pay less per event. No subscription, no seat license.

On the Apify free plan the actor stops at $1.50 of charges a month, about 300 media minutes. Any paid Apify plan removes the cap.

Limits

  • This has not been run with a live key. Mamba Labs holds no key for this actor to use. Fixtures shaped from each provider's documentation and the refused key path, tested live against all 4 providers, are the test. The first buyer's key is the live test, so start with one short file.
  • Direct file links only. YouTube, TikTok, Instagram, Facebook, X, Vimeo, Loom, Spotify, SoundCloud, Twitch, LinkedIn, Reddit, Rumble, Dailymotion, and Apple Podcasts pages are refused, along with their media hosts. Podcast feeds are not expanded: give the episode file links.
  • Transcribe only media you have the right to transcribe. The provider's terms apply to your use of your key.
  • Files must answer without a login. A signed link works if it is still valid when the provider reads it.
  • OpenAI accepts files up to 25 MB and only the whisper-1 model here. Groq's own file limit is 25 MB on its free tier and 100 MB on its dev tier.
  • Speaker labels work on Deepgram and AssemblyAI only, and providers can bill them as an add on.
  • Files run one at a time. A long list can reach the run's timeout, so raise it for long files.
  • A restart of the run during a Deepgram, Groq, or OpenAI request sends that file again, which your provider can bill twice. AssemblyAI jobs resume by job ID.
  • max_charge_usd limits this actor's charge, not your provider's bill. Set a budget in your provider account too.
  • If a provider reports no duration, the file bills 1 minute and the row says so.