Audio & Video Transcriber: Podcasts, SRT, Speakers avatar

Audio & Video Transcriber: Podcasts, SRT, Speakers

Pricing

from $0.17 / 1,000 second transcribed (managed)s

Go to Apify Store
Audio & Video Transcriber: Podcasts, SRT, Speakers

Audio & Video Transcriber: Podcasts, SRT, Speakers

Transcribe audio, video, podcast RSS feeds, uploads and social links with timestamps, SRT, VTT, text and JSON. Speaker labels, language auto-detect, per-second pricing, no charge for failed or silent media. Managed on paid plans, or bring your own key.

Pricing

from $0.17 / 1,000 second transcribed (managed)s

Rating

0.0

(0)

Developer

Offera Studio

Offera Studio

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

What does Audio & Video Transcriber do?

Audio & Video Transcriber turns audio and video into text: upload a file, paste media links, or point it at a podcast RSS feed. You get timestamped segments, speaker labels, the detected language and ready-made SRT and WebVTT subtitles, plain text and JSON. It also takes TikTok, X (Twitter), Facebook, SoundCloud, Dailymotion and YouTube links, Apple Podcasts links and Google Drive, Dropbox and OneDrive share links.

The speech recognition runs at Deepgram, AssemblyAI or Groq, not inside the Actor, so it is fast and accurate. You are charged per second of audio, and failed or silent media are free.

Who is it for?

  • Podcasters and podcast researchers: transcripts and subtitles for new episodes, on a schedule, without paying twice for the same episode.
  • Video creators and agencies: SRT and VTT subtitle files for videos, with speaker labels for interviews.
  • Journalists, analysts and lawyers: searchable text from recordings, calls and public videos.
  • Developers: a clean API for "media URL in, text out", with a dataset hand-over from other Apify scrapers (TikTok, X, Facebook ...).

Two ways to pay: managed or bring your own key

Managed (default)BYOK (bring your own key)
Who can use itPaid Apify plansEvery plan, including free
Provider keysThe Actor owner'sYour own (Deepgram, AssemblyAI, or OpenAI-compatible such as Groq or OpenAI)
Price$0.000167 per second ($0.01 per minute)$0.0000667 per second ($0.004 per minute) plus your provider's own bill
EnginesDeepgram nova-3, then AssemblyAI, then Groq whisper-large-v3-turbo; the next one takes over when one runs out of creditThe one you choose

Managed uses the owner's provider accounts and is available on paid Apify plans. Set the prices in the Apify Console; they are not hard-coded.

On a free plan, managed mode returns one free info row that tells you to switch to BYOK (the run still succeeds). Choose Mode: BYOK, a provider and your key, and it works.

What you can give it

  • Upload one file (mediaFile), or up to 20 media URLs (mediaUrls): direct audio or video files, platform links and share links.
  • Podcast RSS feeds (podcastFeeds): the newest maxEpisodesPerFeed episodes (default 3, up to 50), with publishedAfter and episodeTitleContains filters. Each row carries the episode title, publication date and podcast name.
  • Apple Podcasts links: resolved to the podcast's RSS feed through Apple's lookup API. Spotify links: Spotify audio is DRM protected and is never downloaded; the Actor looks for the same podcast's public RSS feed and, if it cannot find it, returns UNSUPPORTED_SOURCE (free).
  • Google Drive, Dropbox, OneDrive and SharePoint share links: turned into direct download links.
  • Another Actor's dataset (datasetId or pasted datasetItems): the media URL field (videoUrl, mediaUrl, audioUrl, downloadUrl, url ...) is found automatically. Good after a TikTok, X or Facebook scraper.
  • Social links (TikTok, X/Twitter, Facebook, SoundCloud, Dailymotion, YouTube, Reddit, Instagram, Vimeo): only the audio is downloaded with yt-dlp, up to maxMinutesPerItem (default 120).

Social platforms: what works from a data center

