TikTok Transcript Scraper
Pricing
from $0.90 / 1,000 tiktok transcript rows
TikTok Transcript Scraper
Extract public TikTok transcripts, captions, timed segments, VTT/SRT subtitles, and video metadata from TikTok video URLs. Export rows to datasets, API, CSV, Excel, or integrations.
Pricing
from $0.90 / 1,000 tiktok transcript rows
Rating
0.0
(0)
Developer
Maxime Dupré
Maintained by CommunityActor stats
1
Bookmarked
7
Total users
5
Monthly active users
5 days ago
Last modified
Categories
Share
📄 Get TikTok transcripts from public video URLs
TikTok Transcript Scraper extracts public captions and transcripts from TikTok videos. Paste one or more TikTok video URLs and get plain transcript text, timed transcript segments, VTT/SRT subtitle text, video metadata, creator fields, engagement counts, music details, and source links in an Apify dataset.
Use this TikTok transcript scraper when you need searchable text from short-form videos for content research, social listening, accessibility workflows, trend analysis, creator analysis, or AI pipelines. It works with public videos only, and it returns transcripts when TikTok exposes public captions for that video.
For a small first run, keep the prefilled TED Talks video URL. It has public captions, so you can quickly check the transcript row shape before adding more TikTok links.
⚙️ What this TikTok transcript scraper does
- Accepts public TikTok video URLs, including desktop, mobile, and short-link formats.
- Saves one dataset row per video transcript language.
- Saves plain transcript text and timestamped segments.
- Can include generated VTT and SRT subtitle text.
- Adds video metadata such as caption, publish time, duration, thumbnail, hashtags, and video ID.
- Adds creator metadata such as username, display name, verification status, signature, and visible author stats.
- Adds visible engagement stats such as plays, likes, comments, shares, and collects.
- Adds music or original-sound metadata when TikTok exposes it.
- Can save a no-transcript status row when a public video has no public captions.
📊 Data you can get
Each transcript row includes source fields so you can trace it back to the exact TikTok URL. Core fields include:
inputUrl,resolvedUrl,inputIndex, andvideoIdstatusandstatusReasonlanguageCodeandtranscriptSourcetranscriptTextsegmentswith start time, end time, and textsegmentCountandscrapedAtsubtitleFormats.vttandsubtitleFormats.srtwhen enabledusername,authorName,caption,publishedAt, anddurationSecondsvideo,author,engagement, andmusicobjects when their metadata toggles are enabled
Some fields can be null when TikTok does not show them on the public video page. Videos without public captions can still return a status row when Save no-transcript rows is on.
🚀 Common use cases
- Turn TikTok captions into searchable text for content analysis.
- Export TikTok video transcripts to JSON, CSV, Excel, or an API workflow.
- Collect hooks, spoken topics, and script patterns from public videos.
- Build datasets for social listening, brand monitoring, or trend research.
- Feed transcript text, timing, and video metadata into AI summarization or classification.
- Create subtitle-ready VTT/SRT files when TikTok exposes captions.
- Track which public videos have captions and which do not.
▶️ How to run it
- Add one or more public TikTok video URLs in TikTok video URLs.
- Keep Languages per video at
10, or lower it for a smaller first run. - Optional: add language codes such as
en,eng-US,es, orfrin Language filter. - Choose whether to include metadata, VTT/SRT formats, and no-transcript status rows.
- Start the Actor and open the dataset.
The default input is intentionally small. After checking the row shape, add more TikTok video URLs or call the Actor through the Apify API, scheduler, webhooks, or integrations.
🛠️ Input
🧪 Example input
{"videoUrls": [{"url": "https://www.tiktok.com/@tedtoks/video/7295065135788477742"}],"maxTranscriptLanguagesPerVideo": 10,"languageFilter": [],"includeNoTranscriptRows": true,"includeSubtitleFormats": true,"includeVideoMetadata": true,"includeAuthorMetadata": true,"includeEngagementStats": true,"includeMusicMetadata": true}
🎛️ Input fields
| Field | What it does |
|---|---|
videoUrls | Public TikTok video URLs to read. Desktop, mobile, and short links are accepted. |
maxTranscriptLanguagesPerVideo | Caps how many transcript-language rows can be saved for each video. |
languageFilter | Optional language codes to keep. Leave empty to keep every public transcript language. |
includeNoTranscriptRows | Saves a status row for videos with no public captions or no matching language. |
includeSubtitleFormats | Adds VTT and SRT subtitle text to transcript rows. |
includeVideoMetadata | Adds caption, publish time, duration, thumbnail, hashtags, and video fields. |
includeAuthorMetadata | Adds public creator profile fields and visible author stats. |
includeEngagementStats | Adds visible play, like, comment, share, and collect counts. |
includeMusicMetadata | Adds public sound or music fields when available. |
📦 Output example
{"inputIndex": 1,"inputUrl": "https://www.tiktok.com/@washingtonpost/video/7221954260248939822","resolvedUrl": "https://www.tiktok.com/@washingtonpost/video/7221954260248939822","videoId": "7221954260248939822","status": "ok","statusReason": null,"username": "washingtonpost","authorName": "The Washington Post","caption": "The newly processed, sharper image of a black hole...","publishedAt": "2023-04-14T17:11:07.000Z","durationSeconds": 30,"languageCode": "eng-US","transcriptSource": "ASR","transcriptText": "You remember this black hole image...","segments": [{"index": 1,"startSeconds": 0.158,"endSeconds": 2.661,"text": "You remember this black hole image we took 4 years ago?"}],"segmentCount": 15,"subtitleFormats": {"vtt": "WEBVTT...","srt": "1\n00:00:00,158 --> 00:00:02,661\nYou remember this black hole image..."},"engagement": {"playCount": 4500000,"likeCount": 357100,"commentCount": 1222,"shareCount": 3272,"collectCount": 20177},"scrapedAt": "2026-05-22T19:06:02.434Z"}
The exact number of rows depends on how many public transcript languages TikTok exposes for each video and your language limit.
💳 Pricing
This Actor uses pay-per-event pricing:
- Actor start:
$0.001per run. - TikTok transcript:
$0.0009per saved transcript or no-transcript status.
The default prefill is small, so you can inspect the dataset before running a larger batch.
⚠️ Limits and caveats
- Only public TikTok videos are supported.
- The Actor does not use TikTok login, cookies, or private account access.
- It returns transcripts only when TikTok exposes public captions or subtitle files for the video.
- Private, deleted, unavailable, or region-restricted videos may return no transcript or an explanatory status row.
- Some videos expose only one language; others expose creator captions plus machine-translated captions.
- This Actor does not download TikTok videos or audio files.
- This Actor does not search TikTok profiles, hashtags, comments, or feeds. Paste direct video URLs.
❓ FAQ
🔐 Does this TikTok transcript scraper need cookies?
No. It reads public TikTok video pages and public caption files. It does not ask for TikTok cookies, login details, or an API key.
🌐 Can it scrape TikTok captions in multiple languages?
Yes, when TikTok exposes multiple public caption tracks for the video. The Actor saves one row per transcript language up to your Languages per video limit.
🚦 What happens when a video has no transcript?
If Save no-transcript rows is enabled, the Actor saves one status row for that video. If it is disabled, videos without matching public captions produce no row.
📤 Can I export TikTok transcripts to CSV or Excel?
Yes. Results are saved to an Apify dataset, which you can export as JSON, CSV, Excel, XML, RSS, or through the Apify API.
🤖 Does it transcribe audio with AI?
No. This Actor extracts public captions and subtitle files that TikTok exposes. It does not download audio or create new AI transcripts from videos that have no public captions.
🔗 Can I scrape a TikTok profile or hashtag?
No. This Actor is focused on direct TikTok video URLs. Profile, hashtag, search, comment, and feed scraping are outside this Actor.
📝 Changelog
- 0.0: Initial release.
- 0.1: Updated pricing event copy.
🆘 Support
For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡
🔗 Other actors
- YouTube Channel Scraper ↗ - Export public YouTube channel profiles and video rows.
- Twitter Scraper ↗ - Search Twitter/X posts with text, author, hashtag, date, and engagement filters.
- Reddit Scraper ↗ - Find Reddit posts and comments around a topic, brand, or trend.
- LinkedIn Posts Scraper ↗ - Collect public LinkedIn post rows from profile, company, and direct post URLs.
- Telegram Channel Messages Scraper ↗ - Export public Telegram channel messages with text, dates, links, and visible engagement.
Made with ❤️ by Maxime Dupré