> **For coding agents and LLMs:** This is one Social Fetch marketing page (markdown export). For API orientation start with [`/llms.txt`](https://www.socialfetch.dev/llms.txt); for auth and crawl rules use [`/agents.txt`](https://www.socialfetch.dev/agents.txt); for every operation use [`/llms-endpoints.txt`](https://www.socialfetch.dev/llms-endpoints.txt).

## This page

- **On-site (HTML):** <https://www.socialfetch.dev/platforms/tiktok/videos-transcript>
- **Markdown (.mdx) URL:** <https://www.socialfetch.dev/platforms/tiktok/videos-transcript.mdx>

---

# 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.

For a one-off paste without an API key, use the [free TikTok transcript generator](https://www.socialfetch.dev/tools/tiktok-transcript) — 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](https://www.socialfetch.dev/blog/tiktok-transcript-api).

`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`.

## Request

- **Endpoint:** `GET /v1/tiktok/videos/transcript`
- **Credits:** 1 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
- **Input:** by video URL
- **Full reference:** [docs](https://www.socialfetch.dev/docs/api/v1/tiktok/videos/transcript/get)
- **Platform page:** [/platforms/tiktok](https://www.socialfetch.dev/platforms/tiktok)

## 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.
