TikTok Transcript Scraper - Video to Text
Pricing
from $36.00 / 1,000 transcript, video up to 1 mins
TikTok Transcript Scraper - Video to Text
Turn any public TikTok video into accurate text. Word-level timestamps, speaker labels, SRT and VTT subtitles, 90+ languages. No TikTok login or API key needed.
Pricing
from $36.00 / 1,000 transcript, video up to 1 mins
Rating
5.0
(2)
Developer
deAPI
Maintained by CommunityActor stats
1
Bookmarked
1
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Turn public TikTok videos into accurate, timestamped text. Paste one URL or a thousand, and get back the full transcript, word-level timings, speaker labels, and ready-to-use SRT and VTT subtitle files. No TikTok login, no API key, no cookies, nothing to install.
This scraper does not read TikTok's auto-captions. It listens to the audio and transcribes it with a top-tier speech recognition model, so it works on videos that have no captions at all, on videos whose captions were switched off, and on the 90+ languages TikTok creators actually post in. That is the difference between a transcript you can publish and one you have to fix by hand.
Why this one
Most TikTok transcript tools take one of two shortcuts. They copy TikTok's own auto-captions — fast and cheap, but simply absent on a large share of videos, and thinnest exactly where you need them most: non-English audio, older uploads, and creators who turned captions off. Or they run a budget speech model that returns one undifferentiated block of text.
This Actor is built for the case where the transcript has to be right.
| Auto-caption scrapers | Budget transcribers | This Actor | |
|---|---|---|---|
| Works when the video has no captions | ❌ | ✅ | ✅ |
| Non-English audio | Patchy | Varies | ✅ 90+ languages |
| Word-level timings | ❌ | Rarely | ✅ included |
| Speaker labels | ❌ | Rarely | ✅ included |
| Subtitle files, properly split | ❌ | ❌ | ✅ SRT + VTT |
| Per-segment confidence scores | ❌ | ❌ | ✅ included |
| Sentence timestamps | ❌ | Sometimes | ✅ in the base price |
Subtitles, confidence scores and sentence-level timestamps are all in the base price. Word-level timing and speaker labels sit one step up, on the precision price — and picking both of them costs no more than picking one.
What you get for every video
- 📝 Full transcript — clean, punctuated text of everything spoken in the video.
- ⏱️ Timestamps at the level you choose — one per sentence, one for every single word, or none at all if you just want the text.
- 🗣️ Speaker labels — who said what, for duets, stitches, interviews and podcast clips.
- 🎬 SRT and VTT subtitles — properly split, two lines, readable. Drop them straight into a video editor, a player or your CMS.
- 🌍 90+ languages — auto-detected, or forced when the audio is noisy or mixed.
- 📊 TikTok video metadata (optional) — title, description, hashtags, author, upload date, thumbnails, plus view, like, comment, save and repost counts.
- ✅ Confidence scores — per segment, so you can flag the parts worth a human check.
How to transcribe a TikTok video
- Click Try for free and open the input form.
- Paste your TikTok video URLs into TikTok video URLs — one per line. Full links (
https://www.tiktok.com/@user/video/1234567890) and short share links (https://vm.tiktok.com/XXXXXXX) both work. - Pick a Timestamp level. Segment is right for reading and subtitles; Word is right for captions that highlight as they are spoken, for clip cutting, and for searching inside a video.
- Switch on Label speakers if the video has more than one voice.
- Click Start. Results appear row by row in the Overview tab and can be exported to JSON, CSV, Excel, XML or HTML.
Running it on a schedule, or from Python, Node.js, cURL, Make, Zapier or n8n, works exactly the same way — see the API tab for ready-made code.
Input example
{"videoUrls": ["https://www.tiktok.com/@claude/video/7660583650773323022","https://www.tiktok.com/@another/video/7223456789012345678"],"timestampLevel": "word","diarize": true,"language": "auto","includeSubtitles": true,"includeMetadata": false,"maxConcurrency": 5}
Output example
One row per video:
{"url": "https://www.tiktok.com/@claude/video/7660583650773323022","videoId": "7660583650773323022","status": "success","hasSpeech": true,"durationSeconds": 90,"language": "en","languageConfidence": 0.9771,"text": "Can AI be trusted? Who's going to hit the brakes if we need to? What we're aiming to achieve really does benefit the majority of people...","wordCount": 167,"timestampLevel": "word","segments": [{"start": 8.43,"end": 43.65,"text": "Can AI be trusted? Who's going to hit the brakes if we need to?...","avg_logprob": -0.0636,"words": [{ "word": "Can", "start": 8.73, "end": 8.89, "score": -0.1154, "speaker": "SPEAKER_02" },{ "word": "AI", "start": 8.99, "end": 9.21, "score": -4.4411, "speaker": "SPEAKER_02" }]}],"speakers": ["SPEAKER_00", "SPEAKER_01", "SPEAKER_02", "SPEAKER_03"],"srt": "1\n00:00:08,730 --> 00:00:12,930\n[SPEAKER_02] Can AI be trusted?\n...","vtt": "WEBVTT\n\n00:00:08.730 --> 00:00:12.930\n...","pricingTier": "up to 2 min","pricingOption": "precision","error": null}
A video that cannot be transcribed never stops the run — it comes back as a row with "status": "failed" and a plain-English error, and it is not charged.
avg_logprob on a segment and score on a word are log-probabilities from the speech model, not percentages: the closer to zero, the more confident the model is. Sort by them to find the handful of lines worth a human check.
What people use TikTok transcripts for
| Use case | Why the transcript matters |
|---|---|
| Repurposing content | Turn a viral TikTok into a blog post, newsletter, thread or YouTube description in one step. |
| Subtitles and accessibility | SRT and VTT files ready for TikTok, Reels, Shorts, or your own player — no manual sync. |
| Competitor and market research | Read what a whole niche is saying, not just what its captions claim, across hundreds of videos. |
| Ad and hook analysis | Pull the first five seconds of a thousand videos and find the hooks that actually convert. |
| Brand monitoring and compliance | Search spoken words for claims, disclosures, competitor mentions or unsafe language. |
| AI, RAG and dataset building | Word-timed, speaker-labelled text is exactly the shape LLM pipelines want. |
| Search and archives | Make a back catalogue of videos searchable down to the second. |
How much does it cost to transcribe TikTok videos?
The price depends on how long the video is — one charge per video, no compute units to estimate and no Apify platform usage on top.
| Video length | Standard | Precision |
|---|---|---|
| up to 1 minute | $0.04 | $0.06 |
| up to 2 minutes | $0.06 | $0.09 |
| up to 3 minutes | $0.08 | $0.12 |
| up to 5 minutes | $0.10 | $0.15 |
| over 5, up to 10 minutes | $0.16 | $0.24 |
| over 10 minutes | $0.20 | $0.30 |
Standard covers plain text and sentence-level timestamps, and it is what you get by default — including the SRT and VTT subtitle files and the confidence scores.
Precision is 1.5× the standard price and applies when you ask for word-level timestamps, or for speaker labels. It never stacks: word timings and speaker labels together cost exactly the same as either one on its own.
Two more things:
- TikTok video metadata is an optional add-on at $0.005 per video, charged only when you switch it on.
- Business Apify accounts get 10% off every price above.
The band is taken from the whole length of the video, rounded up: a 1:05 clip is billed as up to 2 minutes. Most TikToks run under a minute, so a typical batch costs $0.04 per video — $40 per 1,000 videos — and $0.30 is the ceiling for transcribing a single video, however long it is (plus $0.005 if you switch metadata on). The Store card shows "from $36.00 / 1,000" because it quotes the discounted Business-plan price of the entry band; on every other plan that band is $40.00 / 1,000.
Trying it on the Apify free plan? A free-plan run attempts the first 5 videos of your list, up to 20 attempts per calendar month — enough to judge the transcript quality on your own content before you commit. Every URL a free run attempts counts against the allowance, including links that turn out to be private or deleted, and the allowance resets at 00:00 UTC on the 1st. URLs left out arrive as rows with "status": "skipped" so nothing disappears silently. Any Apify paid plan removes both limits; nothing else about the output changes.
Two things this pricing deliberately avoids:
- No per-second meter. You can budget a batch from the URLs and their lengths, instead of waiting to see the bill.
- No charge for failures. Private, deleted and region-locked videos come back as failed rows and cost nothing. (On the free plan they still count against the 20 monthly attempts — they cost you nothing, but they do use up a try.)
How long does a run take?
A short video is typically transcribed in 15–30 seconds. Videos are processed in parallel — five at a time by default, which puts a 1,000-video batch at roughly an hour and a half. Raise Videos in parallel to 10 and the same batch finishes in about 40 minutes.
FAQ
How do I get the transcript of a TikTok video?
Paste the video URL into this Actor and start the run. The transcript is usually ready in well under a minute for a short video, and you can transcribe thousands of videos in one run.
Does it work if the TikTok video has no captions?
Yes. This is the main reason to use it. The Actor transcribes the audio, so it does not care whether the creator enabled captions, whether TikTok generated any, or what language they were in.
Can I transcribe TikTok videos in bulk?
Yes — put as many URLs in the list as you like and raise Videos in parallel up to 10. Exactly identical URLs are removed automatically. Links are compared as plain text, so the same video counts twice if it appears with different tracking parameters, a trailing slash, or once as a full link and once as a vm.tiktok.com short link — each is transcribed and charged. Strip query strings before pasting for a clean count.
Runs use Apify's default 2-hour timeout, which comfortably covers about 1,000 videos at 5 in parallel. For a larger backlog, raise the run timeout in Run options or split the list — a run that times out cannot be resumed.
On the Apify free plan a run attempts the first 5 videos and 20 per calendar month; any paid plan runs the whole batch.
Can I get SRT or VTT subtitles from a TikTok video?
Yes. Every successful row carries an srt and a vtt field, already split into short, two-line, readable cues instead of one wall of text. Choose the Word timestamp level for the tightest sync. Subtitles need timing to exist, so they are returned at every timestamp level except None.
Where are the TikTok views, likes and hashtags?
Switch on Add TikTok video metadata — it is off by default, because it is a paid add-on at $0.005 per video. With it on, every row carries a metadata object with the author, caption, hashtags, upload date, thumbnails and the view, like, comment, save and repost counts. In the run's Storage tab, pick the Video metadata view to see it as a table.
Does it identify different speakers?
Switch on Label speakers and every segment is tagged SPEAKER_00, SPEAKER_01 and so on. You will find the labels on each entry in segments, on each word when word-level timing is on, in the speakers list, and as a [SPEAKER_00] prefix on every subtitle cue. The plain text field stays unlabelled — it is the clean transcript. Labels need timing to attach to, so turning them on alongside the None timestamp level still returns sentence-level timing. It puts the video on the precision price — and if you already chose word-level timestamps, it adds nothing on top of that.
Which languages are supported?
Over 90, auto-detected by default, including English, Spanish, Portuguese, French, German, Italian, Polish, Ukrainian, Russian, Turkish, Arabic, Hindi, Indonesian, Vietnamese, Thai, Japanese, Korean and Chinese. If a video mixes languages or the audio is noisy, naming the language in the input makes the result noticeably more accurate.
What happens with videos that have no speech?
Music-only and ambient clips come back with a short or empty transcript and a low languageConfidence. hasSpeech is false only when the model returned no words at all, so a clip with a single sung line still reports true — filter on wordCount and languageConfidence if you need to drop music. The audio was still processed, so the video is charged as normal.
Why did some videos fail?
Private, deleted, region-locked and age-restricted videos cannot be opened by anyone who is not logged in, so they cannot be transcribed. They are reported with "status": "failed" and are not charged.
Do I need a TikTok account, cookies or an API key?
No. Nothing to sign up for, nothing to configure, nothing to keep alive.
Is it legal to transcribe TikTok videos?
This Actor only reads public videos — the same ones anyone can watch without logging in — and it does not touch private data. Transcripts are usually treated as fair use for research, analysis and accessibility, but what you publish is your responsibility. If you are unsure how your use case is regulated, ask a lawyer, and read Apify's ethical web scraping guide.
Can I run this on a schedule or from my own code?
Yes. Use Apify Schedules to run it daily, or call it from Python, Node.js, cURL or any HTTP client — the API tab has copy-paste examples. Results can be pushed into Google Sheets, Slack, Airtable, Zapier, Make, n8n or a webhook.
Support
Something not working, or a field you wish this returned? Open an issue on the Actor's Issues tab — every report is read.