Tested on 7 October 2026 from a data center without a proxy: TikTok, X/Twitter, Facebook, SoundCloud and Dailymotion work. YouTube and Reddit block data centers; Instagram and Vimeo want a login. For those:

  • Cookies (cookies, Netscape format, stored encrypted, never logged or saved): paste your browser cookies and logged-in or blocked links usually work.
  • Residential proxy fallback (paid plans only): if a platform blocks the download, the Actor makes one more attempt through an Apify residential proxy and charges platform-proxy-second ($0.00025 per second, $0.015 per minute) on top, only if it worked. Free plans never use the proxy; a blocked link returns PLATFORM_BLOCKED with a hint to use cookies. The owner can switch the fallback off in the Console (PROXY_FALLBACK_ENABLED other than 1) without a new build.

Output

One dataset row per media, plus files in the key-value store.

Row fieldMeaning
statuscompleted, empty (silence, free), failed (free) or info (a free note)
text, segmentsThe transcript and {start, end, text, speaker} segments in seconds
languageThe language you set, or the one detected
durationSeconds, chargedSeconds, proxySecondsLength and what was charged
title, publishedAt, podcastNameFor podcast episodes and platform links
wordsPer-word timestamps, with wordTimestamps on
speakerLabelsUnavailableTrue if you asked for speaker labels but only Groq (which cannot label speakers) was available
srtKey, vttKey, txtKey, jsonKeyKeys of the files in the key-value store (transcripts_<n>.srt ...)
error, errorMessageA short code and a plain explanation

In SRT and VTT, speakers appear as Speaker 1: ..., Speaker 2: ....

Error codes: invalid-url, blocked-url, download-failed, file-too-large, ffmpeg-failed, duration-failed, unsupported-option, provider-http-error, provider-timeout, provider-response-invalid, billing-failed, output-failed, unexpected-error, MANAGED_UNAVAILABLE, PROVIDER_CREDIT_EXHAUSTED, BUDGET_LIMIT, UNSUPPORTED_SOURCE, PLATFORM_BLOCKED, LOGIN_REQUIRED, MAX_DURATION_EXCEEDED.

How much does it cost?

This Actor uses pay per event, counted in seconds (the length of the media, rounded up):

