TikTok Transcript Scraper: Captions and Subtitles to Text
Pricing
from $2.91 / 1,000 transcripts
TikTok Transcript Scraper: Captions and Subtitles to Text
Extract transcripts from TikTok videos. Paste video links, short links or profiles and get the spoken text with timestamps, the language, and whether it is the original or a translation. Videos without captions are free. No login, no API key. Pay per transcript, $3 per 1,000.
Pricing
from $2.91 / 1,000 transcripts
Rating
0.0
(0)
Developer
Oski
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
14 days ago
Last modified
Categories
Share
TikTok Transcript Scraper
Transcripts from TikTok videos: the full spoken text, timestamped segments and an SRT file in your preferred language, plus the video's caption, creator, posting date, duration and view, like, comment and share counts. Paste video links or short links, or name profiles to get their latest videos. Pay only for transcripts found: videos without speech, private or removed videos cost nothing. No login, no browser, no API key.
Other TikTok transcript actors charge for every video whether or not it had captions, or stop working when TikTok changes its page. This one reads TikTok's own caption tracks, bills only rows with text, and ends every run with a plain status line that says what came back and why.
What you get
One row per video:
| Field | Example |
|---|---|
video_id, url | 7691463425599261955, the video link |
author, author_name, author_url | bbcnews, BBC News, profile link |
description, hashtags | the video caption and its tags |
created_at, duration_seconds | 2026-09-30T23:05:00Z, 64 |
view_count, like_count, comment_count, share_count | 33200, 1414, 30, 29 |
status, message | ok, or why there is no transcript |
language, caption_type, available_languages | eng-US, auto (or manual, or translated for a machine translation), ["eng-US (auto)"] |
message | why a row is free, or that a track is a machine translation of another language |
text, word_count, segment_count | the transcript as one paragraph |
segments | [{start, duration, text}, ...] (on by default) |
srt | subtitle file (optional) |
charged | true only for rows with text |
Use cases
- Content research: read what the top creators in a niche say, without watching 200 videos.
- Repurposing: turn a creator's latest videos into blog posts, newsletters or captions.
- Brand and PR monitoring: search transcripts for a product or company name.
- Ad intelligence: what hooks and claims competitors use in their videos.
- Accessibility and archiving: SRT files for every video in a campaign.
- Datasets: spoken text plus engagement counts for analysis.
How to use it
- Paste video links (or short links) one per line, or name profiles such as @bbcnews.
- Pick your preferred languages (default English).
- Start the run. Download as JSON, CSV or Excel, or read the dataset through the API.
What TikTok lets us read
| Input | What you get |
|---|---|
| Video link or short link | that video, with captions when TikTok generated them |
| Profile | the latest 10 to 13 videos TikTok shows without a login |
Caption coverage depends on the content: talking-head creators, news and education are high; music, sport and visual gags often have no speech track and come back as no_transcript for free. In a 122-video test, 69% had an English track; for talking creators it was 85 to 100%.
Cost
| Transcripts | Cost |
|---|---|
| 100 | about $0.30 |
| 1,000 | about $3.00 |
| 10,000 | about $30 |
A small fee per run plus a fee per transcript (the table assumes $0.003). Videos with no captions, private or removed videos, and videos TikTok refused are never charged.
Scheduling and API
curl -X POST "https://api.apify.com/v2/acts/oski~tiktok-transcript-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"profiles": ["@hubermanlab", "@garyvee"], "languages": ["en"], "includeSrt": true}'
Schedule it in the Apify console to keep a running transcript archive of the accounts you follow.
If something looks wrong
| Status line says | What it means | What to do |
|---|---|---|
| Input problem: Add at least one TikTok video link | Nothing usable in the inputs | Paste a video link or a profile such as @bbcnews |
| Skipped '...': not a TikTok video link, short link or profile | A line was not TikTok | Remove it, or put a bare creator name under Profiles |
| N videos had no captions; they were not charged | TikTok generated no speech track for them | Nothing to do; music and visual videos have none |
| TikTok shows only the latest 13 videos of @x without a login | Profile listing is limited by TikTok | Paste links for older videos |
| N videos were refused by TikTok | Both proxy tiers were refused | Run again later |
| No en captions; this is the video's deu-DE track | The video speaks another language | Add that language to Preferred languages, or keep it |
Frequently asked questions
Does it use speech recognition? No. It reads the caption tracks TikTok already generated (TikTok's own ASR, or the creator's manual captions). That is why videos without a track come back empty and free.
Can I get all videos of a profile? Not without a login: TikTok lists the latest 10 to 13. Paste video links for the rest.
Which languages? Whatever tracks TikTok has for the video: usually its own automatic captions, sometimes machine translations. Codes such as en, es, pt, de, ja and zh are matched to TikTok's eng-US, spa-ES, por-PT, deu-DE, jpn-JP and cmn-Hans-CN. A translated track always says so in caption_type and message. available_languages lists what exists per row.
Does it download videos? Never. It reads the page and the caption file only.
Related actors by the same developer
- YouTube Transcript Scraper
- Google Jobs Scraper
- Eventbrite Scraper (plus Meetup and Luma)