# Audio & Video Transcriber: Podcasts, SRT, Speakers (`offerastudio/audio-video-transcriber`) Actor

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.

- **URL**: https://apify.com/offerastudio/audio-video-transcriber.md
- **Developed by:** [Offera Studio](https://apify.com/offerastudio) (community)
- **Categories:** AI, Automation, Social media
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

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

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

### 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 it | **Paid Apify plans** | **Every plan**, including free |
| Provider keys | The Actor owner's | Your 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 |
| Engines | Deepgram nova-3, then AssemblyAI, then Groq whisper-large-v3-turbo; the next one takes over when one runs out of credit | The 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 field | Meaning |
| --- | --- |
| `status` | `completed`, `empty` (silence, free), `failed` (free) or `info` (a free note) |
| `text`, `segments` | The transcript and `{start, end, text, speaker}` segments in seconds |
| `language` | The language you set, or the one detected |
| `durationSeconds`, `chargedSeconds`, `proxySeconds` | Length and what was charged |
| `title`, `publishedAt`, `podcastName` | For podcast episodes and platform links |
| `words` | Per-word timestamps, with `wordTimestamps` on |
| `speakerLabelsUnavailable` | True if you asked for speaker labels but only Groq (which cannot label speakers) was available |
| `srtKey`, `vttKey`, `txtKey`, `jsonKey` | Keys of the files in the key-value store (`transcripts_<n>.srt` ...) |
| `error`, `errorMessage` | A 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):

