Back to blog
Tutorial·Jul 19, 2026·3 min read

How to Transcribe TikTok Videos: Manual, Python, and API Methods

Most TikToks have no caption track, so getting a transcript takes more than a download. Three working approaches - manual, yt-dlp + Whisper, and a one-call API with AI fallback.

Chandler Caseyby Chandler Casey

TikTok videos rarely ship with a caption track you can just download, which makes "get me the transcript of this TikTok" a genuinely annoying engineering problem. This guide covers the three practical ways to do it — manual, open-source, and API — with working code, and is honest about where each approach breaks.

Why TikTok transcripts are harder than YouTube

YouTube attaches auto-generated captions to almost every video, and libraries like youtube-transcript-api can fetch them directly. TikTok is different:

  • Most TikToks have no caption track at all. Auto-captions exist on some newer uploads, but the majority of videos expose nothing to download.
  • TikTok blocks scrapers aggressively. Datacenter IPs get challenged or banned quickly, so naive scripts stop working in production.
  • There's no official transcript API. TikTok's APIs are aimed at advertisers and commercial partners, not caption access.

So a reliable pipeline needs two layers: grab captions when they exist, and fall back to speech-to-text on the audio when they don't.

Option 1: manual (fine for one video)

For a single video, the pragmatic answer is no code at all: play the video, turn on captions if the creator added them, and copy what you need. Some third-party downloader sites will also extract the caption file when one exists. This obviously doesn't scale past a handful of videos.

Option 2: yt-dlp + Whisper (free, DIY)

The open-source route combines yt-dlp (which supports TikTok) with an ASR model like Whisper:

bash
pip install yt-dlp openai-whisper

# 1. Download the audio
yt-dlp -x --audio-format mp3 "https://www.tiktok.com/@user/video/7137723462233555205" -o audio.mp3

# 2. Transcribe it
whisper audio.mp3 --model small --output_format txt

This works, and it's free. The honest costs show up at scale:

  • Blocking. Run this from a server and TikTok will start refusing you; you'll need rotating residential proxies.
  • Compute. Whisper needs real CPU/GPU time — transcribing thousands of clips means real infrastructure.
  • Plumbing. Caption-first logic, retries, timestamps, and normalizing output formats are all yours to build and maintain.

Option 3: a transcript API (one call, captions + AI fallback)

A managed TikTok transcript API collapses all of that into one request. With TranscriptFetch, the same endpoint that handles YouTube accepts TikTok URLs:

bash
curl -X POST https://transcriptfetch.com/api/v1/transcripts/video \
  -H "Authorization: Bearer tf_live_..." \
  -H "Content-Type: application/json" \
  -d '{"video": "https://www.tiktok.com/@user/video/7137723462233555205"}'

If the video has captions, you get them back immediately as timestamped JSON. If it doesn't — the common case — the audio is transcribed with AI automatically and delivered via a job you can poll or receive by webhook:

json
{
  "ok": true,
  "data": {
    "kind": "transcript",
    "platform": "tiktok",
    "text": "Full transcript text ...",
    "segments": [{ "start": 0, "duration": 2.1, "text": "Full transcript" }]
  },
  "usage": { "credits_spent": 1 }
}

The same endpoint handles Instagram, X (Twitter), Facebook, and direct media file URLs, so one integration covers every platform you're likely to need. Proxies, blocking, caption detection, and the ASR fallback are all handled server-side, and you're only charged for transcripts that succeed.

In Python:

python
import requests

resp = requests.post(
    "https://transcriptfetch.com/api/v1/transcripts/video",
    headers={"Authorization": "Bearer tf_live_..."},
    json={"video": "https://www.tiktok.com/@user/video/7137723462233555205"},
)
data = resp.json()
print(data["data"]["text"])

Which should you use?

  • One-off videos: do it manually.
  • A hobby project with patience for infrastructure: yt-dlp + Whisper is genuinely capable, just budget time for proxies and compute.
  • Production, agents, or anything at scale: use an API. Sign up at TranscriptFetch — 100 free credits, no card required — or wire it into Claude/Cursor via the MCP server and ask your assistant for TikTok transcripts directly.
How to Transcribe TikTok Videos: Manual, Python, and API Methods · TranscriptFetch