Skip to article

TikTok Transcript API: Get Video Transcripts (2026 Guide)

Get TikTok transcripts with one API call: real WebVTT output, how many videos have captions, AI fallback costs, Python and Node code, and pricing compared.

Luke Askew19 min read

A TikTok transcript API takes a public video URL and returns what was said in it, as text. With Social Fetch that's one request, GET /v1/tiktok/videos/transcript, which returns the video's caption track as timestamped WebVTT for 1 credit. The catch most guides skip: plenty of TikToks have no caption track at all. This guide covers both cases, with real responses, numbers from a sample we ran, working Python and Node.js code, and what every option costs.

What a TikTok transcript API returns

A TikTok transcript is the spoken audio of a video turned into text. On TikTok it usually comes from one of two places:

  • Caption tracks. Mostly TikTok's auto-generated captions, made by its own speech recognition, sometimes edited by the creator. TikTok launched auto captions in April 2021. Not every video gets a track.

  • AI speech-to-text. When there is no caption track, the API can download the audio and transcribe it itself. Social Fetch does this only when you pass useAiFallback=true.

A transcript is not the video's description, hashtags or on-screen text overlays. If a creator typed words onto the screen but never spoke them, a transcript API returns nothing for that.

Here is the full exchange for a real NASA video:

Request
bash
Request
json

The response has three parts:

FieldWhat it tells you
data.lookupStatusfound if the video resolved, not_found if it's missing, private or deleted. Both return HTTP 200, so check this field, not the status code.
data.transcript{ format, content } when text exists. format is webvtt for a caption track (timed cues) and text for an AI transcript (plain text). null when the video resolved but there was nothing to return.
meta.creditsChargedWhat the call cost: 1 for a caption read or an empty result, 11 when AI transcribed the audio.

The parameters are short. url is required and accepts full /@user/video/… links and vm.tiktok.com short links. language is an optional two-letter code for when a video has captions in more than one language. useAiFallback turns on speech-to-text for uncaptioned videos, and allowLongTranscription extends it past two minutes. Photo carousels aren't videos, so they fail with transcript_target_not_video. The full schema is in the endpoint reference.

Does TikTok have an official transcript API?

Not one you can use commercially. TikTok runs several developer APIs, and only one of them exposes transcripts:

TikTok APITranscripts?Who can use it
Research APIYes: the video object has a voice_to_text field, described as voice-to-text and subtitles for videos that have the feature onNon-profit academic and independent researchers who apply and are approved
Display APINo transcript field is documentedApps showing a logged-in user's own videos
Content Posting API, API for BusinessNoPublishing content and running ads

If you're building a product, the Research API is off the table, and the Display API only covers videos belonging to users who log in to your app. Everyone else (agencies, SaaS tools, AI pipelines, market researchers) uses a third-party API that reads public videos. For more on what TikTok does and doesn't offer, see does TikTok have an API?

How many TikToks actually have a transcript?

Nobody publishes this number, so we measured it. On 15 October 2026 we requested transcripts for the most recent videos from nine public accounts, 74 videos in total, without AI fallback. 46 of the 74 (62%) came back with a caption track. The other 28 returned found with transcript: null.

AccountTypeVideosWith captionsShare
@gordonramsayofficialFood, TV clips88100%
@hankgreen1Talking-head education10990%
@bbcnewsNews9889%
@zachkingVisual skits8675%
@luisitocomunicaSpanish-language creator7571%
@duolingoBrand skits9444%
@nasaScience9444%
@flagrantpodcastPodcast clips (2023 posts)8225%
@diaryofaceoPodcast clips (2022 posts)600%
Total744662%
Horizontal bar chart of the share of recent TikTok videos with a caption track: all 74 videos 62%, talking to camera 88%, visual skits 59%, science clips 44%, old podcast clips 14%

Three patterns stood out:

  • Talking means captions. The four recently active accounts where people talk on camera (Gordon Ramsay, Hank Green, BBC News, Luisito Comunica) had captions on 30 of 34 videos, or 88%.

  • Short and visual clips often have none. NASA's 6 to 28-second launch and image clips came back empty, while its two-minute narrated "NASA minute" roundups were fully captioned. Duolingo's brand skits were a coin flip.

  • Length doesn't guarantee anything. An 85-second Duolingo video and an 80-second BBC News video both had no track.

