# TikTok Video Transcriber – Speech to Text & Captions (`linen_snack/tiktok-transcriber`) Actor

Convert any TikTok video to text instantly. Paste one or more TikTok video URLs and get back a full
transcript with timestamped captions — ready for subtitles, content repurposing, research, or accessibility.

- **URL**: https://apify.com/linen\_snack/tiktok-transcriber.md
- **Developed by:** [ius iyb](https://apify.com/linen_snack) (community)
- **Categories:** Videos, Social media, Automation
- **Stats:** 17 total users, 3 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$30.00 / 1,000 video 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/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

## TikTok Video Transcriber – Speech to Text & Captions

Convert any TikTok video to text instantly. Paste one or more TikTok video URLs and get back a full transcript with timestamped captions — ready for subtitles, content repurposing, research, or accessibility.

### What you get

For each video, the actor outputs:

- **Full transcript** — the complete spoken text of the video
- **Utterances** — individual speech segments with start/end timestamps (in milliseconds)
- **Duration** — total audio duration of the video
- **Status** — `success` or `failed` per video

#### Example output

```json
{
  "videoId": "7617166160194227470",
  "tiktokUrl": "https://www.tiktok.com/@_/video/7617166160194227470",
  "transcript": "By the 1920s, electric motors were the new standard...",
  "utterances": [
    { "text": "By the 1920s, electric motors were the new standard for powering factories and mills.", "start_ms": 40, "end_ms": 5400, "speaker": null },
    { "text": "But many of these motors also came with a flaw.", "start_ms": 5440, "end_ms": 8800, "speaker": null }
  ],
  "durationMs": 94320,
  "status": "success"
}
```

### Input

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `videoIds` | list of strings | Yes | One or more TikTok video URLs or numeric IDs to transcribe |
| `language` | string | No | Force a specific language (e.g. `en-US`, `zh-CN`, `ja-JP`). Leave empty for auto-detection. |

#### Accepted formats

Both full URLs and bare numeric IDs are accepted:

```
https://www.tiktok.com/@veritasium/video/7617166160194227470
7617166160194227470
```

#### Supported languages

Leave the language field empty for automatic detection, which works well for English, Chinese (Mandarin & Cantonese), Japanese, Korean, and many other languages. You can also force a specific language using IETF tags such as:

- `en-US` — English
- `zh-CN` — Mandarin Chinese
- `zh-HK` — Cantonese
- `ja-JP` — Japanese
- `ko-KR` — Korean
- `fr-FR` — French
- `de-DE` — German
- `es-ES` — Spanish

### Limitations

- Videos must have audible speech — silent or music-only videos will return an error
- Very long videos (over 6 minutes) may time out
- The video must be publicly accessible on TikTok

# Actor input Schema

## `videoIds` (type: `array`):

List of TikTok video URLs or numeric IDs to transcribe. Both formats are accepted, e.g. 'https://www.tiktok.com/@user/video/7604258163038096661' or '7604258163038096661'.

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

Force a specific language. Leave empty for auto-detect (Chinese, English, Cantonese and more). Examples: en-US, zh-CN, ja-JP, fr-FR.

## Actor input object example

```json
{
  "videoIds": [
    "https://www.tiktok.com/@veritasium/video/7617166160194227470"
  ],
  "language": ""
}
```

# Actor output Schema

## `videoId` (type: `string`):

Numeric TikTok video ID.

## `tiktokUrl` (type: `string`):

Direct link to the TikTok video.

## `transcript` (type: `string`):

Full transcribed text of the video.

## `utterances` (type: `string`):

Speech segments with start/end timestamps (ms) and optional speaker label.

## `durationMs` (type: `string`):

Total audio duration in milliseconds.

## `audioUrl` (type: `string`):

URL of the extracted audio file in Apify Key-Value Store.

## `requestId` (type: `string`):

Unique ID for the transcription request.

## `status` (type: `string`):

Result status — either 'success' or 'failed'.

## `error` (type: `string`):

Error message when status is 'failed'. Absent on success.

# 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 = {
    "videoIds": [
        "https://www.tiktok.com/@veritasium/video/7617166160194227470"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("linen_snack/tiktok-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 = { "videoIds": ["https://www.tiktok.com/@veritasium/video/7617166160194227470"] }

# Run the Actor and wait for it to finish
run = client.actor("linen_snack/tiktok-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 '{
  "videoIds": [
    "https://www.tiktok.com/@veritasium/video/7617166160194227470"
  ]
}' |
apify call linen_snack/tiktok-transcriber --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/4wFB1j98m1cgRgAov/builds/E2KdHqlwdeebuQzJM/openapi.json
