Audio Transcription - Deepgram Nova-3, SRT, Diarization
Pricing
from $10.00 / 1,000 audio minute (zero setup)s
Audio Transcription - Deepgram Nova-3, SRT, Diarization
Transcribe audio and video URLs — speech-to-text with Deepgram Nova-3. Whisper alternative for meeting transcription, podcast transcripts, and SRT subtitles. Speaker diarization, summaries, language detection. Zero setup $0.010/min or BYOK $0.004/min.
Pricing
from $10.00 / 1,000 audio minute (zero setup)s
Rating
0.0
(0)
Developer
Heim AI
Maintained by CommunityActor stats
0
Bookmarked
72
Total users
61
Monthly active users
5 days ago
Last modified
Categories
Share
Audio Transcriber — Deepgram Nova-3 Speech-to-Text
URL in → transcript out. Pass direct audio/video file URLs; get one JSON dataset row per file. Zero setup — no Deepgram key required. Built for MCP agents, API clients, and scheduled pipelines (that is how almost all usage runs today).
| Actor id | kaz_kakyo/audio-transcriber |
| Minimal input | { "audioUrls": ["https://…/file.mp3"] } |
| Cost | $0.010/min zero-setup · $0.004/min BYOK · $0.00005/run start |
| Output | Dataset rows with type: "transcript" or type: "error" |
Call it (MCP / API / schedule)
MCP (agents)
{"actor": "kaz_kakyo/audio-transcriber","input": {"audioUrls": ["https://example.com/interview.mp3"]}}
Optional extras agents usually want:
{"audioUrls": ["https://example.com/interview.mp3"],"diarize": true,"summarize": true,"includeSrt": true}
After the run, read the default dataset. Every row has a type discriminator — filter on "transcript"; treat "error" as per-file failure. Bad/unsupported URLs become error rows and the run still SUCCEEDS (including all-failed batches) so agent mistakes do not look like platform outages. The run fails only on missing API key or Deepgram auth/credit errors.
API / apify-client
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('kaz_kakyo/audio-transcriber').call({ audioUrls: ['https://example.com/interview.mp3'], diarize: true },{ maxTotalChargeUsd: 1.0 }, // hard budget for this run);const { items } = await client.dataset(run.defaultDatasetId).listItems();const transcripts = items.filter((i) => i.type === 'transcript');
Same shape via REST: POST /v2/acts/kaz_kakyo~audio-transcriber/runs with your token, then poll or attach a webhook.
Make it recurring (what sticky callers do)
One-shot trials convert to spend when the same input path runs again without a human:
- Save a Task in Console with your fixed options (
diarize,summarize, language, BYOK key). Agents and cron jobs call the task id, not ad-hoc input. - Schedule the Task (hourly/daily) when URLs are stable — e.g. overnight meeting exports, or a podcast enclosure list you refresh elsewhere.
- Webhook on
SUCCEEDEDto your endpoint / Zapier / Make — pulldefaultDatasetIdand process onlytype === "transcript"rows. - Cap spend on every automated run with
maxTotalChargeUsd(platform run option). When the cap hits, remaining files becometype: "error"skipped rows — no surprise bill, no silent free transcripts. - Chain: any scraper/RSS actor that outputs direct media file URLs → this actor. Page links (YouTube, Spotify, Drive share pages) fail preflight; download/resolve to a file URL first.
Long runs checkpoint finished URLs — a platform migration resumes without re-billing completed files.
Output contract
One dataset item per input URL (plus skipped/invalid rows). Success shape:
{"type": "transcript","url": "https://example.com/interview.mp3","transcript": "Full smart-formatted text…","durationSeconds": 204.3,"minutesBilled": 4,"model": "nova-3","language": "en","confidence": 0.97,"summary": "…","speakerTranscript": "Speaker 0: …\nSpeaker 1: …","srt": "1\n00:00:00,000 --> …","utterances": [{ "start": 0.0, "end": 3.2, "speaker": 0, "text": "…" }],"words": [{ "word": "Hello", "start": 0.0, "end": 0.4, "confidence": 0.99, "speaker": 0 }]}
| Field | When present |
|---|---|
transcript, durationSeconds, minutesBilled, language, confidence, model | always on success |
summary | summarize: true (English audio) |
speakerTranscript | diarize: true |
srt | includeSrt: true |
utterances / words | respective toggles |
wordsUrl / utterancesUrl / srtUrl | rare — oversized payloads spilled to the key-value store |
Failure / skip row (never charged):
{ "type": "error", "url": "https://…", "error": "…" }
Download the dataset as JSON, CSV, Excel, or HTML from Console or the dataset API.
Why this one
- Cheapest Deepgram on Apify. Zero-setup $0.01/min ($0.60/h). BYOK $0.004/min actor fee + Deepgram wholesale
$0.0043/min ($0.50/h all-in). Typical Store incumbents: ~$0.015–$0.030/min. - Nova-3 by default — or
nova-2/whisper-large. Diarization, SRT, summaries, keyterm boosting. - HTTP-only. Deepgram fetches your URL; the actor does not download media, so no proxy/compute surcharge.
- Batch-safe for agents. Bad links become
type: "error"rows; URL/decode mistakes do not fail the run — only auth/credit problems do.
Pricing
| Event | Price | When |
|---|---|---|
| Audio minute (zero-setup) | $0.010 | No key — transcription included |
| Audio minute (BYOK) | $0.004 | deepgramApiKey set — you pay Deepgram at cost |
| Actor start | $0.00005 | Per run |
Minutes round up per file. 90 s → 2 min → $0.02 zero-setup. 1 h meeting → $0.60 zero-setup, ~$0.50 all-in BYOK.
Deepgram new accounts get $200 free credit (no card) — ~775 h of Nova-3 pre-recorded before you pay Deepgram. BYOK pays for itself quickly on recurring volume.
Input rules agents must follow
audioUrls(required) — directhttpslinks to files (mp3,wav,m4a,flac,ogg,opus,mp4,mov,webm,mkv, ≤2 GB). Not YouTube / TikTok / Spotify / SoundCloud / Vimeo / Apple Podcasts page URLs, and not Google Drive / Dropbox share pages (use a direct/dl=1/raw=1or signed file URL).deepgramApiKey— optional; encrypted; sent only toapi.deepgram.com.model—nova-3(default),nova-2,whisper-large.language/detectLanguage— BCP-47 or auto-detect;multi+ nova-3 for code-switching.- Toggles —
diarize,smartFormat,paragraphs,summarize,includeSrt,includeUtterances,includeWords(see Input tab). keyterms— nova-3 only; boost product names / jargon / speaker names.
Limits: 500 files/run, ~10 min Deepgram processing per file, concurrency 4 (2 for Whisper). Silent audio that decodes is still billed by duration.
See the Input tab for the full schema. See the API tab for run/dataset endpoints.
FAQ
Do I need a Deepgram account? No. Bring a key only for the $0.004/min rate.
What languages? Nova-3: 30+. whisper-large: 90+ for rarer languages.
Is my audio stored? The actor never downloads or stores media — Deepgram fetches the URL; only transcript JSON lands in your dataset.
Why did my URL fail? It was not a direct, publicly reachable (or signed) media file. Resolve page URLs with a downloader first, then call this actor. The run still succeeds with type: "error" rows — check the dataset, not the run status.
How do I keep costs predictable on a schedule? Set maxTotalChargeUsd on the run/task. Prefer BYOK once volume is steady.
If this saved you time, a Store review on the actor page helps a solo dev. Hit a problem? Open an issue.
Telemetry
Each run records one anonymous event: a salted hash of the caller account ID (never the raw ID), run origin (Console / API / MCP / …), and a timestamp. No inputs, results, or personal data — adoption measurement only.