# Audio & Video Transcription — Speech to Text, SRT & Summary (`phronexusai/audio-video-transcription`) Actor

Transcribe audio and video to text: MP3, MP4, WAV, Google Drive, Dropbox and podcasts. Get speaker labels, SRT/VTT subtitles and an AI summary in 99 languages. Fast, accurate speech to text at $0.30 per hour. Failed files are free.

- **URL**: https://apify.com/phronexusai/audio-video-transcription.md
- **Developed by:** [PhronexusAI](https://apify.com/phronexusai) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.00 / 1,000 audio minute transcribeds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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 Transcription — Speech to Text, SRT Subtitles & AI Summary

Convert **audio to text** and **video to text** in minutes. Paste a link to an MP3, MP4, WAV or other media file, a Google Drive or Dropbox share link, or a podcast feed, and get:

- the **full transcript** (TXT, Markdown, JSON)
- ready-to-use **SRT and VTT subtitles**
- **speaker labels** (who said what: Speaker A, Speaker B…)
- a short **AI summary** with key points and topics
- **automatic language detection** across 99 languages

All of this for **$0.30 per hour of audio** ($0.005 per minute). Speakers, subtitles and the summary are included. **Failed files are free.**

***

### Why use this transcription tool?

| | This Actor |
|---|---|
| Price | **$0.30 per audio hour**, billed per started minute |
| Speaker labels (diarization) | ✅ Included |
| SRT + VTT subtitles | ✅ Included |
| AI summary, key points, topics | ✅ Included |
| Word-level timestamps (JSON) | ✅ Included |
| Google Drive, Dropbox, OneDrive links | ✅ |
| Podcast RSS & Apple Podcasts | ✅ |
| Charged for failed files | ❌ Never |
| Monthly subscription | ❌ None, pay only for what you transcribe |

***

### Use cases

- **Podcast transcription:** turn every episode into text for show notes, blog posts and SEO.
- **YouTube & social video subtitles:** generate SRT files for YouTube, TikTok, Instagram Reels, CapCut, Premiere Pro or DaVinci Resolve.
- **Meeting and interview transcription:** transcribe Zoom, Google Meet or Teams recordings with speaker labels.
- **Online courses and webinars:** create captions and searchable lesson notes.
- **Journalism and research:** transcribe interviews, focus groups and field recordings.
- **Content repurposing:** use the AI summary and key points to write newsletters, social posts and articles.
- **Accessibility:** add captions so deaf and hard-of-hearing viewers can follow your videos.
- **Automation and AI agents:** feed transcripts into ChatGPT, Claude, n8n, Make or Zapier workflows.

***

### How to transcribe audio or video to text

1. Click **Try for free** / **Start** on this page.
2. Paste one or more **audio or video links**, or add a **podcast feed**.
3. Choose the language (or leave **Detect automatically**), speaker labels, AI summary and the output files you want.
4. Click **Start**. When the run finishes, open the **Output** tab.

#### How to get your files

1. In the **Output** table, find your file.
2. Click the **SRT**, **VTT**, **Text** or **Markdown** link. The file downloads or opens in your browser.
3. Upload the SRT file to YouTube (*Subtitles → Upload file*) or import it into your video editor.

You can also export the whole table as **Excel, CSV or JSON** with the **Export** button.

***

### Supported files and links

**Audio formats:** MP3, WAV, M4A, AAC, OGG, OPUS, FLAC and more.
**Video formats:** MP4, MOV, WEBM, MKV and more (the audio track is transcribed).

**Links that work:**

- Direct file links: `https://example.com/interview.mp3`
- **Google Drive:** `https://drive.google.com/file/d/<id>/view` (shared as *Anyone with the link*)
- **Dropbox:** any share link
- **OneDrive:** `https://1drv.ms/...` share links
- **Podcasts:** RSS feed URLs or `https://podcasts.apple.com/...` links (the newest episodes are transcribed)

**Not supported:** YouTube, TikTok, Instagram, Spotify, Facebook, X, Vimeo and SoundCloud page links. Download the file first, or use a direct link to the media file.

***

### Languages

The language is **detected automatically**. You can also choose it yourself, which is a little faster and more accurate for short files.

Popular languages include **English, Spanish, French, German, Italian, Portuguese, Dutch, Polish, Russian, Ukrainian, Turkish, Arabic, Hindi, Japanese, Korean, Chinese, Swedish, Danish, Norwegian, Finnish, Czech, Romanian, Greek, Hungarian, Bulgarian, Croatian, Serbian, Slovak, Vietnamese and Indonesian**, plus many more.

Accuracy is highest for clear recordings in widely spoken languages. Speaker labels are not available for every language. When they are not, you still get the full transcript and subtitles without speaker names.

***

### Input options

| Option | What it does | Default |
|---|---|---|
| **Audio / video links** | Files or share links to transcribe | — |
| **Podcast feeds** | RSS or Apple Podcasts links | — |
| **Episodes per podcast** | How many of the newest episodes to transcribe | 3 |
| **Language** | Auto-detect or a fixed language | Auto |
| **Speaker labels** | Mark who is speaking | On |
| **AI summary** | Summary, key points and topics | On |
| **Output files** | TXT, SRT, VTT, Markdown, JSON | TXT, SRT, VTT, MD |
| **Characters per subtitle line** | Subtitle line length (42 is the YouTube/Netflix standard) | 42 |
| **Max minutes per file** | Only the first N minutes are transcribed and charged | 300 |
| **Files in parallel** | How many files are processed at the same time | 3 |

***

### Output example

Each file becomes one row in the results table:

```json
{
  "title": "interview.mp3",
  "status": "succeeded",
  "language": "en",
  "durationSeconds": 2712,
  "minutesCharged": 46,
  "speakers": 2,
  "summary": "The guest explains how the company grew from ...",
  "keyPoints": ["Started in 2019 with two people", "..."],
  "topics": ["growth", "hiring"],
  "text": "Hello and welcome to ...",
  "srtUrl": "https://api.apify.com/v2/key-value-stores/.../records/001-interview.srt",
  "vttUrl": "https://api.apify.com/v2/key-value-stores/.../records/001-interview.vtt",
  "txtUrl": "...",
  "mdUrl": "..."
}
```

Subtitle example (`.srt`):

```
1
00:00:00,000 --> 00:00:02,750
[Speaker A] Hello and welcome to the show.

2
00:00:02,800 --> 00:00:05,150
Today we talk about growing a small business.
```

***

### Pricing

**$0.005 per audio minute = $0.30 per hour.** Every started minute counts as one minute.

| Audio length | Price |
|---|---|
| 10-minute video | $0.05 |
| 45-minute podcast episode | $0.23 |
| 1-hour meeting | $0.30 |
| 10 hours of interviews | $3.00 |

- Speakers, SRT/VTT subtitles, Markdown, JSON and the AI summary are **included**.
- **Failed files are free:** broken links, private files and files without speech are not charged.
- Set a **maximum cost per run** in the run options. The Actor never goes over it: files that would exceed the limit are skipped and not charged.

> **Apify Free plan:** you can transcribe up to **10 minutes per run** to try the Actor. Upgrade your Apify plan to transcribe full files.

***

### Integrations and API

Run the transcriber from your own code or connect it to the tools you already use:

- **Zapier, Make and n8n:** start a transcription when a new file lands in Google Drive or Dropbox, then send the transcript to Google Docs, Notion, Slack or email.
- **Google Sheets:** export results with the Apify integration.
- **AI agents:** use it from ChatGPT or Claude through the Apify MCP server.
- **REST API and SDKs:** JavaScript and Python clients.

Example API input:

```json
{
  "audioUrls": ["https://example.com/meeting.mp4"],
  "languageCode": "auto",
  "speakerLabels": true,
  "generateSummary": true,
  "outputFormats": ["txt", "srt", "vtt", "md"]
}
```

***

### Limits

- Up to **10 hours / 5 GB** per file.
- **Max minutes per file** (default 300) protects you from unexpectedly long files.
- The **maximum cost per run** you set is always respected.

***

### Privacy and data security

- Files are processed by a professional speech-to-text provider and **deleted from the provider right after processing**.
- Results are stored only in **your own Apify account** (the dataset and key-value store of your run). You can delete them at any time.
- The developer of this Actor does not keep copies of your audio or transcripts.
- The Actor runs with **limited permissions**: it cannot access other data in your Apify account.

***

### FAQ

**How accurate is the transcription?**
Accuracy is high for clear speech in widely spoken languages. Background noise, music, strong accents and people talking over each other reduce it. For the best results, use the clearest recording you have.

**Can I transcribe a YouTube video?**
Not from a YouTube page link. Download the video or audio file first, upload it to Google Drive or Dropbox, and paste that share link.

**How long does it take?**
Usually a few minutes for a one-hour file. Several files are processed in parallel.

**Can I get subtitles burned into the video?**
No. You get standard SRT and VTT files that YouTube and every video editor can load.

**What does "speaker labels" mean?**
The transcript shows who is speaking: Speaker A, Speaker B and so on. Names are not identified automatically.

**My Google Drive link fails. What should I do?**
Make sure the file is shared as *Anyone with the link*. Very large Drive files can be blocked by Google. In that case, use Dropbox or a direct link.

**Am I charged if a file fails?**
No. You pay only for minutes that were transcribed successfully.

**Can I translate the transcript?**
The transcript is in the original language. You can translate the TXT or SRT file with any translation tool.

**Something does not work?**
Open an issue in the **Issues** tab and include the input you used. We reply as soon as possible.

***

Built by **PhronexusAI**.

# Actor input Schema

## `audioUrls` (type: `array`):

Public links to audio or video files: MP3, WAV, M4A, AAC, OGG, OPUS, FLAC, MP4, MOV, WEBM, MKV and more. Google Drive, Dropbox and OneDrive share links work too (the file must be shared as "Anyone with the link"). YouTube, TikTok, Instagram and Spotify page links are not supported.

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

Podcast RSS feed URLs or Apple Podcasts links. The newest episodes are transcribed.

## `maxEpisodesPerFeed` (type: `integer`):

How many of the newest episodes to transcribe from each podcast feed.

## `languageCode` (type: `string`):

Leave on "Detect automatically" unless you know the language. Setting it can improve accuracy.

## `speakerLabels` (type: `boolean`):

Label who is speaking (Speaker A, Speaker B, ...) in the transcript and subtitles.

## `generateSummary` (type: `boolean`):

Add a short summary, key points and topics for each file. Included in the price.

## `outputFormats` (type: `array`):

Files saved for each recording (download links are in the results). The transcript text is always in the results table.

## `charsPerCaption` (type: `integer`):

Longer captions are split. 42 is the common standard for video subtitles.

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

Only the first N minutes of each file are transcribed and charged. Protects you from unexpectedly long files.

## `maxConcurrency` (type: `integer`):

How many files are processed at the same time.

## Actor input object example

```json
{
  "audioUrls": [
    "https://assembly.ai/wildfires.mp3"
  ],
  "maxEpisodesPerFeed": 3,
  "languageCode": "auto",
  "speakerLabels": true,
  "generateSummary": true,
  "outputFormats": [
    "txt",
    "srt",
    "vtt",
    "md"
  ],
  "charsPerCaption": 42,
  "maxMinutesPerFile": 300,
  "maxConcurrency": 3
}
```

# Actor output Schema

## `transcripts` (type: `string`):

No description

## `files` (type: `string`):

No description

# 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 = {
    "audioUrls": [
        "https://assembly.ai/wildfires.mp3"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("phronexusai/audio-video-transcription").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 = { "audioUrls": ["https://assembly.ai/wildfires.mp3"] }

# Run the Actor and wait for it to finish
run = client.actor("phronexusai/audio-video-transcription").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 '{
  "audioUrls": [
    "https://assembly.ai/wildfires.mp3"
  ]
}' |
apify call phronexusai/audio-video-transcription --silent --output-dataset

```

## MCP server setup

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

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/JhLEski0MyWQlPskL/builds/U4Ab5ZDkSxKewZwwT/openapi.json