EventPriceWhen
transcript-second-managed$0.000167 per second ($0.01 per minute)Managed mode, successful non-empty transcript
transcript-second-byok$0.0000667 per second ($0.004 per minute)BYOK mode, successful non-empty transcript
platform-proxy-second$0.00025 per second ($0.015 per minute)Only when a platform link needed the residential proxy and was transcribed
  • A 30-minute podcast episode costs $0.30 managed or $0.12 BYOK (plus your provider's bill in BYOK).
  • Failed, empty and info rows are free, and so is anything that cannot be finished: media over the length limit, a blocked platform, a provider out of credit, a link that is not media.
  • Budget check (paid plans): before each media the Actor checks that it fits in your Maximum cost per run. If not, it skips it with BUDGET_LIMIT and no charge.
  • Never charged twice: use a watchlist (watchlistId + newItemsOnly) so scheduled runs only transcribe media they have not done before.

Other options

FieldMeaning
languageISO-639-1 code (en, tr, de). Empty = detect automatically; the detected language is in every row.
speakerLabelsDeepgram and AssemblyAI only; no extra charge.
translateToEnglishBYOK with an OpenAI-compatible provider only (Whisper translation).
wordTimestampsWord-level times in the row and JSON file; no extra charge.
outputFormatstext, srt, vtt, json (default all four).
maxMinutesPerItemLonger media is skipped for free (default 120).

Input example

BYOK with a Groq key (a free Groq key works on a free Apify plan too):

{
"mode": "byok",
"byokProvider": "openai_compatible",
"byokBaseUrl": "https://api.groq.com/openai/v1",
"byokModel": "whisper-large-v3-turbo",
"byokApiKey": "<your key, entered in the secret field>",
"podcastFeeds": ["https://feeds.simplecast.com/Sl5CSM3S"],
"maxEpisodesPerFeed": 2,
"watchlistId": "the-daily",
"newItemsOnly": true
}

Managed (paid plans):

{ "mode": "managed", "mediaUrls": ["https://soundcloud.com/forss/flickermood"], "speakerLabels": true }

Never put a key in a file that you commit; enter it in the secret field.

What a local test returned

On 7 October 2026 the Actor was run locally (BYOK, OpenAI-compatible, with a local stand-in for the provider, because no provider key was available), with these links:

LinkResult
SoundCloud track (Forss, "Flickermood")Completed: audio downloaded with yt-dlp (title, 214 s), converted with ffmpeg, sent to the provider; 214 seconds charged.
Podcast RSS feed, newest episode (The Daily, 22 min 35 s)Completed: episode picked from the feed, MP3 downloaded and converted; 1,356 seconds charged; title, date and podcast name in the row.
A TikTok videoPLATFORM_BLOCKED: TikTok answered "Your IP address is blocked from accessing this post" from the test machine; no charge. (On Apify, paid plans would try the residential proxy once.)
http://localhost/a.mp3blocked-url (private addresses are refused).

The transcript text in that run came from the stand-in, so it says nothing about recognition quality. SRT, VTT, text and JSON files were written as expected.

Limitations

  • Recognition quality is the provider's. Accents, noise and overlapping speech affect it; speaker labels are best-effort.
  • Speaker labels need Deepgram or AssemblyAI. Groq (the last managed fallback) cannot label speakers.
  • Long files: media up to 2 GB and maxMinutesPerItem (default 120 minutes). Providers with a 25 MB limit (Groq, OpenAI) get the audio cut into parts, sent one after the other and joined with the right timestamps.
  • Spotify audio is never downloaded (DRM); only the same podcast's public RSS feed.
  • Platform links change often; yt-dlp is updated with each build. YouTube and Reddit usually need cookies or the proxy fallback; Instagram and Vimeo need cookies.
  • Private or login-only share links (Drive, Dropbox, OneDrive) cannot be downloaded; share them with "anyone with the link". Google Drive files above its virus-scan size show a web page instead of the file and return UNSUPPORTED_SOURCE.
  • Not legal advice on copyright: only transcribe media you have the right to use.

FAQ

Do I need an API key?

In managed mode (paid plans) no. In BYOK mode yes, from Deepgram, AssemblyAI, Groq or OpenAI. Free plans use BYOK.

Why did I get a row with status "info" and nothing was transcribed?

Managed mode is only for paid plans (or it is not set up). Switch to BYOK and add your key. The info row and the run are free.

Am I charged for silence or failures?

No. Only successful, non-empty transcripts are charged.

Can it transcribe a YouTube video?

Sometimes. YouTube blocks data centers, so the Actor needs your cookies or, on paid plans, the one residential proxy attempt (extra platform-proxy-second charge if it works).

Does it keep my keys?

No. Keys and cookies are never logged and never written to rows or files.

For the Actor owner

Set DEEPGRAM_API_KEY, ASSEMBLYAI_API_KEY and GROQ_API_KEY as secret environment variables in the Apify Console (any one is enough), and enter the three event prices under Publication → Monetization (see docs/PUBLISH.md). APIFY_USER_IS_PAYING is set by Apify. PROXY_FALLBACK_ENABLED is 1 in actor.json; change it in the Console to turn the proxy fallback off without a new build.

Local development:

npm install
npm test
npm run build
ACTOR_TEST_PAY_PER_EVENT=true APIFY_USER_IS_PAYING=1 npm run start:dev

More tools from the same developer

All pay-per-result, no proxy or login needed, built and maintained by the same developer:

Website audits

Company data and compliance

Media and AI

Market signals

Feedback

Missing a field you want to track? Open an issue on the Issues tab.