TikTok Transcript API

Pull captions from any TikTok video

POST a TikTok URL — full share link or vm.tiktok.com short link — and get a JSON transcript with millisecond-precision timestamps. Purpose-built for viral hook analysis, trend research, and repurposing at scale.

JSON response · Millisecond timestamps · Short links auto-resolved · No scraping

Three steps to a transcript

1
Create an API key Generate a key in your dashboard. Free credits included.
2
POST a TikTok URL Full URL or vm.tiktok.com short link — both work.
3
Receive JSON Transcript plus timed segments for every line.

POST /api/tiktok/transcript

Base URL: https://api.transcriptmagic.com. Authenticate with a Bearer token in the Authorization header.

cURL
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/@charlidamelio/video/7123456789012345678"}'
Python
import requests

response = requests.post(
    "https://api.transcriptmagic.com/api/tiktok/transcript",
    headers={"Authorization": "Bearer YOUR_API_KEY"},
    json={"url": "https://www.tiktok.com/@charlidamelio/video/7123456789012345678"},
)

data = response.json()
print(data["transcript"])
JavaScript
const response = await fetch("https://api.transcriptmagic.com/api/tiktok/transcript", {
  method: "POST",
  headers: {
    "Authorization": "Bearer YOUR_API_KEY",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({ url: "https://www.tiktok.com/@charlidamelio/video/7123456789012345678" }),
});

const data = await response.json();
// The opening 3 seconds — the viral hook:
console.log(data.segments.slice(0, 2));

What you get back

A compact JSON object sized for short-form content — typically 5–30 segments for a standard TikTok.

200 OK
{
  "transcript": "Wait, you've been doing this wrong your whole life. Here's what nobody tells you about morning routines...",
  "segments": [
    {
      "text": "Wait, you've been doing this wrong your whole life.",
      "startMs": "0",
      "endMs": "2800",
      "startTimeText": "0:00"
    },
    {
      "text": "Here's what nobody tells you about morning routines.",
      "startMs": "2800",
      "endMs": "5640",
      "startTimeText": "0:02"
    }
  ],
  "credits": 2998
}
transcript Full spoken content joined as a single string
segments Line-level array with startMs, endMs, startTimeText
credits Your remaining credit balance after this call

What the API handles

Standard videos

Any public TikTok at tiktok.com/@user/video/…. Works across the full length range from 3 seconds to 10 minutes.

Short share links

vm.tiktok.com/… redirects are auto-resolved server-side — paste the link you copied from the share sheet and go.

Voiceovers & dialogue

Any spoken audio is transcribed: creator voiceovers, dialogue, interviews, on-camera talking, and green-screen reactions.

Burned-in captions

When TikTok exposes creator-added captions, those come back too — useful for videos where the creator leaned on text-on-screen instead of voiceover.

One credit per call

Every successful API request uses 1 credit. Monthly credits roll over, cancel anytime.

Free
$0 /month
10 credits/month
  • SRT exports
  • All platforms supported

No credit card required

Pro
$19 /month
3000 credits/month
Choose your credits:
  • All Plus features
  • Batch processing

Credits rollover. Cancel anytime

Running 10K+ videos a month? Email [email protected] for volume pricing.

What developers build with it

Viral hook research

Pull the first 3 seconds of top-performing videos across a niche. Build a library of winning hooks your team can study.

Trend monitoring

Ingest daily batches of trending videos, extract language, and alert when new phrases spike.

Competitor tracking

Watch what competitors are saying across their TikTok catalog and surface patterns in their messaging.

Cross-platform repurposing

Turn a TikTok into a YouTube Short script, an Instagram Reel caption, and a tweet thread — all from one API call.

Influencer analysis

Transcribe a creator's back catalog, run it through an LLM, and surface topic mix, brand mentions, and tonal shifts.

Ad-copy pipelines

Feed winning TikTok scripts into an LLM prompt to draft ad variants that match proven tone and structure.

Questions developers ask

Do short links like vm.tiktok.com work?

Yes. Any TikTok URL that resolves to a public video works — full @user/video/ID URLs, vm.tiktok.com short links, and desktop share links. The API follows the redirect for you.

Can the API transcribe TikTok Stories or private accounts?

No. The API can only fetch public videos. Stories, private accounts, and friends-only content are not supported because the upstream data simply isn't reachable.

Does it work on TikTok slideshows (photo posts)?

Slideshow posts return any caption text TikTok has indexed, but there's no spoken audio track to transcribe. For video posts with voiceovers, dialogue, or spoken captions, the API returns the full timed transcript.

Are non-English videos supported?

Yes. The API returns the caption track TikTok exposes — which covers every major language creators post in. If you need translation, run the transcript through an LLM after fetching.

Are the timestamps accurate enough for hook analysis?

Yes. Segments include millisecond-precision startMs and endMs. That's what makes this API useful for scripting viral-hook research, hook-length A/B tests, and jump-to-moment dashboards.

What about region-locked videos?

If the video is viewable somewhere, our upstream infrastructure can usually fetch the captions regardless of your client's geography. Truly blocked-everywhere videos return a 400.

Other platforms & references

Dashboard Pricing Get Extension