TikTok Transcript Scraper
Pricing
from $3.00 / 1,000 results
TikTok Transcript Scraper
Extract transcripts and subtitles from TikTok videos in all available languages. Returns timestamped segments plus full plain-text transcript per language.
Pricing
from $3.00 / 1,000 results
Rating
0.0
(0)
Developer
Crawler Bros
Maintained by CommunityActor stats
1
Bookmarked
167
Total users
36
Monthly active users
17 days ago
Last modified
Categories
Share
Extract subtitles and full transcripts from TikTok videos in every available language. The actor fetches all subtitle tracks attached to a video — including auto-generated speech recognition (ASR) captions and machine-translated (MT) versions — parses the WebVTT format, and emits one dataset row per video-language combination. No account, login, or cookies are required to scrape public videos.
What this actor does
- Accepts TikTok video URLs or bare numeric post IDs as input
- Returns one output row per video per language (e.g. a video with 6 languages produces 6 rows)
- Provides both a full plain-text
transcriptfield and asegmentsarray with precise start/end/text cues - Identifies the subtitle source:
ASR(auto speech recognition),MT(machine translation), or other creator-uploaded captions - Includes video metadata — username, display name, caption, publish date, duration — on every row
- Supports an optional language filter so you only receive the language(s) you need
- Exits cleanly with a
success: falserow when a video has no captions available - Empty fields are omitted
Output per transcript row
postId— unique TikTok video IDpostUrl— canonical video URLusername— author's TikTok usernamedisplayName— author's display namecaption— video description/caption textcreatedAt— publish timestamp (ISO 8601)duration— video duration in secondslanguageCode— BCP-47 language code (e.g.eng-US,fre-FR,spa)languageId— TikTok's internal language identifiersubtitleFormat— subtitle format, alwayswebvttsource— subtitle origin:ASR(auto speech recognition),MT(machine translation), or otherversion— subtitle version string from TikTokvariant— subtitle variant identifier from TikToksubtitleUrl— direct URL to the WebVTT subtitle filesubtitleUrlExpiresAt— expiry timestamp of the subtitle URLisAutoGenerated— true when TikTok generated the captions automaticallyisOriginalCaption— true when the caption is in the video's original languagesegments— array of timestamped cues:[{ "start": 0.0, "end": 2.5, "text": "..." }, ...]segmentCount— number of caption segmentstranscript— full joined plain-text transcript for this languagetranscriptDuration— total duration covered by captions in secondsscrapedAt— ISO 8601 timestamp of when the row was collected
Input
| Field | Type | Default | Description |
|---|---|---|---|
postUrls | array of strings | — | TikTok video URLs to extract transcripts from. Accepts full URLs and short links. |
postIds | array of strings | — | Numeric TikTok post IDs (alternative to postUrls). |
languages | array of strings | all | Optional language filter. Only return rows whose languageCode starts with one of these values (e.g. ["eng-US", "fre-FR"]). Leave empty for all languages. |
useWhisperFallback | boolean | false | When enabled, uses Whisper speech-to-text to generate transcripts for videos with no native subtitles. Adds significant processing time. |
Example: Extract all languages from a NatGeo video
{"postUrls": ["https://www.tiktok.com/@natgeo/video/7637581966396656909"]}
Example: English transcripts only
{"postUrls": ["https://www.tiktok.com/@natgeo/video/7637581966396656909","https://www.tiktok.com/@natgeo/video/7652858746137234702"],"languages": ["eng-US"]}
Example: Using post IDs
{"postIds": ["7637581966396656909", "7652858746137234702"],"languages": ["eng-US", "spa"]}
Example: Enable Whisper fallback for videos without captions
{"postUrls": ["https://www.tiktok.com/@somecreator/video/7123456789012345678"],"useWhisperFallback": true}
Use cases
- Content repurposing — convert TikTok videos into blog posts, newsletters, or social copy using the plain-text
transcriptfield - Multi-language SEO — harvest all MT subtitle tracks to identify keyword opportunities across markets
- Accessibility tooling — build caption archives or compliance audits for brands and media companies
- Journalism and research — extract verbatim quotes from news, political, or educational creators without manual transcription
- Translation pipelines — feed
segmentsarrays into translation APIs with exact timing for dubbed audio or subtitle files
FAQ
Q: Do I need a TikTok account or cookies?
A: No. The actor works entirely with public TikTok videos and requires no authentication.
Q: How many rows will I get per video?
A: One row per available language. Popular news and educational videos often have 5–10 languages (one original plus several machine translations).
Q: What is the difference between ASR and MT sources?
A: ASR (auto speech recognition) is the transcript generated from the video's own audio. MT (machine translation) is a TikTok-produced translation of the ASR track into another language. Creator-uploaded subtitle files appear as a separate source.
Q: What happens when a video has no subtitles?
A: The actor emits one row with success: false and a descriptive message. Video metadata (username, caption, duration) is still populated in that row.
Q: Which URL formats are supported?
A: Standard video URLs (https://www.tiktok.com/@username/video/ID), short share links (vm.tiktok.com, vt.tiktok.com), and bare numeric IDs.
Q: Can I scrape private or deleted videos?
A: No. Private, deleted, or regionally restricted videos return a failure row with an explanatory message.
Q: What is the languages filter format?
A: Prefix-based matching on BCP-47 codes. For example, "eng" matches eng-US, eng-GB; "eng-US" matches only that exact variant. You can mix short and long codes in the same array.
Q: Are slideshow (photo) posts supported?
A: Slideshows do not have audio tracks and therefore typically have no subtitle data. The actor will return a failure row for those posts.
Q: How fresh are the subtitle URLs?
A: The subtitleUrl expires after a short window (usually a few hours). The subtitleUrlExpiresAt field tells you the exact cutoff. Download the VTT file promptly if you need it long-term.
Q: Can I run this on hundreds of videos?
A: Yes. The actor processes URLs sequentially. For large batches, consider splitting across multiple runs.
Related TikTok Scrapers
Build a complete TikTok data pipeline with our full suite: