Best TikTok transcript APIs: captions vs speech-to-text
The caption under a TikTok video is often five words and three hashtags. The real content is spoken. To search, summarize or feed TikTok videos to a model, you need the transcript. There are two ways to get one, and the right choice depends on volume and accuracy.
Route 1: read the caption track
Many TikTok videos carry a subtitle track, either auto-generated by TikTok or added by the creator. Reading that track is fast and cheap because no audio processing happens on your side. TikTok's own Research API exposes this as a voice_to_text field, described as the text already generated for videos with voice-to-text on source. Only eligible researchers can use that API source.
Strength: seconds per video, no GPU. Weakness: videos without a caption track have nothing to read, and auto captions can be wrong on names and slang.
Route 2: transcribe the audio yourself
Download the video and run speech recognition. OpenAI's Whisper is the common open-source choice. The code and weights are MIT licensed, and it comes in several sizes source:
| Model | Parameters | VRAM (approx.) |
|---|---|---|
| tiny | 39 M | ~1 GB |
| base | 74 M | ~1 GB |
| small | 244 M | ~2 GB |
| medium | 769 M | ~5 GB |
| turbo | 809 M | ~6 GB |
| large | 1550 M | ~10 GB |
The project notes that English-only models such as tiny.en do better on English, and that turbo is not trained for translation source.
pip install -U openai-whisper
whisper video.mp4 --model turbo --output_format txt
Strength: works on any video with speech, including ones with no captions. Weakness: you pay in compute and time, and you need the video file first.
Which route to pick
| Situation | Use |
|---|---|
| Thousands of videos, rough text is fine | Caption track |
| You need every video covered | Caption track first, speech-to-text for the misses |
| Exact quotes for legal or press use | Speech-to-text with a larger model, then human review |
| Non-English content you want in English | Whisper medium or large with translation |
A hybrid pipeline
Try the caption track. If it is missing, fall back to audio. This keeps cost low and coverage high.
import requests, subprocess
KEY = "YOUR_KEY"
H = {"x-api-key": KEY}
def transcript(url):
r = requests.get("https://scrapeio.com/v1/tiktok/video/transcript",
params={"url": url, "language": "en"}, headers=H, timeout=60).json()
if r.get("success") and r["data"].get("transcript"):
return r["data"]["transcript"], "captions"
v = requests.get("https://scrapeio.com/v2/tiktok/video",
params={"url": url}, headers=H, timeout=60).json()
video_url = v["data"]["video_url"]
open("clip.mp4", "wb").write(requests.get(video_url, timeout=120).content)
subprocess.run(["whisper", "clip.mp4", "--model", "small", "--output_format", "txt"], check=True)
return open("clip.txt").read(), "whisper"
What to do with transcripts
- Hook analysis: keep the first 15 words of each video and compare them across your top and bottom performers.
- Brand mentions: search transcripts for your brand and competitors. Captions often leave the name out.
- Summaries for agents: pass the transcript, the caption and the stats to a model in one prompt.
Check accuracy before you trust it
Whatever route you use, spot-check. Pick 10 videos, listen to the first 30 seconds of each, and compare with the transcript. Look for three kinds of errors: brand and product names, numbers and prices, and slang. If brand names come out wrong, add a post-processing step that replaces known misspellings with the right name. If numbers are wrong, do not use the transcript for price research without review.
Cost in plain terms
Caption tracks cost one request per video and no compute. Speech-to-text costs a video download plus processing time. On a laptop CPU, the small Whisper models are practical for a few videos; for thousands, you need a GPU or a hosted speech service. For most research, captions first and speech-to-text for the gaps is the cheapest way to full coverage.
How to do it with ScrapeIO
tiktok transcript API returns the transcript text and its language for 1 credit, and you can pass a preferred language. If a video has no caption track, the call fails and is not charged, so the fallback above costs you nothing extra. tiktok video API gives you the stats and the download URL. The same pattern works for YouTube and Instagram; see the cross-platform transcripts guide.
Sources
Checked on 8 November 2026 from each vendor's own pages. Prices and limits change; follow the links before you decide.
- https://developers.tiktok.com/products/research-api/
- https://developers.tiktok.com/doc/research-api-specs-query-videos
- https://github.com/openai/whisper
100 free credits, no card. Credits never expire.
Get API key