# TikTok | Instagram | Facebook | YouTube Shorts Transcriber (`tictechid/anoxvanzi-transcriber`) Actor

Extract accurate transcripts from Instagram Reels, Facebook Reels, YouTube Shorts, and TikTok videos. Use video URLs to transcribe public content with timestamps. Export transcripts in JSON format, run via API, MCP, schedule runs, or integrate with other tools for automated transcription workflows.

- **URL**: https://apify.com/tictechid/anoxvanzi-transcriber.md
- **Developed by:** [TicTech](https://apify.com/tictechid) (community)
- **Categories:** Social media, Videos, Automation
- **Stats:** 2,233 total users, 146 monthly users, 99.7% runs succeeded, 84 bookmarks
- **User rating**: 3.18 out of 5 stars

## Pricing

from $1.50 / 1,000 transcriptions

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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Social Video Transcriber

Transform your social videos into actionable insights! Instantly convert Instagram Reels, TikTok, Youtube Shorts and Facebook Reels into searchable transcripts with optional timestamps, speaker labels, and automatic (or manual) language detection. Process one link or many in a single run. Unlock the full value of your content for analysis, accessibility, and growth.

> **Note:** Only publicly available videos can be transcribed. Private or restricted videos are not supported.

> **Important:** Due to CORS security and anti-scraping/bot measures, success rates are not guaranteed. The platform actively blocks automated access, which may result in failed downloads even for public content.

### Why Use This Tool?

- **Automate tedious work:** No more manual transcription, get results in minutes, not hours.
- **Unlock hidden insights:** Search, analyze, and repurpose your video content for new opportunities.
- **Boost accessibility:** Make your videos inclusive for all audiences with accurate transcripts.
- **Enhance discoverability:** Improve SEO and compliance with rich, timestamped text.
- **Stay ahead:** Track trends, monitor competitors, and optimize your content strategy with ease.

### Features

- Supports Instagram Reels, TikTok, Youtube Shorts, Facebook Reels, and Facebook Watch videos (public videos only)
- **Bulk transcription:** process multiple video URLs in a single run
- **Timestamps:** `[start - end]` markers on each line (on by default; can be turned off)
- **Optional speaker diarization:** label different speakers (`[Speaker 0]`, `[Speaker 1]`, …), ideal for interviews and podcasts (off by default)
- **Language:** auto-detect by default, or pick a specific language (see supported languages below)

### Use Cases

- **Content Creators:** Generate captions, repurpose content, and analyze performance.
- **Marketers:** Track brand mentions, analyze trends, and optimize strategy.
- **Researchers:** Study social media trends and extract insights from public discourse.
- **Businesses:** Create training materials, monitor feedback, and maintain compliance records.

### Supported Languages

- Bulgarian `bg`, Catalan `ca`, Chinese (Simplified) `zh-CN`, Chinese (Traditional) `zh-TW`
- Czech `cs`, Danish `da`, Dutch / Flemish `nl`, English `en`, Estonian `et`, Finnish `fi`
- French `fr`, German `de`, German (Switzerland) `de-CH`, Greek `el`, Hindi `hi`, Hungarian `hu`
- Indonesian `id`, Italian `it`, Japanese `ja`, Korean `ko`, Latvian `lv`, Lithuanian `lt`
- Malay `ms`, Norwegian `no`, Polish `pl`, Portuguese `pt`, Romanian `ro`, Russian `ru`
- Slovak `sk`, Spanish `es`, Swedish `sv`, Thai `th`, Turkish `tr`, Ukrainian `uk`, Vietnamese `vi`

### Input Example

```json
{
  "urls": [
    "https://www.instagram.com/reel/example/",
    "https://www.tiktok.com/@user/video/123"
  ],
  "include_timestamps": true,
  "enable_diarization": false,
  "language": "auto"
}
```

All fields except `urls` are optional. `include_timestamps` defaults to `true`, `enable_diarization` to `false`, and `language` to `"auto"` (auto-detect).

### Output Example (Success)

```json
{
  "sourceUrl": "https://www.instagram.com/reel/example/",
  "videoId": "unique-video-id",
  "status": "success",
  "durationSec": 45.2,
  "transcript": "[0.00s - 2.50s] Welcome to my channel! [2.50s - 8.10s] Today I'm going to show you how to make the perfect pasta dish.",
  "detected_language": "en",
  "speakers_detected": null,
  "timestamp": "2024-01-01T12:00:00.000Z"
}
```

> With `include_timestamps: false`, the transcript is plain text without the `[start - end]` markers. With `enable_diarization: true`, lines are labeled `[Speaker 0] ...` and `speakers_detected` reports the speaker count.

### Output Example (Failed)

```json
{
  "sourceUrl": "https://www.instagram.com/reel/private/",
  "videoId": "unique-video-id",
  "status": "failed",
  "error": "Failed to download video (video may be private or restricted)",
  "timestamp": "2024-01-01T12:00:00.000Z"
}
```

#### Output Fields

- **sourceUrl**: Original video URL
- **videoId**: Unique identifier for the video
- **status**: "success" or "failed"
- **durationSec**: Video duration in seconds (only for success)
- **transcript**: Transcribed text with `[start - end]` timestamps and/or `[Speaker N]` labels when those options are enabled (only for success)
- **detected\_language**: BCP-47 code for the detected language (only for success)
- **speakers\_detected**: Number of distinct speakers (only when diarization is enabled; otherwise `null`)
- **error**: Error message (only for failed outputs)
- **timestamp**: Processing time

### How to Run on Apify

1. Open the actor on Apify and click **Try actor**.
2. Add one or more public video URLs in **Video URLs** (`urls`). Optionally toggle timestamps, speaker diarization, or pick a language. Private/restricted videos will fail.
3. Start the run. When it finishes, check the **Dataset** tab for the transcripts.

#### Input Schema

- `urls` (string\[]): public video URLs to process (one or many).
- `include_timestamps` (boolean, default `true`): add `[start - end]` markers to each line.
- `enable_diarization` (boolean, default `false`): label different speakers.
- `language` (string, default `"auto"`): spoken language, or auto-detect.
- `start_urls` (string): **deprecated** single-URL field, kept for backward compatibility. Ignored when `urls` is provided.

#### Output Location

- Results are saved to the run’s **Dataset** in JSON items matching the examples below.

### Usage Limits

- **Free tier:** 5 runs total. Upgrade to continue.
- **Paid plans:** Unlimited runs per Apify limits.

> Multiple runs require an Apify paid plan. See [Apify Pricing](https://apify.com/pricing?fpr=maxknj).

### Pricing

This actor uses Apify's pay-per-event model. You are charged for two things: starting a video, and each second of video transcribed. Platform usage (compute, storage, proxies) is included at no extra cost, so there are no separate infrastructure charges on top of the rates below.

| Event | Unit | Free | Bronze | Silver | Gold / Platinum / Diamond |
|---|---|---|---|---|---|
| **Transcription** | per second of video | $0.0022 | $0.0018 | $0.0016 | $0.0015 |
| **Actor start** | per video | $0.008 | $0.005 | $0.005 | $0.005 |

Apify's pricing page lists the same rates per 1,000 units: on the Free tier, $2.20 per 1,000 seconds of video and $8.00 per 1,000 videos. Higher plans receive an automatic discount, so a Business plan on the Gold tier pays 32% less than Free.

```
total = (actor start × number of videos) + (per-second rate × total seconds of video)
```

Two details that matter:

- **Actor start is charged per video, not per run.** A single run containing 10 URLs is charged 10 actor-start events. Bulk runs do not amortize this fee.
- **Length is rounded to the nearest second**, measured from the video's audio track. A 30.4 second video bills as 30 seconds. A video that rounds to 0 seconds is not charged for transcription.

Example, 10 videos of 30 seconds each on the Free tier: (10 × $0.008) + (300 × $0.0022) = **$0.74**.

A video that cannot be downloaded (private, removed, geo-blocked, or blocked by anti-bot measures) is still charged the actor start fee, because the download was attempted. It is not charged any transcription seconds. At Free tier rates, a failed video costs $0.008.

***

For more details, contact the maintainer or email us at contact@tictech.id

# Actor input Schema

## `urls` (type: `array`):

Instagram Reels, TikTok, YouTube Shorts, or Facebook Reels links. Add one or many for bulk transcription.

## `include_timestamps` (type: `boolean`):

Include \[start - end] timestamps in the transcript output. No effect on cost.

## `enable_diarization` (type: `boolean`):

Identify and label different speakers (\[Speaker 0], \[Speaker 1], ...). Useful for interviews and podcasts; leave off for single-speaker videos. No effect on cost.

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

Spoken language of the audio. Leave on Auto-detect unless detection is unreliable.

## `start_urls` (type: `string`):

Deprecated — kept only for backward compatibility with older API integrations. Use the Video URLs field above instead, which supports one or many links.

## Actor input object example

```json
{
  "urls": [
    "https://www.instagram.com/reel/DMflZnXOKUj"
  ],
  "include_timestamps": true,
  "enable_diarization": false,
  "language": "auto"
}
```

# Actor output Schema

## `overview` (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 = {
    "urls": [
        "https://www.instagram.com/reel/DMflZnXOKUj"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("tictechid/anoxvanzi-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 = { "urls": ["https://www.instagram.com/reel/DMflZnXOKUj"] }

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

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

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

```

## CLI example

```bash
echo '{
  "urls": [
    "https://www.instagram.com/reel/DMflZnXOKUj"
  ]
}' |
apify call tictechid/anoxvanzi-transcriber --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=tictechid/anoxvanzi-transcriber",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/CVQmx5Se22zxPaWc1/builds/seHEbLcA0ygRBBtFh/openapi.json
