# Audio & Video Transcriber: Whisper, Text & SRT Subtitles (`edgar2026/audio-video-transcriber`) Actor

Transcribe audio and video files and podcast RSS feeds to text with Whisper in about 100 languages. Get the full transcript, timestamped segments and SRT / WebVTT subtitles, or translate to English. $0.008 per minute, no API key needed.

- **URL**: https://apify.com/edgar2026/audio-video-transcriber.md
- **Developed by:** [Edgardo Trujillo](https://apify.com/edgar2026) (community)
- **Categories:** AI, Videos, For creators
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $6.00 / 1,000 audio minutes

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Audio & Video Transcriber: Whisper Speech to Text, Subtitles & Podcast Transcripts

Turn audio and video files into accurate text with **OpenAI Whisper** (open-source model), in about **100 languages**. Paste direct links to MP3, M4A, WAV, MP4 or other media files, or a **podcast RSS feed**. You get the full transcript, timestamped segments and ready-to-use **SRT and WebVTT subtitles**, for **$0.008 per minute**. No API keys or subscriptions.

### What you get

- **Full transcript** as clean text, with paragraphs where the speaker pauses.
- **SRT and WebVTT subtitles**, ready for video players, YouTube uploads or editing tools.
- **Timestamped segments** (JSON) with start and end times in seconds.
- **Detected language** and confidence, or translation to English with one switch.
- **Podcast support:** give an RSS feed and the latest episodes are transcribed automatically.

Typical uses:

- **Podcasters and creators:** show notes, blog posts, captions and searchable archives.
- **Marketers and SEO:** turn webinars and videos into articles and quotes.
- **Researchers and journalists:** transcribe interviews, lectures and meetings.
- **AI builders:** feed transcripts to LLMs, RAG pipelines and summarization flows.

### Input

- **Audio or video file URLs:** direct links to media files, up to 4 hours each. Most formats work: mp3, m4a, aac, wav, flac, ogg, opus, mp4, mov, mkv and webm.
- **Podcast RSS feeds:** the latest N episodes of each feed.
- **Spoken language:** auto-detect by default.
- **Translate to English:** returns an English version instead of the original language.
- **Max minutes per file:** caps the length transcribed and charged.

**Not supported:** YouTube, TikTok, Instagram, Facebook, X, Vimeo and Spotify page links, because those platforms don't allow downloading. Use a direct link to the media file you own or have permission to use.

### Output example

```json
{
    "title": null,
    "url": "https://archive.org/download/gettysburg_johng_librivox/gettysburg_address.mp3",
    "source": "url",
    "durationSec": 157.89,
    "transcribedSec": 157.89,
    "truncated": false,
    "language": "en",
    "languageProbability": 1,
    "wordCount": 298,
    "text": "This is a LibriVox recording. All LibriVox recordings are in the public domain. ... Four score and seven years ago, our fathers brought forth on this continent a new nation...",
    "srt": "1\n00:00:00,050 --> 00:00:05,750\nThis is a LibriVox recording. All LibriVox recordings are in the public domain.\n...",
    "vtt": "WEBVTT\n\n00:00:00.050 --> 00:00:05.750\nThis is a LibriVox recording...",
    "segments": [{ "start": 0.05, "end": 5.75, "text": "This is a LibriVox recording. All LibriVox recordings are in the public domain." }],
    "billedMinutes": 3,
    "error": null
}
```

Real output for the public-domain LibriVox recording above (texts shortened). Files that cannot be downloaded or have no audio get an `error` message and are not charged.

### How much does it cost?

| Event | Price (free plan) |
|---|---|
| Run start | $0.02 |
| Audio minute (rounded up per file) | $0.008 |

Paid Apify plans get lower per-minute prices. Examples on the free plan:

- A 30-minute podcast episode: **$0.26**
- 10 one-hour lectures: **$4.82**

Set **Maximum cost per run** to cap spending. The run stops before starting a file it can't afford.

### FAQ

**Which model is used?** OpenAI's open-source Whisper "small" model, running on dedicated servers with voice-activity detection to skip silence. It works well for podcasts, interviews and lectures. Very noisy audio or heavy accents reduce accuracy, as with any speech recognition.

**How long does it take?** Usually about a fifth of the audio length once the service is warm, plus up to a minute to start. Long files are split into 5-minute parts that are processed in parallel.

**Is my audio stored?** Files are downloaded to temporary storage only for processing and deleted automatically within 24 hours. Transcripts are saved only in your Apify dataset.

**Can I use it from code or an AI agent?** Yes. Use the Apify API, the JavaScript or Python client, Make, Zapier, n8n, or the Apify MCP server.

### Support

Open an issue in the **Issues** tab. Issues are reviewed regularly.

# Changelog

This Actor's version history is a separate document: https://apify.com/edgar2026/audio-video-transcriber/changelog.md

# Actor input Schema

## `mediaUrls` (type: `array`):

Direct links to audio or video files: mp3, m4a, wav, ogg, flac, mp4, mov, webm and more. Up to 4 hours per file. YouTube, TikTok, Instagram and Spotify page links are not supported; use the direct file URL.

## `podcastFeeds` (type: `array`):

Podcast RSS feed URLs. The latest episodes of each feed are transcribed.

## `episodesPerFeed` (type: `integer`):

How many of the latest episodes to transcribe from each feed.

## `language` (type: `string`):

Leave on Auto-detect unless the recording mixes languages or detection is wrong. About 100 languages are supported; for one not listed, use Auto-detect.

## `translateToEnglish` (type: `boolean`):

Output an English translation instead of the original-language transcript.

## `maxMinutesPerFile` (type: `integer`):

Only the first N minutes of each file are transcribed and charged.

## `includeSegments` (type: `boolean`):

Adds a JSON array of segments with start and end times. SRT and WebVTT subtitles are always included.

## Actor input object example

```json
{
  "mediaUrls": [
    "https://archive.org/download/gettysburg_johng_librivox/gettysburg_address.mp3"
  ],
  "episodesPerFeed": 1,
  "language": "auto",
  "translateToEnglish": false,
  "maxMinutesPerFile": 240,
  "includeSegments": true
}
```

# Actor output Schema

## `results` (type: `string`):

Transcription rows with text, language, duration and word count; segments and SRT/WebVTT subtitles are included when requested. Failed files contain an error.

## `summary` (type: `string`):

Processing totals and summary metadata for the run.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "mediaUrls": [
        "https://archive.org/download/gettysburg_johng_librivox/gettysburg_address.mp3"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("edgar2026/audio-video-transcriber").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "mediaUrls": ["https://archive.org/download/gettysburg_johng_librivox/gettysburg_address.mp3"] }

# Run the Actor and wait for it to finish
run = client.actor("edgar2026/audio-video-transcriber").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "mediaUrls": [
    "https://archive.org/download/gettysburg_johng_librivox/gettysburg_address.mp3"
  ]
}' |
apify call edgar2026/audio-video-transcriber --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,edgar2026/audio-video-transcriber"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/xnUbUi1onFnMVvhEk/builds/5jgFj8Uu3zLk85iVs/openapi.json
