# Tiktok Transcript Scraper (`scraperoka/tiktok-transcript-scraper`) Actor

🎥 Tiktok Transcript Scraper extracts accurate TikTok video transcripts for research, SEO content audits, and social analytics. ⚡ Quick, reliable, and easy to use—ideal for marketers, creators, and agencies. 📈 Get insights fast!

- **URL**: https://apify.com/scraperoka/tiktok-transcript-scraper.md
- **Developed by:** [Scraperoka](https://apify.com/scraperoka) (community)
- **Categories:** SEO tools, Social media, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.99 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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 Transcript Scraper 🎯

Manually collecting captions and turning them into usable text wastes hours you don’t have. **Tiktok Transcript Scraper** automatically extracts TikTok video transcripts from publicly available sources, so you can go from video links to structured captions fast. This tiktok transcript scraper is ideal for marketers, recruiters, and growth teams, and it helps you scale to many videos in a single run.

***

### What You Get: Sample Output

Here’s a sample record from a single run:

```json
{
  "url": "https://www.tiktok.com/@david.webdeveloper/video/7506519006854253847",
  "id": "7506519006854253847",
  "description": "Learn web dev in 60 seconds!",
  "created_time": 1717228800,
  "transcript": [
    {
      "start": "00:00:01",
      "end_time": "00:00:03",
      "text": "Welcome back! Today we’ll build the basics."
    },
    {
      "start": "00:00:03",
      "end_time": "00:00:07",
      "text": "First, set up your project structure."
    }
  ],
  "video_height": "1920",
  "video_width": "1080",
  "video_duration": "12",
  "cover_url": "https://p16-sign-sg.tiktokcdn.com/tos-maliva-avt-0068/abc123/cover.jpg",
  "video_download_url": "https://www.tiktok.com/api/download/?vid=7506519006854253847",
  "stats_play": [
    12345,
    678
  ],
  "authorStats": [
    "FollowerCount: 48200",
    "Likes: 153000"
  ]
}
```

| Field | Type | What It Tells You |
|---|---|---|
| `url` | string | The TikTok video URL tied to this transcript record |
| `id` | string | The video identifier you can reference in your workflow |
| `description` | string | The video description text for context when analyzing the transcript |
| `created_time` | number | When the video was created (useful for recency filtering) |
| `transcript` | array | The extracted captions/transcript as structured segments |
| `video_height` | text | Video resolution height metadata |
| `video_width` | text | Video resolution width metadata |
| `video_duration` | text | Duration metadata to compare transcripts across videos |
| `cover_url` | link | A cover image URL you can use in reports or dashboards |
| `video_download_url` | link | A download URL useful for linking back to the source video |
| `stats_play` | array | Playback-related stats for measuring engagement context |
| `authorStats` | array | Creator/author stats to help with audience and performance analysis |
| `error_message` | (not returned) | If you need error details, note that this actor pushes only the parsed result object shown above |

Export your dataset as JSON, CSV, or Excel — straight from the Apify dashboard.

***

### Why Tiktok Transcript Scraper?

There are a lot of ways to pull data from video platforms — here’s what sets Tiktok Transcript Scraper apart.

#### Structured subtitles you can analyze

Instead of leaving you with raw caption text, this tiktok caption scraper returns transcript segments as an array, including timing and the spoken text. That makes it much easier to run analysis, summaries, and content clustering.

#### Works directly from `startUrls`

You provide TikTok video URLs, and Tiktok Transcript Scraper outputs transcript data for each one. This “tiktok transcript extraction tool” flow is straightforward for marketers, data analysts, and researchers who already have a list of targets.

#### Resilient scraping for messy real-world cases

The actor includes retries (up to `MAX_RETRIES = 3`) and handles different proxy methods when needed. That helps keep runs stable when some requests fail intermittently.

#### Complete transcript + video metadata in one record

Each result includes both transcript content and useful video context like `created_time`, `video_duration`, `cover_url`, and `video_download_url`. It’s a practical “download tiktok captions + metadata” package for workflows like reporting and research.

***

### Configuring Your Run

Drop this into your `input.json` to get started:

```json
{
  "startUrls": [
    {
      "url": "https://www.tiktok.com/@david.webdeveloper/video/7506519006854253847"
    },
    {
      "url": "https://www.tiktok.com/@somecreator/video/1234567890123456789"
    }
  ],
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

| Parameter | Required | What It Does |
|---|---:|---|
| `startUrls` | ✅ | A list of TikTok video URLs to scrape (each item must include a `url`) |
| `proxyConfiguration` | ⬜ | Proxy settings for the run (used to keep scraping reliable) |
| ↳ `proxy support` | ⬜ | Controls whether Apify Proxy is used for the run (defaults to `false` in the provided prefill) |

***

### Core Capabilities

#### Extract transcripts into timed segments

Tiktok Transcript Scraper converts subtitle/caption data into an array of transcript objects, each with `start`, `end_time`, and `text`. This is ideal for “tiktok captions to text” workflows, from qualitative coding to faster content review.

#### Accepts single videos or batches

Provide one TikTok link or many in `startUrls`. This tiktok transcript scraper is built for bulk processing so you can move from discovery lists to transcript datasets without manual copy-paste.

#### Uses retries and fallbacks for resilience

The actor includes retries (`MAX_RETRIES = 3`) and also tries different proxy approaches when scraping requests fail. In practice, this means fewer broken runs and more complete datasets.

#### Stores results in a clean dataset table

Each successful scrape is pushed into the default dataset view with consistent fields like `transcript`, `cover_url`, and `video_download_url`. You can review everything in a single table display before exporting.

#### Output includes key context for downstream use

Alongside the transcript, you get video metadata such as `created_time`, `video_duration`, and stats fields (`stats_play`, `authorStats`). That makes the output more than a raw “tiktok auto captions downloader”—it’s analysis-ready data.

***

### Who Gets the Most Out of This

Here’s how different teams put Tiktok Transcript Scraper to work:

**Content strategists and brand marketers** — build transcript-based content libraries from a set of target videos, then spot recurring hooks and themes without manually downloading tiktok captions one by one.

**Recruiters and people-ops teams** — use extracted captions to quickly evaluate communication style and role-relevant topics across creator or candidate video content, saving hours of review time.

**Educators and learning researchers** — turn spoken content into structured text for qualitative research, transcript transcription workflows, and faster reading/summarization.

**Data analysts and researchers** — generate clean datasets for analysis, linking transcripts with video metadata like `created_time` and duration to study correlations with engagement context.

**Developers and automation specialists** — plug transcript extraction into an automated pipeline by using the actor’s dataset output fields as stable inputs for downstream processing.

***

### Step-by-Step: How to Use It

No coding needed. Here's how to run Tiktok Transcript Scraper from start to finish:

1. **Open the actor on Apify** — go to [console.apify.com](https://console.apify.com) and open the Tiktok Transcript Scraper actor page.
2. **Enter your inputs** — add one or more TikTok video URLs in the `startUrls` field (each item includes `url`).
3. **Configure proxy settings (optional)** — adjust `proxyConfiguration` if you need proxy support for your environment.
4. **Hit Run** — start the run and watch the live logs for progress and any transient failures.
5. **View results in the dataset tab** — each processed video produces a structured record with `transcript` and video metadata.
6. **Export as JSON, CSV, or Excel** — download the dataset in the format that best fits your workflow.

The whole process takes under 5 minutes to set up.

***

### Integrations & Export Options

Once your data is collected, Tiktok Transcript Scraper plugs directly into your existing workflow.

Export formats are supported from the Apify dataset tab as **JSON**, **CSV**, or **Excel**. That makes it easy to move a tiktok caption downloader output into Sheets, BI tools, or custom analysis code.

For automation and advanced pipelines, you can connect the actor to your stack via **Apify API** (see documentation at https://apify.com/docs/api) and use **webhooks** or no-code tools like **Zapier** and **Make (Integromat)** to push results to downstream systems when the run completes. You can also set up **scheduled runs** in Apify to refresh transcript datasets automatically.

***

### Pricing & Free Trial

Tiktok Transcript Scraper runs on the Apify platform, which offers a **free tier** — no credit card required to get started.

In general, you’ll use **free tier credits** for testing and then switch to **pay-as-you-go** when you need larger runs. Exact costs depend on your Apify plan and usage; check the Apify pricing page for current details. Start for free at [apify.com](https://apify.com) and scale when you're ready.

***

### Reliability & Performance

| What We Handle | How |
|---|---|
| Request failures | Retries to improve the chance of successful extraction |
| Access stability | Proxy support with fallback behavior when needed |
| Output consistency | Parsed transcript segments plus consistent metadata fields per record |
| Run interruptions | Results are pushed as each item is processed so you don’t lose everything on partial failures |
| Data availability variability | If no transcript exists, the actor returns `transcript: "No Transcript Found"` |

**Limitations:** The actor relies on publicly available transcript/caption data being accessible from the source at scrape time. Private or login-gated content isn’t supported.

For enterprise-scale runs, contact us to discuss custom configurations.

***

### Frequently Asked Questions

#### Is there a free plan or trial?

Yes. Apify provides a free tier with credits for testing runs, so you can try Tiktok Transcript Scraper before scaling up.

#### Do I need to log in to TikTok to use this?

No. This actor extracts data from publicly available sources, and you provide video URLs via `startUrls`—no TikTok account login is part of the setup.

#### How accurate is the data?

Accuracy depends on the transcript/caption information that’s publicly accessible for each video. The actor parses subtitle timing into structured transcript segments when subtitles are present.

#### How many results can I get per run?

Your practical output size depends on your run inputs (`startUrls`) and the limits of your Apify environment/plan. There’s no extra “result cap” field in the actor input schema—use the number of URLs you pass in to control the workload.

#### How often is the data updated / how fresh is it?

The dataset is generated when you run the actor. If you need fresher transcripts or metadata, rerun the actor with the same or updated `startUrls`.

#### Is this legal? Does it comply with GDPR / CCPA?

This actor works with **publicly available data**. It’s your responsibility to ensure your use complies with GDPR, CCPA, TikTok’s terms of service, and any other applicable regulations.

#### Can I export results to Google Sheets or Excel?

Yes. You can export from the Apify dashboard as **JSON**, **CSV**, or **Excel**, then import into Google Sheets or other tools that accept those formats.

#### Can I run this on a schedule automatically?

Yes. You can schedule the actor to run automatically via Apify’s scheduling options, which is helpful for keeping transcript datasets up to date.

#### Can I access this via API?

Yes. You can trigger and retrieve results programmatically using the Apify API. See https://apify.com/docs/api for details.

#### What happens if the actor hits an error?

If scraping fails for a specific video URL, the actor logs an error and continues processing other items from your `startUrls` list. If subtitles are missing for a video, the output record includes `transcript: "No Transcript Found"`.

***

### Need Help or Have a Request?

Got a question about Tiktok Transcript Scraper or want a new feature added? Reach out at <dataforleads@gmail.com>. We respond quickly and actively maintain this actor based on user feedback. If you have ideas like additional transcript formatting options or improved export fields, tell us.

***

### Disclaimer & Responsible Use

*Tiktok Transcript Scraper is the fastest, most reliable way to extract transcripts from public TikTok videos — start your free run today.*

The actor uses **publicly available data**. It does not access private accounts, login-gated content, or password-protected pages. You are responsible for ensuring your use complies with GDPR, CCPA, platform Terms of Service, and applicable laws. For data removal requests, contact <dataforleads@gmail.com>. Use responsibly, ethically, and only for lawful purposes.

# Actor input Schema

## `startUrls` (type: `array`):

Enter one or more TikTok video URLs (e.g., https://www.tiktok.com/@david.webdeveloper/video/7506519006854253847).

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

Select proxies to be used by the scraper. If the selected proxy is rejected by TikTok, a residential proxy will be used as a fallback.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.tiktok.com/@david.webdeveloper/video/7506519006854253847"
    }
  ],
  "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 = {
    "startUrls": [
        {
            "url": "https://www.tiktok.com/@david.webdeveloper/video/7506519006854253847"
        }
    ],
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("scraperoka/tiktok-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 = {
    "startUrls": [{ "url": "https://www.tiktok.com/@david.webdeveloper/video/7506519006854253847" }],
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("scraperoka/tiktok-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 '{
  "startUrls": [
    {
      "url": "https://www.tiktok.com/@david.webdeveloper/video/7506519006854253847"
    }
  ],
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call scraperoka/tiktok-transcript-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/rqpocyqoLaMCwsfCX/builds/oFE0dZirFANMSmABZ/openapi.json