| Event | Price | When |
| --- | --- | --- |
| `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

| Field | Meaning |
| --- | --- |
| `language` | ISO-639-1 code (`en`, `tr`, `de`). Empty = detect automatically; the detected language is in every row. |
| `speakerLabels` | Deepgram and AssemblyAI only; no extra charge. |
| `translateToEnglish` | BYOK with an OpenAI-compatible provider only (Whisper translation). |
| `wordTimestamps` | Word-level times in the row and JSON file; no extra charge. |
| `outputFormats` | `text`, `srt`, `vtt`, `json` (default all four). |
| `maxMinutesPerItem` | Longer 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):

```json
{
    "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):

```json
{ "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:

| Link | Result |
| --- | --- |
| 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 video | **`PLATFORM_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.mp3` | **`blocked-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:

```bash
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**

- [Website Accessibility Checker: WCAG 2.2 & EAA](https://apify.com/offerastudio/website-accessibility-audit): accessibility issues with fixes, SEO basics and security headers.
- [Cookie & Tracker Audit: GDPR Consent Checker](https://apify.com/offerastudio/cookie-tracker-audit): cookies and tracking tags that load before consent.
- [AI Crawler Access Checker: robots.txt & llms.txt](https://apify.com/offerastudio/ai-crawler-access-audit): which AI crawlers a site allows, plus llms.txt.
- [Structured Data Validator: Schema & Rich Results](https://apify.com/offerastudio/structured-data-validator): JSON-LD and Microdata checked against Google's rich result rules.
- [Website Change Monitor: Diffs, Prices & Alerts](https://apify.com/offerastudio/website-change-monitor): get a row only when a page changes, with a clean diff.
- [Policy Change Monitor: Privacy & Terms Tracker](https://apify.com/offerastudio/policy-change-monitor): privacy policy and terms changes, classified clause by clause.
- [SaaS Pricing Monitor: Track Competitor Plans](https://apify.com/offerastudio/saas-pricing-monitor): competitor pricing plans as structured data, with price-change diffs.
- [Sitemap Change Monitor: New & Removed URLs](https://apify.com/offerastudio/sitemap-change-monitor): new, removed and changed URLs from a site's sitemaps.
- [Site SEO Crawler: Broken Links & On-Page Audit](https://apify.com/offerastudio/site-seo-crawler-audit): site-wide crawl for broken links, redirects and on-page SEO issues.
- [Website Tech Stack Detector: Bulk Lead Filters](https://apify.com/offerastudio/website-tech-stack-detector): technologies used by websites, with filters for lead lists.
- [Domain Availability & Expiry Checker (RDAP)](https://apify.com/offerastudio/domain-whois-availability): domain availability, registrar and expiry dates from RDAP.
- [Status Page SLA Monitor: Uptime & Incidents](https://apify.com/offerastudio/status-page-sla-monitor): SaaS vendor uptime, incidents and a monthly SLA table from public status pages.

**Company data and compliance**

- [Company Contact Finder: Emails, Phones & Socials](https://apify.com/offerastudio/company-contact-finder): contact details published on company websites.
- [UK New Companies Feed: Companies House Daily](https://apify.com/offerastudio/uk-new-companies-feed): newly incorporated UK companies with sector filters.
- [EU VAT Number Validator: Bulk VIES Checker](https://apify.com/offerastudio/eu-vat-number-validator): bulk VAT checks with name, address and consultation number.
- [LEI Corporate Tree: GLEIF Parents & Subsidiaries](https://apify.com/offerastudio/gleif-lei-corporate-tree): LEI lookup with parents, subsidiaries and a KYC summary.
- [UK Company Distress Watch: Insolvency Alerts](https://apify.com/offerastudio/uk-company-distress-watch): administrations, liquidations and winding-up petitions from The Gazette.
- [IBAN Validator: Bulk Check & Bank Lookup](https://apify.com/offerastudio/iban-bank-validator): IBAN format and checksum, plus bank name and BIC where open data exists.
- [Sanctions Screening: OFAC, EU, UN & UK Lists](https://apify.com/offerastudio/sanctions-screening): names screened against official sanctions lists, with match scores.
- [OSHA & EPA Violation Monitor: Fines by Company](https://apify.com/offerastudio/osha-epa-violation-monitor): US OSHA and EPA enforcement cases and penalties by company.
- [Email List Precheck: Syntax, MX & Disposable Check](https://apify.com/offerastudio/email-list-precheck): cheap email list hygiene before a real verification.
- [UK Company Officer Changes: Director & PSC Alerts](https://apify.com/offerastudio/uk-company-officer-changes): director, owner, address and status changes for a watchlist of UK companies.
- [FDA Warning Letters Monitor: By Company & Subject](https://apify.com/offerastudio/fda-warning-letters-monitor): FDA warning letters by company and subject, with cited regulations.
- [Supplier Risk Report: Sanctions, VAT & Insolvency](https://apify.com/offerastudio/supplier-risk-report): one risk row per supplier from eight official registers, with changes since last run.
- [Brand Impersonation Domain Monitor: Look-alikes](https://apify.com/offerastudio/brand-impersonation-domain-monitor): look-alike domains and certificates that imitate your brand, with a risk score.

**Media and AI**

- [Podcast Mention Alerts: Brand Mentions by Second](https://apify.com/offerastudio/podcast-mention-alerts): where your brand is said in new podcast episodes, with the exact second.
- [News Brand Mentions Monitor: New Articles Only](https://apify.com/offerastudio/news-brand-mentions-monitor): new news articles about your brand, people or topics.
- [YouTube Channel Monitor: New Videos & Growth](https://apify.com/offerastudio/youtube-channel-monitor): new videos and view growth of the channels you watch.

**Market signals**

- [US WARN Layoff Notices: 12 States Daily Feed](https://apify.com/offerastudio/us-warn-layoff-notices): layoff and plant closure notices from official state sources.
- [US Product Recalls Monitor: FDA & CPSC Feed](https://apify.com/offerastudio/us-product-recalls-monitor): FDA and CPSC recalls in one feed, with severity.
- [EU Tenders Feed: TED Public Procurement Alerts](https://apify.com/offerastudio/eu-tender-feed): EU public tenders from TED with CPV, country and value filters.
- [Liquor License Openings: New Bars & Stores (US)](https://apify.com/offerastudio/liquor-license-openings): new US liquor licences from official state open data.
- [Clinical Trials Change Monitor: Status & Updates](https://apify.com/offerastudio/clinicaltrials-change-monitor): status, enrollment and results changes on ClinicalTrials.gov studies.
- [Career Site Jobs Monitor: ATS Jobs & New Roles](https://apify.com/offerastudio/career-site-jobs-monitor): open roles from company career sites, with new and closed roles since the last run.
- [App Reviews Monitor: App Store & Google Play](https://apify.com/offerastudio/app-store-reviews-monitor): app reviews from both stores, only new ones in monitor mode.
- [US Federal Contracts Feed: SAM.gov & USAspending](https://apify.com/offerastudio/us-federal-contracts-feed): SAM.gov contract opportunities with the buyer's award history.
- [Grants.gov Opportunities: US Federal Grants Feed](https://apify.com/offerastudio/grants-gov-opportunities): US federal grant opportunities by keyword, eligibility and agency.
- [Federal Register Monitor: US Rules & Notices Feed](https://apify.com/offerastudio/federal-register-monitor): new US rules, proposed rules and notices by agency or topic.
- [B2B Sales Trigger Feed: Hiring + Tech Leads](https://apify.com/offerastudio/b2b-sales-trigger-feed): companies hiring for a role and using (or not using) a technology, with contacts.
- [Local Business Leads: OpenStreetMap, No Website](https://apify.com/offerastudio/local-business-leads-osm): local businesses by city and category, including those with no website.
- [Solana Token Pair Monitor: New & Trending Pairs](https://apify.com/offerastudio/solana-token-pair-monitor): new and trending Solana pairs with liquidity, volume and safety flags.

### Feedback

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

# Changelog

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

# Actor input Schema

## `mediaFile` (type: `string`):

Upload one audio or video file. Use either this or Media URLs, not both. At runtime this is a URL string, not a local path.

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

Direct links to audio or video files, links to TikTok, X/Twitter, Facebook, SoundCloud, Dailymotion or YouTube videos, Apple Podcasts or Spotify podcast links, and Google Drive, Dropbox or OneDrive share links. Use either this or Media file, not both.

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

RSS feed URLs (or Apple Podcasts / Spotify show links). The newest episodes are transcribed; each row gets the episode title, publication date and podcast name.

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

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

## `publishedAfter` (type: `string`):

Only episodes published on or after this date: 2026-09-01, or relative like "30 days" (30 days ago).

## `episodeTitleContains` (type: `string`):

Only episodes whose title contains this text (any case).

## `datasetId` (type: `string`):

Transcribe the media URLs found in the rows of another Actor's dataset (fields such as videoUrl, mediaUrl, audioUrl, downloadUrl, url). Up to 1,000 rows.

## `datasetItems` (type: `array`):

Rows pasted as JSON, in the same format as a dataset. The media URL field is found automatically.

## `watchlistId` (type: `string`):

Remembers which media were transcribed (in a named key-value store, transcriber-watchlist-<name>). With "Only new items" a scheduled run transcribes only what is new, and never charges the same media twice.

## `newItemsOnly` (type: `boolean`):

Needs a watchlist name. Skips media that an earlier run with the same watchlist name already transcribed.

## `mode` (type: `string`):

Managed uses the Actor owner's provider keys and is available on paid Apify plans. BYOK uses your own provider key and works on every plan.

## `byokProvider` (type: `string`):

Required in BYOK mode. For Groq, OpenAI and other Whisper-style APIs choose OpenAI-compatible.

## `byokApiKey` (type: `string`):

Your own provider API key. Required in BYOK mode. Stored encrypted and never written to logs, rows or files.

## `byokBaseUrl` (type: `string`):

Required for OpenAI-compatible providers, for example https://api.openai.com/v1 or https://api.groq.com/openai/v1.

## `byokModel` (type: `string`):

Model ID for OpenAI-compatible providers. Default: whisper-1 (OpenAI) or whisper-large-v3-turbo (Groq).

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

ISO-639-1 code such as en, tr or de. Leave empty to detect the language automatically; the detected language is written to every row.

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

Label who is speaking ("Speaker 1:", "Speaker 2:" in SRT, VTT and text). Deepgram and AssemblyAI only; no extra charge. In managed mode with only Groq available the row says speakerLabelsUnavailable.

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

Transcribe and translate speech to English. BYOK with an OpenAI-compatible provider only.

## `wordTimestamps` (type: `boolean`):

Add the start and end time of every word to the row and the JSON file. No extra charge.

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

Files to write to the key-value store. The dataset row is always written.

## `maxMinutesPerItem` (type: `integer`):

Media longer than this is skipped (free). Also limits platform downloads.

## `cookies` (type: `string`):

Only for platform links that need a login (Instagram, Vimeo, private videos) or that block downloads. Paste your browser cookies in Netscape format (the cookies.txt export). Stored encrypted; never logged or saved to rows or files.

## Actor input object example

```json
{
  "mediaUrls": [
    "https://static.deepgram.com/examples/Bueller-Life-moves-pretty-fast.wav"
  ],
  "maxEpisodesPerFeed": 3,
  "newItemsOnly": false,
  "mode": "managed",
  "byokModel": "whisper-1",
  "speakerLabels": false,
  "translateToEnglish": false,
  "wordTimestamps": false,
  "outputFormats": [
    "text",
    "srt",
    "vtt",
    "json"
  ],
  "maxMinutesPerItem": 120
}
```

# Actor output Schema

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

No description

## `segments` (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 = {
    "mediaUrls": [
        "https://static.deepgram.com/examples/Bueller-Life-moves-pretty-fast.wav"
    ],
    "mode": "managed"
};

// Run the Actor and wait for it to finish
const run = await client.actor("offerastudio/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://static.deepgram.com/examples/Bueller-Life-moves-pretty-fast.wav"],
    "mode": "managed",
}

# Run the Actor and wait for it to finish
run = client.actor("offerastudio/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://static.deepgram.com/examples/Bueller-Life-moves-pretty-fast.wav"
  ],
  "mode": "managed"
}' |
apify call offerastudio/audio-video-transcriber --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,offerastudio/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/OpIMt8cOns1ZUxfUU/builds/78EiisgzPmpn1cTW1/openapi.json
