TikTok transcript API
Resolve spoken text from a public TikTok video URL — WebVTT when a caption track exists, optional AI speech-to-text when it does not.
GET /v1/tiktok/videos/transcript1 credit +10 credits when AI transcribes the audio (useAiFallback) +10 credits per started minute of AI transcript, replacing the flat +10 (allowLongTranscription) Max 601 credits Failed requests are free
About this endpoint
For a one-off paste without an API key, use the free TikTok transcript generator — same caption-track lookup, with TXT / SRT / VTT downloads in the browser. For a full walkthrough with real responses, caption-coverage data from 74 videos, Python and Node.js code, and a pricing comparison, read the TikTok transcript API guide.
GET /v1/tiktok/videos/transcript takes a public video url (/@user/video/… or vm.tiktok.com short links). On success, branch on data.lookupStatus (found / not_found), then read data.video and data.transcript. When text is present, data.transcript is { format, content } — not a bare string. format is webvtt for a caption track (timed cues) and text for an AI transcript (plain text, no timings). lookupStatus: found means the video resolved; transcript can still be null if no captions were available and you did not enable AI fallback.
Set useAiFallback=true when you need speech-to-text for uncaptioned video. The 10-credit AI surcharge (11 total) applies only when AI actually produced the transcript; caption reads and empty results stay at 1 credit. AI covers videos up to 2 minutes; add allowLongTranscription=true for longer ones, billed at 10 credits per started minute. Optional language is a two-letter preference when multiple tracks exist. Photo carousels are not videos — those calls fail with transcript_target_not_video. Confirm billing with meta.creditsCharged.
TikTok transcript API FAQ
Is there a free TikTok transcript tool?
Yes. /tools/tiktok-transcript is a no-signup browser tool over the same caption-track lookup. For volume, uncaptioned video (useAiFallback), or product use, call GET /v1/tiktok/videos/transcript with an API key.
How do I get a TikTok video transcript via API?
Call GET /v1/tiktok/videos/transcript with your Social Fetch API key (x-api-key) and a public video url query param. Read data.lookupStatus, then data.transcript (format + content when present). See the API docs for parameters and examples.
How much does the TikTok transcript endpoint cost?
1 credit base. With useAiFallback=true, a video that has captions still costs 1 credit; the 10-credit AI surcharge (11 total) applies only when AI transcribed the audio. With allowLongTranscription=true, an AI transcript costs 10 credits per started minute instead. Confirm with meta.creditsCharged.
What does useAiFallback do on TikTok transcripts?
When true, Social Fetch reads the caption track if there is one (1 credit) and otherwise transcribes the audio with AI. The 10-credit surcharge (11 total) applies only when AI produced the transcript, so it is safe to leave on for a batch. AI fallback covers videos up to 2 minutes.
Can I transcribe TikTok videos longer than 2 minutes?
Yes. Add allowLongTranscription=true alongside useAiFallback=true. An AI transcript then costs 10 credits per started minute of video (a 3-minute video is 30, plus the base 1), short clips included, so only turn it on when you need long videos. Caption reads still cost 1 credit. Long videos can take a minute or more, so allow a generous client timeout.
What URL formats does the TikTok transcript API accept?
Public TikTok video URLs, including /@user/video/… links and vm.tiktok.com short links. Photo carousel URLs are not videos and return transcript_target_not_video.
What format is the TikTok transcript response?
When text is available, data.transcript is an object with format and content. format: "webvtt" means content is a caption track with timed cues; format: "text" means AI transcribed the audio and content is plain text with no timings. Always check data.lookupStatus and whether transcript is null before parsing.
Can I request a specific language for TikTok transcripts?
Yes. Pass optional two-letter language when you want a preferred track. Social Fetch uses that language when it is available; creators do not always upload captions in that language.
Does found always mean TikTok returned spoken text?
No. found means the video resolved. data.transcript can still be null when no caption track exists and AI fallback was off, or when AI found no speech. not_found means the lookup finished with nothing to return. A completed lookup charges the base credit; the AI surcharge only applies when AI returned text.
Other TikTok endpoints
- ProfileGET /v1/tiktok/profiles/{handle}
- Profile videosGET /v1/tiktok/profiles/{handle}/videos
- Profile followersGET /v1/tiktok/profiles/{handle}/followers
- Profile followingGET /v1/tiktok/profiles/{handle}/following
- Profile regionGET /v1/tiktok/profiles/{handle}/region
- Profile audienceGET /v1/tiktok/profiles/{handle}/audience
- Profile engagementGET /v1/tiktok/profiles/{handle}/engagement
- Live streamGET /v1/tiktok/profiles/{handle}/live