TikTok Transcript Scraper
Pricing
from $5.00 / 1,000 native transcript extracteds
TikTok Transcript Scraper
AI transcript extractor for TikTok videos. Native captions + AI fallback, WEBVTT timestamps, no cookies, no login. MCP/API-ready.
Pricing
from $5.00 / 1,000 native transcript extracteds
Rating
0.0
(0)
Developer
Khadin Akbar
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
a day ago
Last modified
Categories
Share
TikTok Transcript Scraper is an Apify Actor for turning specific TikTok video URLs into transcript records. It accepts full TikTok links, shortened links, and request-object start URLs, then returns one dataset record per video with the transcript text, WEBVTT cue data, timestamped segments, language, source, status, and extraction time. It is built for public TikTok video speech extraction through Apify, and it is also usable through Apify MCP.
Best fit and connected workflows
This Actor fits workflows that start with a known TikTok video URL and need structured speech text for downstream use.
Common routing patterns:
- video-to-text pipelines for content analysis and research
- transcript enrichment before summarization, tagging, or indexing
- RAG inputs built from spoken TikTok content
- workflow chains where another Actor emits TikTok URL objects into
startUrls - Use paired social workflows with TikTok Comments Scraper - Replies & Authors when the next step is comment and reply analysis on the same content set
The Actor focuses on individual videos rather than profiles, feeds, hashtags, or sounds, which keeps the input contract precise and the output aligned to transcript extraction.
Practical scenario
A content strategist, Maya, has a list of three TikTok video URLs from a campaign review. She sends those URLs in videoUrls with language set to en and useAiFallback left off. The dataset returns transcript, segments, isAiTranscript, source, and status for each video. Maya sees one video with native captions and another with a no_transcribable_audio status. She uses the transcript text to draft a summary and then sends the same URLs into a downstream notes workflow.
Input fields
| Field | Type | Description |
|---|---|---|
videoUrls | array | TikTok video URLs to transcribe. Accepts full URLs and shortened forms. This is the main input for specific videos. |
startUrls | array | Alternative request-object input, such as [{ "url": "https://www.tiktok.com/@user/video/123..." }]. Useful for chaining from another Actor. |
useAiFallback | boolean | Enables AI speech recognition when native captions are unavailable. AI fallback is available for videos under 2 minutes. |
maxTranscripts | integer | Hard cap on how many videos are transcribed in one run. Default is 100. |
language | string | Two-letter language code passed to the provider, such as en, es, or fr. |
Focused input example
{"videoUrls": ["https://www.tiktok.com/@stoolpresidente/video/7499229683859426602","https://www.tiktok.com/@khaby.lame/video/7137423965982653702"],"useAiFallback": false,"maxTranscripts": 25,"language": "en"}
Output fields
| Field | Type | Description |
|---|---|---|
videoId | string or null | TikTok numeric video ID when resolved. |
url | string | TikTok video URL as passed to the provider. |
transcript | string or null | Full transcript text with line breaks between segments. |
segments | array | Timestamped segments parsed from WEBVTT. |
webvtt | string or null | Raw WEBVTT response from the provider. |
isAiTranscript | boolean | True when AI fallback produced the transcript. |
language | string or null | Two-letter language code requested for the transcript. |
source | string or null | Provider that produced the transcript: scrapecreators or sociavault. |
status | string | One of ok, no_transcribable_audio, or provider_error. |
note | string or null | Human-readable explanation for non-ok records. |
scrapedAt | string | ISO 8601 timestamp of extraction. |
Illustrative output record
{"videoId": "7499229683859426602","url": "https://www.tiktok.com/@stoolpresidente/video/7499229683859426602","transcript": "Alright, pizza review time.\nSal's Pizza Factory.","segments": [{"start": "00:00:00.120","end": "00:00:01.840","text": "Alright, pizza review time."},{"start": "00:00:01.841","end": "00:00:03.761","text": "Sal's Pizza Factory."}],"webvtt": "WEBVTT\n\n00:00:00.120 --> 00:00:01.840\nAlright, pizza review time.\n\n00:00:01.841 --> 00:00:03.761\nSal's Pizza Factory.\n","isAiTranscript": false,"language": "en","source": "scrapecreators","status": "ok","note": null,"scrapedAt": "2026-06-27T03:10:00.000Z"}
How it works
This Actor uses managed transcript providers behind the scenes and keeps the workflow public-data based.
Implementation facts:
- The Actor accepts TikTok video URLs through
videoUrlsorstartUrls. - It requests a transcript from the provider, with ScrapeCreators as the primary provider and SociaVault as fallback.
- Native captions are used first.
- When
useAiFallbackis enabled, AI speech recognition can be used for videos without native transcripts, subject to the provider's two-minute scope. - The returned WEBVTT content is parsed into plain-text transcript text and timestamped segments.
- Results are written to the dataset, and a run summary is written to the output key-value record.
The Actor uses the environment variables SCRAPECREATORS_API_KEY and SOCIAVAULT_API_KEY in its containerized setup.
Pricing
This Actor uses Pay per event pricing plus Apify platform usage.
Chargeable events include:
- Actor start
- Native transcript extracted
- AI fallback transcript extracted
The native transcript event is the primary event, and AI fallback uses a separate event. Apify platform usage is billed separately according to the workspace and execution resources used on the platform. For the current pricing details, event pricing, and any platform usage information, check the live Pricing tab on the Actor page.
Example in words: if you run the Actor on ten videos and six return native transcripts while four use AI fallback, the billed transcript events follow those event types, plus the run start event and any Apify platform usage tied to the run.
Use with AI agents (MCP)
This Actor is usable through Apify MCP as a tool for converting a TikTok video URL into transcript records.
Exact Actor identity: khadinakbar/tiktok-transcript-scraper
Tool description:
- Input: one or more TikTok video URLs, or request objects with
url - Output: dataset records containing transcript text, WEBVTT, segments, source, status, and timestamps
- Scope: specific TikTok videos, with native captions first and optional AI fallback for eligible videos
- Provenance: each record includes
source,status, andscrapedAtso downstream agents can track where the transcript came from and when it was extracted - Pagination and cost guidance: if your agent processes many URLs, use
maxTranscriptsto cap the run size and keep batches small enough for predictable billing. Each transcript event is charged per extracted video, with AI fallback billed as its own event type when enabled.
Extract transcripts from these TikTok video URLs and return structured records with transcript text, segments, source, status, and scrape time. Use native captions first, and include AI fallback only when the video has no native transcript and the execution configuration allows it.
Apify API example
JavaScript example with APIFY_TOKEN and dataset readback:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({token: process.env.APIFY_TOKEN,});const input = {videoUrls: ['https://www.tiktok.com/@stoolpresidente/video/7499229683859426602'],useAiFallback: false,maxTranscripts: 10,language: 'en',};const run = await client.actor('khadinakbar/tiktok-transcript-scraper').call(input);const { items } = await client.dataset(run.defaultDatasetId).listItems({clean: true,});console.log(items);
Best results and outcome guidance
A few simple routing choices help keep runs aligned with the contract:
- Use
videoUrlsfor direct, manual transcription jobs. - Use
startUrlswhen another Actor already outputs TikTok URL objects. - Set
languageto the language of the native caption track you expect. - Keep
useAiFallbackoff when you want native-caption-only output. - Use
maxTranscriptsto set the batch size for a run.
The output is most useful when a downstream step can consume plain text, timestamped segments, or the raw WEBVTT cue format.
Design note
I found that the dataset contract includes both transcript and segments, which makes the output useful for plain-text reading and time-aligned processing at the same time.
FAQ
Can this Actor accept a TikTok profile or hashtag?
It is built for specific TikTok video URLs. For profile, hashtag, search, or comment workflows, use a matching Actor from the same portfolio.
When should I use startUrls instead of videoUrls?
Use videoUrls for direct runs. Use startUrls when another Actor or agent already emits request objects like { "url": "..." }.
What is the role of useAiFallback?
It enables AI speech recognition for videos that have no native transcript, with the provider scope limited to videos under 2 minutes.
What does source tell me?
It shows which provider produced the transcript, with values such as scrapecreators or sociavault.
How should I connect this with another TikTok workflow?
A common path is to extract transcripts here first, then route the same video set into TikTok comment analysis, or into summarization and classification tools.
Responsible use
Use this Actor for TikTok content that you are permitted to access and process. It works on public video URLs and returns structured transcript data for downstream analysis, accessibility, and content workflows. Respect applicable platform terms, copyright, and data protection obligations in your environment.