# TikTok Transcripts - Captions or Speech to Text for Any Video (`tenfoldfleet/tiktok-transcripts`) Actor

Get the transcript of a TikTok video: paste video links and get the spoken words as text with timestamps, from TikTok's captions or, when a video has none, from speech to text. Plus views, likes, comments, author and hashtags. No login. $6 per 1,000 videos (per started 3 min); silent videos free.

- **URL**: https://apify.com/tenfoldfleet/tiktok-transcripts.md
- **Developed by:** [Tenfold Fleet](https://apify.com/tenfoldfleet) (community)
- **Categories:** Social media, Agents, MCP servers
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $6.00 / 1,000 video transcripts

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 TikTok Transcripts do?

**TikTok Transcripts** gives you the **words spoken in any public TikTok video as text**. Paste video links, short share links or video ids and get the **full transcript**, **timestamped lines**, the **language**, and the video's **views, likes, comments, shares, saves, author, description and hashtags** in one row per video.

> Not affiliated with TikTok or ByteDance. TikTok is a trademark of ByteDance Ltd.

It works in two steps. First it reads the **captions TikTok already has** for the video (auto captions, captions the creator edited, or TikTok's own translations). When a video has **no captions at all**, which is common, it downloads the sound and runs **AI speech to text (Whisper)** on it, **at the same price**. Every row says where the text came from in the `source` field: `captions` or `speech-to-text`.

It is a **TikTok transcript API** that needs **no login and no TikTok account**. Videos without speech and every failure are **free**.

### Why use a TikTok transcript tool?

- ✍️ **Repurpose content**: turn TikToks into blog posts, threads, newsletters, scripts and show notes.
- 🔎 **Research creators and competitors**: read what a brand or creator actually says, search it, and compare scripts of videos with high and low views.
- 🤖 **Feed AI pipelines**: send transcripts to an LLM for summaries, hooks, topic tags, sentiment or a RAG knowledge base.
- 🌍 **Work across languages**: get the original language, or TikTok's English translation when the video has one.
- ♿ **Subtitles and accessibility**: timestamped lines you can turn into SRT or VTT captions.

It runs on the Apify platform, so you also get an **API**, scheduling, webhooks and integrations with Make, Zapier, n8n, LangChain and LlamaIndex.

### What data can it extract?

| Field | Example |
|---|---|
| `url`, `videoId` | `https://www.tiktok.com/@thatdudecancook/video/7649086431641521421`, `7649086431641521421` |
| `authorUsername`, `authorName` | `thatdudecancook`, `Sonny Hurrell` |
| `transcript` | the full spoken text |
| `segments` | `[{ "start": 0.46, "end": 2.54, "text": "..." }]`, times in seconds |
| `source` | `captions` or `speech-to-text` |
| `language` | `en` (ISO 639-1 code of the transcript) |
| `captionLanguage`, `captionSource` | `eng-US`, `auto` / `creator` / `translated` (for caption transcripts) |
| `availableCaptions` | every caption track the video offers, e.g. `[{ "language": "fra-FR", "source": "ASR" }]` |
| `wordCount`, `durationSec` | `224`, `69` |
| `views`, `likes`, `comments`, `shares`, `saves` | `81800`, `5114`, `56`, `354`, `975` |
| `description`, `hashtags`, `createdAt` | caption text, `["pasta"]`, `2026-06-08T18:02:21.000Z` |
| `authorFollowers`, `authorVerified` | `4300000`, `true` |
| `musicTitle`, `musicAuthor`, `musicOriginal` | the sound used; `musicOriginal` is `false` for licensed songs |
| `noSpeech` | `true` when the video has no spoken words (free) |
| `chargedVideos` | how many video charges the row used (1 for videos up to 3 minutes) |
| `error` | why a video was skipped (deleted, private, photo post, ...), otherwise `null` |

### How to get the transcript of a TikTok video

1. Click **Try for free**.
2. Paste links into **TikTok video URLs or ids**, one per line. Full links, `vm.tiktok.com` / `vt.tiktok.com` short links and bare ids all work.
3. Leave **Speech to text when there are no captions** on to get text for every video, or turn it off for caption transcripts only.
4. Optional: set **Caption language** to `English` to get TikTok's English translation when a video has one.
5. Click **Start**, then download the results as **JSON, CSV, Excel or HTML**, or read them through the API.

### How much does it cost?

**$6 per 1,000 videos** ($0.006 per transcript), pay per event, **speech to text included**. You pay the same whether the text came from TikTok's captions or from our speech recognition.

These are **free**: videos with no speech (music only, silence), deleted or private videos, photo slideshows, links that are not videos, videos TikTok would not show, and any failure.

Videos longer than 3 minutes count once per started 3 minutes (a 7-minute video counts as 3 videos), because longer videos cost more to process. The `chargedVideos` field shows this on every row. Speech to text covers videos up to 10 minutes; longer videos are transcribed only when TikTok has captions for them.

**Free Apify plan:** each run transcribes up to **10 videos**, and speech to text only runs on videos up to 3 minutes, because every speech-to-text call costs the developer a fee. Other videos in the run come back as free rows with a note. Any paid Apify plan removes these limits.

### Input

```json
{
    "videos": [
        "https://www.tiktok.com/@thatdudecancook/video/7649086431641521421",
        "https://m.tiktok.com/v/7698488200364379422.html",
        "7461279790822165782"
    ],
    "speechToText": true,
    "captionLanguage": "original",
    "includeSegments": true,
    "maxConcurrency": 5
}
```

### Output

```json
{
    "url": "https://www.tiktok.com/@thatdudecancook/video/7649086431641521421",
    "videoId": "7649086431641521421",
    "authorUsername": "thatdudecancook",
    "authorName": "Sonny Hurrell",
    "transcript": "If your thing is spicy pasta, then I have got you covered. And you wanna start by seasoning up your pasta water...",
    "source": "captions",
    "language": "en",
    "captionLanguage": "eng-US",
    "captionSource": "auto",
    "wordCount": 224,
    "segments": [
        { "start": 0.46, "end": 2.54, "text": "If your thing is spicy pasta," },
        { "start": 2.54, "end": 4.06, "text": "then I have got you covered." }
    ],
    "noSpeech": false,
    "durationSec": 69,
    "description": "This pasta is addictive #pasta",
    "hashtags": ["pasta"],
    "createdAt": "2026-06-08T18:02:21.000Z",
    "views": 81800,
    "likes": 5114,
    "comments": 56,
    "shares": 354,
    "saves": 975,
    "authorFollowers": 4300000,
    "authorVerified": true,
    "musicTitle": "original sound",
    "musicAuthor": "Sonny Hurrell",
    "musicOriginal": true,
    "availableCaptions": [{ "language": "eng-US", "source": "ASR" }],
    "chargedVideos": 1,
    "input": "https://www.tiktok.com/@thatdudecancook/video/7649086431641521421",
    "error": null,
    "transcribedAt": "2026-10-24T01:00:00.000Z"
}
```

Download the dataset as JSON, CSV, Excel, XML or HTML from the run page, or fetch it with the Apify API.

### Tips

- Turn off **Timestamped segments** if you only need the text; the full transcript is still there.
- `captionSource` tells you how the captions were made: `auto` is TikTok's speech recognition, `creator` means the creator edited them, `translated` is TikTok's machine translation.
- Need a list of videos first? Collect the links with any TikTok profile or hashtag scraper on Apify, then paste them here.
- Set a **maximum cost per run** in the run options; the Actor stops cleanly when it is reached.

### Use it with AI agents (MCP)

Give Claude, ChatGPT, Cursor or any MCP client this Actor as a tool through Apify's MCP server: add `https://mcp.apify.com?tools=tenfoldfleet/tiktok-transcripts` as a remote MCP server and sign in with your Apify account. The agent fills in the input, runs the Actor and reads the transcripts itself; you pay the same per-event price as a normal run.

### FAQ

#### Do I need a TikTok account or a login?

No. The Actor reads public videos the way a logged-out visitor sees them and never logs in.

#### What if a video has no captions?

With **Speech to text** on (the default), the Actor transcribes the video's sound with the Whisper speech model, at the same price. For videos that use their own original sound it reads that sound; for videos with a licensed song it reads the video's audio track, so a voiceover over music is picked up too.

#### What happens with videos that only have music?

Videos with instrumental music, sound effects or silence normally come back with `noSpeech: true` and are free. Filler phrases speech models invent on silent stretches (a lone "Thank you.") and sung syllables like "la la la" are removed. Sung lyrics are real words, so a video whose sound is a song with vocals can return the lyrics as its transcript.

#### Which languages are supported?

Captions come in whatever language TikTok has for the video. Speech to text covers about 100 languages, including English, Spanish, Portuguese, French, German, Indonesian, Arabic, Hindi, Turkish, Russian, Japanese, Korean and Chinese. The `language` field gives the code.

#### How accurate are the transcripts?

Caption transcripts are exactly TikTok's captions, so they are as good as TikTok's own speech recognition (or better when the creator edited them). Speech-to-text transcripts are usually close to word for word on clear speech; loud music, crosstalk or noisy audio can cause mistakes, and timestamps are approximate.

#### Can it transcribe private or deleted videos?

No. They come back as free rows with an `error` explaining why.

#### Is it legal to transcribe TikTok videos?

The Actor only processes publicly available videos. You are responsible for how you use the transcripts: respect copyright, TikTok's terms and privacy laws such as the GDPR, and don't process personal data without a legitimate reason. If unsure, ask a lawyer.

### More tools from Tenfold Fleet

| Actor | Output |
|---|---|
| [ALDI Australia Scraper - AU Products, Unit Prices & Catalogue](https://apify.com/tenfoldfleet/aldi-australia-scraper) | product |
| [Alibaba Image Search - Reverse Lookup of Suppliers by Photo](https://apify.com/tenfoldfleet/alibaba-image-search) | matched product |
| [Alibaba Products Scraper: Wholesale Suppliers, MOQ, Price Tiers](https://apify.com/tenfoldfleet/alibaba-products-scraper) | product |
| [AliExpress Keyword Scraper - Exact Sold Counts by Search Term](https://apify.com/tenfoldfleet/aliexpress-search-scraper) | product |
| [Amazon Product Scraper - Details, Prices & Search by ASIN](https://apify.com/tenfoldfleet/amazon-product-scraper) | product |
| [Applicant Tracking Jobs Scraper - Greenhouse, Lever & 6 More](https://apify.com/tenfoldfleet/ats-jobs-scraper) | job posting |
| [Backlinks Checker - Referring Domains, Anchors & Domain Rank](https://apify.com/tenfoldfleet/backlinks-checker) | backlink |
| [Bilibili Scraper - Videos, Comments, Danmaku & Search](https://apify.com/tenfoldfleet/bilibili-scraper) | video or comment |
| [Businesses Without Websites - Local Leads with Phone & Rating](https://apify.com/tenfoldfleet/businesses-without-websites) | lead |
| [Contact Details Scraper - One Lead Record per Company Website](https://apify.com/tenfoldfleet/company-contact-finder) | website with contacts |
| [Facebook Ads Library Scraper for Marketers](https://apify.com/tenfoldfleet/facebook-ads-library-scraper) | ad |
| [Facebook Page Contact Finder - Business Leads from Page Links](https://apify.com/tenfoldfleet/facebook-page-contact-finder) | page with contact details |
| [Google Ads Transparency Center Scraper - Competitor Ads by Site](https://apify.com/tenfoldfleet/google-ads-transparency-scraper) | ad |
| [Google AI Overviews Checker - Citations & Domain Tracker](https://apify.com/tenfoldfleet/google-ai-overviews-checker) | keyword checked |
| [Google Flights Scraper - All Fares per Route & Date (API)](https://apify.com/tenfoldfleet/google-flights-scraper) | route search |
| [Google Hotels Scraper - Nightly Prices, Stars & Booking Sites](https://apify.com/tenfoldfleet/google-hotels-scraper) | hotel |
| [Google for Jobs Scraper - Openings by City, Pay & Job Board](https://apify.com/tenfoldfleet/google-jobs-scraper) | job listing |
| [Google Keyword Planner Alternative - Ideas, Bids & Volume](https://apify.com/tenfoldfleet/google-keyword-planner) | keyword idea |
| [Google Maps Extractor - Business Leads, Phones & Websites](https://apify.com/tenfoldfleet/google-maps-extractor) | place |
| [Google News Scraper - Articles, Real URLs & Full Text](https://apify.com/tenfoldfleet/google-news-scraper) | article |
| [Google Travel Hotel Rate Tracker - OTA Prices for Every Night](https://apify.com/tenfoldfleet/google-travel-hotel-rate-tracker) | offer |
| [Search Trends by Region & Time - Google Trends Data Scraper](https://apify.com/tenfoldfleet/google-trends-scraper) | keyword |
| [Instagram Reels Search - Keyword to Top Reels, Plays & Creators](https://apify.com/tenfoldfleet/instagram-reels-search) | reel |
| [Instagram Reels Transcript - Speech to Text for Public Reels](https://apify.com/tenfoldfleet/instagram-reels-transcript) | reel transcript |
| [Keyword Ideas & Related Keywords - Difficulty, Volume & CPC](https://apify.com/tenfoldfleet/keyword-ideas) | keyword idea |
| [Keyword Search Volume, CPC & Difficulty Checker (Bulk)](https://apify.com/tenfoldfleet/keyword-search-volume) | keyword with data |
| [Likee Scraper - Creators by Country, Video Views & Likes](https://apify.com/tenfoldfleet/likee-scraper) | video |
| [LinkedIn Ads Library Scraper - Competitor Ad Copy & Targeting](https://apify.com/tenfoldfleet/linkedin-ad-library-scraper) | ad |
| [Reddit Brand Monitoring - Keyword Alerts for Posts & Comments](https://apify.com/tenfoldfleet/reddit-brand-monitoring) | mention |
| [Remote Job Board Scraper - Remote Jobs Aggregator, 7 Sites](https://apify.com/tenfoldfleet/remote-jobs-aggregator) | unique remote job |
| [SEEK Jobs Scraper - Salaries & Hiring Across 8 APAC Job Boards](https://apify.com/tenfoldfleet/seek-job-scraper) | job listing |
| [SEO Agent - AI Keyword Research & Competitor Reports](https://apify.com/tenfoldfleet/seo-agent) | research report |
| [SEO Crawler - Technical SEO Audit Tool & On-Page Checker](https://apify.com/tenfoldfleet/seo-audit-tool) | page audit |
| [SEO Competitor Keywords - Domain Ranked Keywords & Keyword Gap](https://apify.com/tenfoldfleet/seo-competitor-keywords) | keyword |
| [Shopify Inventory Scraper - SKUs, Variants & In-Stock Status](https://apify.com/tenfoldfleet/shopify-products-scraper) | product |
| [Shopify App & Theme Detector - Store Analyzer & Contacts](https://apify.com/tenfoldfleet/shopify-store-analyzer) | shopify store |
| [Sitemap URL Extractor - All URLs from sitemap.xml & robots.txt](https://apify.com/tenfoldfleet/sitemap-url-extractor) | url |
| [Website Built With Checker - Find Any Site's CMS & Tech Stack](https://apify.com/tenfoldfleet/tech-stack-detector) | website |
| [Threads Search - Keyword & Profile Posts Scraper (No Login)](https://apify.com/tenfoldfleet/threads-search) | post |
| [HTML to Text & URL to Markdown - LLM Ready Web Content](https://apify.com/tenfoldfleet/url-to-markdown) | page |
| [Website Traffic Checker - Bulk Domain Traffic Estimate](https://apify.com/tenfoldfleet/website-traffic-checker) | domain with traffic data |
| [WeChat Official Account Articles - Keyword Search to Markdown](https://apify.com/tenfoldfleet/wechat-official-account-articles) | article found |
| [Weibo Scraper - Comment Threads, Hot Search Ranks & User Stats](https://apify.com/tenfoldfleet/weibo-scraper) | comment |
| [Woolworths Product Scraper - AU Shelf Prices, Specials & GTINs](https://apify.com/tenfoldfleet/woolworths-product-scraper) | product |
| [Workday Jobs Scraper - myworkdayjobs.com API with Salary](https://apify.com/tenfoldfleet/workday-jobs-scraper) | job posting |
| [YouTube Channel Email Scraper - Creator Contact Extractor](https://apify.com/tenfoldfleet/youtube-channel-email-scraper) | channel with email |
| [YouTube Livestream & Channel Scraper - Videos, Likes & Stats](https://apify.com/tenfoldfleet/youtube-channel-scraper) | video |
| [YouTube Comments Scraper - Replies, Likes & Sort by Newest](https://apify.com/tenfoldfleet/youtube-comments-scraper) | comment |
| [YouTube Shorts Analytics Scraper - Views, Likes & Hashtags](https://apify.com/tenfoldfleet/youtube-shorts-scraper) | short |
| [YouTube Captions Downloader - Transcript & Subtitles Scraper](https://apify.com/tenfoldfleet/youtube-transcript-scraper) | transcript |

# Actor input Schema

## `videos` (type: `array`):

TikTok videos to transcribe: full links (https://www.tiktok.com/@user/video/7338085038258457889), short share links (vm.tiktok.com/..., vt.tiktok.com/..., tiktok.com/t/...) or bare video ids. One video = one result. Profile, hashtag and sound pages are not accepted. Free Apify plan: the first 10 videos per run, and speech to text only for videos up to 3 minutes.

## `speechToText` (type: `boolean`):

Many TikTok videos have no captions. When this is on, the actor transcribes their audio with a speech recognition model (Whisper) at the same price. Turn it off to get caption transcripts only; videos without captions are then returned free with an error note.

## `captionLanguage` (type: `string`):

Leave on "original" to get the language spoken in the video. Or pick a language code (en, es, pt, ...) to get TikTok's translated captions in that language when the video has them (TikTok often offers an English translation); if it does not, you get the original language. Speech to text always returns the spoken language.

## `includeSegments` (type: `boolean`):

Add the transcript as lines with start and end times in seconds. Turn off if you only need the full text.

## `maxConcurrency` (type: `integer`):

How many videos to process in parallel.

## Actor input object example

```json
{
  "videos": [
    "https://www.tiktok.com/@jayshetty/video/7698488200364379422",
    "https://www.tiktok.com/@thatdudecancook/video/7649086431641521421",
    "https://www.tiktok.com/@cuisineavec_parvaflos/video/7461279790822165782"
  ],
  "speechToText": true,
  "captionLanguage": "original",
  "includeSegments": true,
  "maxConcurrency": 5
}
```

# Actor output Schema

## `results` (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 = {
    "videos": [
        "https://www.tiktok.com/@jayshetty/video/7698488200364379422",
        "https://www.tiktok.com/@thatdudecancook/video/7649086431641521421",
        "https://www.tiktok.com/@cuisineavec_parvaflos/video/7461279790822165782"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("tenfoldfleet/tiktok-transcripts").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 = { "videos": [
        "https://www.tiktok.com/@jayshetty/video/7698488200364379422",
        "https://www.tiktok.com/@thatdudecancook/video/7649086431641521421",
        "https://www.tiktok.com/@cuisineavec_parvaflos/video/7461279790822165782",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("tenfoldfleet/tiktok-transcripts").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 '{
  "videos": [
    "https://www.tiktok.com/@jayshetty/video/7698488200364379422",
    "https://www.tiktok.com/@thatdudecancook/video/7649086431641521421",
    "https://www.tiktok.com/@cuisineavec_parvaflos/video/7461279790822165782"
  ]
}' |
apify call tenfoldfleet/tiktok-transcripts --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,tenfoldfleet/tiktok-transcripts"
        }
    }
}
```

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/v3iTTd8fCVTi5Cl7L/builds/6IpQUXOn76fpSklss/openapi.json
