Skip to main content
POST https://api.transcriptmagic.com/api/tiktok/transcript
Full share URLs (/@user/video/<id>) and vm.tiktok.com short links both resolve cleanly.

Request

curl -X POST https://api.transcriptmagic.com/api/tiktok/transcript \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://www.tiktok.com/@user/video/7212345678901234567"}'

Response

{
  "transcript": "Okay so today I'm going to show you\nthe easiest pasta recipe\nyou'll ever make...",
  "videoUrls": {
    "sd": "https://...mp4",
    "hd": null,
    "thumbnail": "https://...jpg"
  },
  "credits": 996
}
transcript is a plain string with newlines between spoken lines — there is no per-line timing in the TikTok response, and no title field. videoUrls is included whenever the upstream exposes a downloadable video URL; it is omitted when none is available.

Supported URL formats

FormatExample
Full share URLhttps://www.tiktok.com/@user/video/<19-digit id>
vm.tiktok.com short linkhttps://vm.tiktok.com/<code>

FAQ

No. The API can only fetch transcripts for publicly viewable videos. Private accounts and videos behind a follow-gate aren’t supported.
If the upstream returns a video URL but no captions, you’ll get a 200 with transcript: "" and a videoUrls object — and you’ll be charged 1 credit. If the upstream returns no captions and no video URL, you’ll get a 404 with error: "No transcript available for this video" and you won’t be charged.
Live streams aren’t supported. Once a Live is saved as a regular video and is publicly viewable, it works like any other URL.
Yes. We resolve them server-side — you don’t need to expand the link before calling the API.
No — the TikTok response shape is intentionally lean: transcript, optional videoUrls, and credits. If you need the author handle, parse it from the URL you submitted.