The two podcast-clip accounts had stopped posting in 2022 and 2023, so their videos are older than everyone else's. Two accounts aren't enough to say whether age is the reason, so treat those rows as a curiosity, not a finding. This is a small, hand-picked sample, not a census of TikTok. The practical takeaway still holds: for speech-led content, expect most videos to have captions. For a mixed feed, plan for a third or more to come back empty, and decide up front whether you'll pay to transcribe those.

One cost detail matters here. A completed lookup costs 1 credit whether or not a transcript comes back, so the 28 empty results in our sample still cost 28 credits.

Videos with no captions: AI speech-to-text fallback

When a video has no caption track, you have two choices: skip it, or have its audio transcribed. Pass useAiFallback=true and Social Fetch reads the caption track when there is one, and transcribes the audio with AI when there isn't:

Request
bash

Here's what happens to a single request with the flag on:

Decision graphic: a TikTok video URL with a caption track returns WebVTT captions for 1 credit. Without one, if AI fallback is off the result is transcript null for 1 credit; if it is on and the audio has speech you get a plain-text AI transcript for 11 credits, otherwise transcript null for 1 credit.

Know these things before you turn it on:

  1. You pay the AI price only when AI runs. The 10-credit AI surcharge (11 credits in total) applies only when AI actually produced the transcript. A video that already has captions costs 1 credit, and so does a video where AI found nothing to transcribe. That makes it safe to leave on for a whole batch. It's also a flat price for any clip up to two minutes, so you know what a batch will cost before you run it.

  2. It needs speech. Clips that are only music, ambient sound or on-screen text give the AI nothing to work with. You get transcript: null for the base credit.

  3. AI transcripts are plain text. They come back with format: "text" and no timestamps, so branch on data.transcript.format before you parse cues.

  4. Two minutes is the default limit. For longer uncaptioned videos, add allowLongTranscription=true. AI transcripts then cost 10 credits per started minute of video, short clips included, so a 3-minute video is 31 credits with the base. Turn it on only when you need long videos.

  5. It's slower. Transcribing audio takes longer than reading a caption file, and long videos can take a minute or more. Give your HTTP client a generous timeout, as in the examples below.

Get TikTok transcripts in Python

This script fetches a transcript, retries the failures that aren't billed, and turns the result into plain text, plus timestamped segments when it's a caption track. The only dependency is requests.

Request
tiktok_transcripts.py

Run against the NASA video above, which has a caption track, it prints:

Request
text

vtt_to_text gives you a flat transcript for prompts, search indexes and summaries. It's also safe on AI transcripts, which are already plain text. vtt_to_segments keeps the timings, which you need for clipping, quoting a moment or jumping to a timestamp, so it only applies to caption tracks. If you need SRT, the segments map straight onto it: number each cue and swap the . in each timestamp for a ,.

Get TikTok transcripts in Node.js

The same logic in JavaScript (Node 18 or later, no dependencies), with a batch helper that runs ten requests at a time. Because the AI surcharge applies only when AI runs, one pass with useAiFallback on is all you need.

Request
transcripts.mjs

If you write TypeScript, the Social Fetch SDK wraps the same call as client.tiktok.getVideoTranscript({ url }). It returns a typed result, so you never have to guess the response shape.

Transcribe every video from a TikTok account

Most real jobs aren't one video. They're "every video this creator posted this quarter" or "the last 50 videos from these 20 competitors". You can do that in two steps:

  1. List the account's videos with GET /v1/tiktok/profiles/{handle}/videos (1 credit per page). Each video has a url and a durationMs. Follow page.nextCursor while page.hasMore is true.

  2. Pass each url to the transcript endpoint, with useAiFallback=true if you need words from the uncaptioned videos too.

Request
python

The durationMs filter drops photo posts, which can't have a transcript. You can also use it to decide when to pay for long transcription: retry only the videos over two minutes that came back empty, with allow_long=True, rather than turning it on for the whole account.

