TikTok Transcript Scraper
Pricing
from $0.60 / 1,000 video transcripts
TikTok Transcript Scraper
Get the full transcript of any TikTok video, with timestamps. Uses TikTok captions when available and AI speech-to-text for videos without them. Add video links or whole profiles. SRT subtitles, 90+ languages, no login needed.
Pricing
from $0.60 / 1,000 video transcripts
Rating
0.0
(0)
Developer
Coder
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Get the full spoken transcript of any public TikTok video, with timestamps, as clean structured data, fast.
Add video links or whole profiles and export the transcripts as JSON, CSV or Excel, or pull them through the Apify API. Results appear in your dataset while the run is still going.
What This Actor Does
- One row per video with the full transcript, timestamped segments and the video's main stats
- Uses TikTok's own captions when the video has them
- Videos without captions (about half of TikTok) are transcribed with AI speech-to-text, in 90+ languages
- Works with video links, short links (
vm.tiktok.com,vt.tiktok.com) and profiles (their latest videos) - Optional SRT subtitles for each video, ready for video editors and players
- Videos with only music and videos that cannot be transcribed still get a row explaining why, free of charge
Best For
- Content research and repurposing TikTok videos into blogs, posts and newsletters
- Feeding transcripts into AI tools, LLMs and RAG pipelines
- Studying hooks, scripts and talking points of creators and competitors
- Brand and product mention monitoring in what creators actually say
- Accessibility and subtitles
Input
| Field | What it does |
|---|---|
videoUrls | Video links, one per row, e.g. https://www.tiktok.com/@gordonramsayofficial/video/7138842940956216582 |
profiles | Usernames or profile links; their latest videos are transcribed |
maxVideosPerProfile | How many of each profile's latest videos to transcribe (default 10) |
newerThan | Profiles only: skip older videos, e.g. 2026-09-01 or 7 days |
aiTranscription | Transcribe videos without TikTok captions with AI (default on) |
language | auto (default) or a language code such as en, es, ur: preferred caption language, and the spoken language for AI |
includeSrt | Also add each transcript as SRT subtitles (default off) |
Example input
{"videoUrls": ["https://www.tiktok.com/@gordonramsayofficial/video/7138842940956216582"],"profiles": ["storystaticc_"],"maxVideosPerProfile": 20,"includeSrt": true}
Output
One table with one row per video. transcriptSource says how the transcript was made: tiktok_captions (TikTok's own captions) or ai (AI speech-to-text). The table shows the most useful columns; every field, including the timestamped segments, is included when you export or use the API.
Fields
| Field | Description |
|---|---|
transcript, wordCount | The full transcript as one text, and its number of words |
segments | The transcript in timed parts: start and end in seconds, text |
transcriptSource, audioMinutes | tiktok_captions or ai; for ai, the started minutes of audio |
transcriptLanguage, isTranslation | Language of the transcript; true when it is TikTok's translation |
availableCaptionLanguages | Every caption language TikTok has for the video |
srt | SRT subtitles (when includeSrt is on) |
hasSpeech, note | false with a note when the video has no spoken words (not charged) |
id, url, caption, createdAt, durationSeconds | Video ID, link, caption text, post date and length |
viewCount, likeCount, commentCount, shareCount | Engagement counts |
author, musicTitle | The creator (ID, username, name, verified, followers) and the sound |
source | Your link, or the profile the video came from |
error, errorCode | Only on videos that could not be transcribed (not charged) |
scrapedAt | When the row was collected |
Example output
{"id": "7138842940956216582","url": "https://www.tiktok.com/@gordonramsayofficial/video/7138842940956216582","caption": "#Toast the weekend with this #garlic #tomato toast #recipe ! ...","createdAt": "2022-09-02T17:56:41Z","durationSeconds": 42,"viewCount": 15900000,"likeCount": 1600000,"author": { "username": "gordonramsayofficial", "name": "Gordon Ramsay", "verified": true },"musicTitle": "original sound","hasSpeech": true,"transcript": "so if you feel adventurous, follow this. that's not rocket science, is it? that's common sense...","wordCount": 27,"transcriptSource": "tiktok_captions","transcriptLanguage": "en","isTranslation": false,"segments": [{ "start": 0.04, "end": 2.66, "text": "so if you feel adventurous, follow this." },{ "start": 15.2, "end": 19.5, "text": "that's not rocket science, is it? that's common sense." }],"availableCaptionLanguages": ["en"],"scrapedAt": "2026-10-06T12:01:50Z"}
A video with only music:
{"id": "7623088450576633119","url": "https://www.tiktok.com/@khaby.lame/video/7623088450576633119","hasSpeech": false,"transcript": "","note": "No spoken words were found (music or sounds only)."}
How To Use
- Add video links, profiles, or both.
- Leave AI transcription on to also get videos without TikTok captions.
- Run the Actor and open the Output tab, export the results, or read them through the Apify API.
Pricing
This Actor uses pay-per-event pricing, so you only pay for transcripts you receive:
- Transcript: each video transcript saved to your dataset
- AI transcription minute: an add-on for transcripts made with AI speech-to-text (videos without TikTok captions), per started minute of audio. Most TikTok videos are under 2 minutes
- Actor start: a small fee each time a run starts
Rows for videos without speech, and for videos that could not be transcribed, are free. Current prices for each Apify plan are shown on the Actor's Pricing tab. To pay only for caption transcripts, turn AI transcription off.
If a run reaches the maximum cost you set for it, it stops cleanly and keeps everything collected so far.
Free plan
On the Apify free plan every feature is available to try, with smaller amounts per run: up to 10 links or profiles, 5 videos per profile and 10 minutes of AI transcription per run (caption transcripts are not limited by minutes). Upgrade to a paid Apify plan to remove these limits.
Best Practices
- For the best accuracy on videos that mix languages, prefer videos with TikTok captions, or set
languageto the main spoken language. - To collect a creator's new videos regularly, schedule a run with their profile and
newerThanset to7 days.
FAQ
How accurate are the transcripts?
TikTok captions and AI transcripts are both very accurate on clear speech. The AI handles accents and 90+ languages; heavy background music or several people talking at once lower the accuracy.
What about videos with a song?
When the video's sound is a song, the transcript may contain the song's lyrics as well as any speech. Videos with only instrumental music get hasSpeech: false and are not charged.
Can I get the transcript in another language?
When TikTok has captions in your language (including TikTok's own translations), you get them. Otherwise you get the transcript in the spoken language.
Can I transcribe all videos of a hashtag or search?
Collect the video links with the TikTok Scraper or TikTok Hashtag Scraper, then add them here.
Responsible Use
This Actor collects publicly available data only. Make sure your use complies with TikTok's terms, applicable laws and data-protection rules such as the GDPR, especially when you process personal data.
Troubleshooting
- A row has
errorfilled in: the video was removed, made private or restricted, or no transcript could be made right now. Open it in a browser to check, or try it again in a new run. These rows are not charged. - A row has
hasSpeech: false: the video has no spoken words (music, sounds or a photo slideshow). Not charged. - A link was skipped: it opens a hashtag or sound instead of a video or profile.
If something still does not work, open an issue on the Actor's Issues tab with your run link and we will take a look.