# Douyin Transcript Scraper | AI Speech-to-Text (抖音) (`ethereal_wool/douyin-transcript-scraper`) Actor

Turn any Douyin (抖音) video into text. Real AI speech recognition with best-in-class Mandarin Chinese accuracy — works on videos with no captions. Full text + timestamped sentences as clean JSON.

- **URL**: https://apify.com/ethereal\_wool/douyin-transcript-scraper.md
- **Developed by:** [Jackie Chen](https://apify.com/ethereal_wool) (community)
- **Categories:** Social media, AI
- **Stats:** 44 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

$25.00 / 1,000 transcript per minutes

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

## Douyin Transcript Scraper — AI Speech-to-Text for 抖音 Videos

Turn any **Douyin (抖音) video into text** with real AI speech recognition.
Paste video links, get back the **full spoken transcript plus timestamped
sentences** as clean JSON — with **best-in-class Mandarin Chinese accuracy**,
ready for LLMs, RAG pipelines, content research, and subtitle workflows.

> **This is real ASR, not caption scraping.** Most "transcript" tools only
> download captions a creator happened to upload — and Douyin videos almost
> never have them. This Actor runs industrial speech recognition on the video's
> audio track, so it works on **any Douyin video with speech**, captions or not.
> Chinese (Mandarin) recognition is its strongest language.

> **Unofficial.** This Actor is not affiliated with, authorized, or endorsed by
> Douyin / ByteDance. It is an independent tool that processes publicly
> available content. Use it in compliance with Douyin's terms and all
> applicable laws; you are responsible for how you use the retrieved data.

### What you get per video

- **Full transcript** (`fullText`) — the complete spoken content as one string.
- **Timestamped sentences** (`sentences[]`) — each with `startMs` / `endMs`,
  ready for subtitles, deep links, and clip selection.
- **Video metadata** — author, caption, duration, publish time, play / like /
  comment / share / collect counts, and cover image URL, so every transcript
  arrives with its engagement context attached.

### Quick start

1. Open the Actor and press **Run** — the default input works out of the box.
2. Replace the example with your own video links: full URLs
   (`https://www.douyin.com/video/123…`), short share links
   (`https://v.douyin.com/XXXX/`), pasted share text, or bare video IDs.
3. Language defaults to **Chinese**; switch to Auto for mixed or non-Chinese
   content.
4. Collect results from the **Dataset** tab as JSON / CSV / Excel, or pull them
   via the [Apify API](https://docs.apify.com/api/v2) and MCP from your own code.

No proxies, no cookies, no login — everything runs server-side.

### Example output

```json
{
  "videoId": "7641539662222270120",
  "videoUrl": "https://www.douyin.com/video/7641539662222270120",
  "description": "东北街头 12元红烧大肘子盖饭，夯爆了~ #地方特色美食 #路边摊美味",
  "author": "jiexiaomeishi",
  "authorName": "街边小美食",
  "durationSec": 67.3,
  "playCount": 1240000,
  "diggCount": 98000,
  "language": "zh",
  "detectedSpeech": true,
  "sentenceCount": 31,
  "fullText": "家人们今天来到东北街头，这家红烧大肘子盖饭只要十二块…",
  "sentences": [
    { "text": "家人们今天来到东北街头，", "startMs": 320, "endMs": 2480 },
    { "text": "这家红烧大肘子盖饭只要十二块。", "startMs": 2480, "endMs": 5100 }
  ]
}
```

### What people build with it

- **Chinese-market research** — index what 抖音 creators actually *say* (not just
  captions) to understand trends, slang, and selling points in your category.
- **Viral-hook mining** — pull transcripts of the top videos in your niche and
  study the exact opening lines and structures that earn views on Douyin.
- **Cross-border content** — transcribe Chinese videos, then translate and
  repurpose them for TikTok, YouTube, or your own market.
- **LLM & RAG pipelines** — build Chinese-language corpora from real short-video
  speech, with engagement scores as a free quality signal.
- **E-commerce & livestream research** — capture how top sellers pitch products
  in 带货 clips, verbatim.
- **Subtitles & translation** — timestamped sentences drop straight into
  SRT/VTT generation and dubbing workflows.

### Pricing & billing

**Pay per audio minute — $0.025/min, billed by the beginning minute.** A 0:50
clip bills 1 minute; a 1:10 clip bills 2 minutes. Timestamped sentences are
included free — no separate subtitle or export charge. There is **no per-run
start fee** and no separate compute or platform fee: the price you see is the
price you pay.

Failed fetches, deleted videos, image posts, and failed transcriptions are
**not charged** — you only pay for audio we actually transcribe.

### Why this Actor

- **Best-in-class Chinese ASR** — Mandarin recognition is its strongest
  language, where Western transcript tools struggle most.
- **Works without captions** — real speech recognition on the audio track;
  Douyin videos rarely carry captions to scrape.
- **Engagement context included** — every transcript ships with play / like /
  comment / share / collect counts, so you can rank by performance immediately.
- **Direct API, no headless browser** — fast, stable runs with nothing to babysit.
- **No login, no cookies** — we never touch your accounts, so there's no ban risk.
- **Structured JSON** — export to CSV, Excel, or JSON, or pull straight from
  the API / MCP.

### Tips for better results

- Feed it the winners: find the top-performing videos in your niche first
  (search / profile scrapers), then transcribe just those.
- Keep the language on **Chinese** for 抖音 content — it noticeably improves
  accuracy over Auto.
- Sentence timestamps let you deep-link to the exact second a phrase is spoken,
  handy for review and clip selection.
- `detectedSpeech: false` flags music-only / no-speech videos so you can filter
  them out downstream.

### FAQ

**Do I need an account, cookies, or to log in anywhere?**
No. The Actor talks to fast, direct HTTP APIs server-side — you just provide
video links and run it.

**Does it work on videos without captions?**
Yes — that's the point. It runs real speech recognition on the audio, so
captions are never required (and Douyin videos rarely have them).

**How good is the Chinese accuracy?**
Mandarin is the model's strongest language; it handles fast colloquial speech,
regional accents, and product pitches well, and returns punctuated sentences.

**How am I billed?**
One fixed price per successfully transcribed video. Videos that can't be
fetched or transcribed are not charged.

**Can I run it on a schedule or call it from my app?**
Yes — use Apify Schedules, the REST API, the JavaScript / Python clients, or
the MCP server. See the **API** tab.

**Is this affiliated with Douyin?**
No. It's an independent tool that processes publicly available content. Use it
in line with the platform's terms and applicable law.

# Actor input Schema

## `videoUrls` (type: `array`):

Douyin video links to transcribe. Accepts full URLs (`https://www.douyin.com/video/123...`), short share links (`https://v.douyin.com/XXXX/`), pasted share text containing such a link, or bare video IDs. One transcript is produced per video.

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

Language spoken in the videos. Defaults to Chinese (抖音 is Mandarin-heavy and Chinese accuracy is best-in-class). Choose Cantonese for 粤语 content, or Auto for mixed / non-Chinese audio.

## `proxyConfiguration` (type: `object`):

Optional. Route the upstream API calls through an Apify Proxy to vary the source IP. Usually not needed.

## Actor input object example

```json
{
  "videoUrls": [
    "https://www.douyin.com/video/7641539662222270120"
  ],
  "language": "zh",
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# 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 = {
    "videoUrls": [
        "https://www.douyin.com/video/7641539662222270120"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("ethereal_wool/douyin-transcript-scraper").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 = { "videoUrls": ["https://www.douyin.com/video/7641539662222270120"] }

# Run the Actor and wait for it to finish
run = client.actor("ethereal_wool/douyin-transcript-scraper").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 '{
  "videoUrls": [
    "https://www.douyin.com/video/7641539662222270120"
  ]
}' |
apify call ethereal_wool/douyin-transcript-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

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