Some production habits pay off at volume:

  • Cache by video ID. Videos don't change after posting, so a transcript you've already fetched never needs fetching again.

  • Retry only 502 and 503. lookup_failed and temporary-unavailable errors aren't billed, so retrying them with backoff costs nothing. not_found and empty (transcript: null) results are billed and will give you the same answer twice, so cache those too.

  • Track meta.creditsCharged. Add it up per job so cost surprises show up in your logs and not on your invoice.

How accurate are TikTok transcripts?

Caption tracks are machine-generated speech recognition, and they read like it. In the NASA transcript above, "your NASA minute" came out as "you're NASA minute" and "aboard station" as "a board station". Punctuation is usually decent, but this is not a verbatim record.

Speech recognition also gets strange when there's little speech to work with. A 44-second NASA clip of Artemis II footage produced five cues: "Would you look at that, man?", "Wow", "dude", "no way!", and then, at 0:38, a line in Arabic script in an otherwise English video. Sparse, short cues like these are a sign the recognizer was guessing. Music is worse: a 15-second Duolingo clip came back as one Korean syllable repeated for ten seconds, and a 7-second one returned a line of Russian.

Proper nouns are where you'll see most errors in real speech. Across our sample: "Megan" for Meghan, "prescribed" for proscribed, one politician's name spelled two different ways in the same BBC clip, and the travel eSIM brand Holafly as "olaplay" in a Spanish video. The text follows the audio language, including videos that switch languages mid-sentence. Speakers aren't labelled, and some tracks bleep swear words while others don't.

Handle transcripts accordingly:

  • Good for: search, topic and keyword analysis, summaries, hook research, sentiment, and feeding an LLM.

  • Be careful with: quoting people word for word, legal or compliance evidence, and anything where one misheard word changes the meaning. Check against the video before you publish a quote.

  • Cheap fix: run the plain text through an LLM with a "fix obvious speech-recognition errors, don't change meaning" prompt before showing it to users.

TikTok transcript API pricing compared

The price per call is only part of what a transcript costs you. The rest depends on whether failed lookups are billed, whether you're locked into a monthly plan, whether unused credits expire, and how much extra code you write once you need more than TikTok. Here's how the main options compare, using each provider's public pricing and docs on 15 October 2026.

Social FetchSupadataApify actorsDIY: yt-dlp + Whisper
Caption transcript1 credit, from $1.35 per 1,0001 credit, from about $0.90 per 1,000 on larger plansAbout $0.55 to $1.00 per 1,000 resultsFree, plus servers
AI transcript, no captions11 credits flat per clip, charged only when AI runs2 credits per minute of videoVaries by actorFree, plus GPU time
BillingPrepaid credits, no subscription; pay-as-you-go credits never expireMonthly plansPer result, on an Apify accountYour servers and your time
Failed lookupsFreeNot publishedVaries by actorYou handle retries
Beyond TikTok25+ platforms, one key, one response formatFive video platformsA separate actor per platform, each from a different authorBuild each one yourself
Who keeps it workingSocial FetchSupadataEach actor's authorYou

TikTok's own Research API is free, but only for approved non-profit researchers, so it isn't an option for most products.

Social Fetch pricing starts at $1.35 per 1,000 credits on the annual Scale plan. Pay-as-you-go packs start at $14 for 1,000 credits with no subscription, and those credits never expire. See pricing for every plan.

Where Social Fetch pulls ahead is everything around the call:

  • One key for the whole pipeline. Transcripts sit next to TikTok profiles, videos, comments and search, plus YouTube and Instagram transcripts, all in the same response envelope. You write one client, not five.

  • You only pay for answers. Failed lookups are free, and the AI surcharge applies only when AI actually produced the transcript.

  • No subscription to babysit. Buy credits when you need them and spend them next month or next year.

  • Built for AI agents. The MCP server puts the transcript endpoint straight into Claude, ChatGPT or Cursor.

For a wider comparison of TikTok data providers, see the best TikTok scrapers and data APIs in 2026.

Free ways to get a TikTok transcript

If you only need a few transcripts, you don't need an API key:

  • The free TikTok transcript generator. Paste a URL and copy the text, or download TXT, SRT or VTT. It reads the same caption tracks as the API but doesn't do AI fallback.

  • TikTok itself. If captions are on, you can read them during playback. There's no copy or export button.

  • yt-dlp. The open-source downloader can list and save a TikTok's caption tracks (--list-subs, --write-subs) when they exist. Pair it with OpenAI's Whisper on the downloaded audio for videos without captions.

The free Social Fetch TikTok transcript generator page with a TikTok link field and a Get transcript button

DIY is genuinely free, and fine for a weekend project. The costs show up at scale: TikTok rate-limits and blocks scrapers, extractors break when TikTok changes its site, and Whisper on long or many videos needs a GPU. That upkeep is what a transcript API takes off your hands.

What teams build with TikTok transcripts

  • AI and RAG pipelines. Text is what language models read. Transcripts let an agent search, summarize and answer questions about video content. Our MCP server exposes the transcript endpoint as a tool, so Claude, ChatGPT or Cursor can call it directly.

  • Hook and script research. Pull the first cue of every top video in a niche and study what opening lines hold viewers.

  • Brand and compliance monitoring. Check what creators actually said in sponsored videos, not just what their captions and hashtags say.

  • Content repurposing. Turn a TikTok into a blog draft, newsletter section or thread without rewatching it.

  • Search and analytics. Index spoken content so you can find every video that mentions a product, competitor or topic.

For a step-by-step version of the single-video flow with screenshots, see how to get a TikTok transcript.

Reading publicly available data is common practice, and US courts have generally been reluctant to treat scraping public web pages as illegal (hiQ Labs v. LinkedIn is the case usually cited). That doesn't make everything allowed. TikTok's terms, copyright and privacy law still apply. A transcript is a creator's own words, so republishing large parts of it is a copyright question, and transcripts can contain personal data that GDPR and similar laws cover. Analysis, search and research are the low-risk end. Republishing transcripts as your own content is the high-risk end. This is general information, not legal advice.

FAQ

Is there a free TikTok transcript API?

TikTok's own Research API is free, but only for approved non-profit researchers. For everyone else, most providers offer free trial credits: Social Fetch gives 100 on signup with no card. For a handful of videos, our free TikTok transcript generator needs no key at all.

Can I get a transcript for a TikTok with no captions?

Yes, if the video has speech. Pass useAiFallback=true and the audio is transcribed with AI. That costs 11 credits, charged only when AI produced the transcript, for videos up to two minutes. Add allowLongTranscription=true for longer videos, at 10 credits per started minute. Videos with only music or no speech return transcript: null for 1 credit.

What format does the TikTok transcript API return?

Caption tracks come back as WebVTT (format: "webvtt"): timed cues, each with a start time, an end time and a line of speech. Strip the timing lines for plain text, or keep them for captions, clipping and timestamped quotes. AI transcripts come back as plain text with no timings (format: "text"). The code examples in this guide handle both.

Does a TikTok transcript include the caption, hashtags or on-screen text?

No. The transcript is the spoken audio only. The written caption and hashtags come from the video details endpoint. Text a creator typed onto the screen isn't part of either.

Can I get transcripts in other languages?

Pass a two-letter language code, such as es or fr. If the video has a caption track in that language, you get it. If not, you get whatever track TikTok has. The API doesn't translate.

Can I get transcripts for private TikTok videos?

No. Transcript APIs only read public videos. A private, deleted or region-blocked video comes back as lookupStatus: "not_found".

How much does a TikTok transcript cost?

On Social Fetch, a caption read is 1 credit, which works out to as little as $0.00135 a video. When AI transcribes the audio it's 11 credits, and with long transcription 10 credits per started minute. Failed lookups (502 and 503) aren't charged.

Can I get transcripts for every video on a TikTok account?

Yes. List the account's videos with the profile videos endpoint, then request a transcript for each URL. The bulk section above has working code.

Founder of Social Fetch. Writes about social-data APIs, reliability, and the production incidents that forced better timeouts, envelopes, and billing.

Questions about this post? Contact us.