How to Get a TikTok Video Transcript (4 Methods in 2026)
Unlike YouTube, TikTok doesn’t have a built-in “Show transcript” button. But extracting text from TikTok videos is just as useful — for AI apps, content repurposing, research, sentiment analysis, and accessibility.
Here are 4 ways to get a TikTok video transcript in 2026, from the simplest manual option to production-grade APIs.
Method 1: TikTok’s Auto-Captions (Fastest Manual Option)
TikTok added auto-generated captions to videos in 2021. If the creator enabled them, you can view the full text overlay while watching — but TikTok doesn’t let you directly copy or export those captions.
To view captions:
- Open the TikTok video
- Tap the closed captions icon (CC) in the right sidebar
- Captions appear as an overlay while the video plays
To extract the text manually:
- Pause at each caption segment and copy it (tedious for long videos)
- Or screenshot each segment — some third-party OCR tools can extract text from screenshots
Limitations:
- No bulk export — this is strictly manual, one segment at a time
- Only works when the creator enabled auto-captions
- TikTok’s app doesn’t expose a “copy all captions” button
- Not available on desktop web (CC feature is mobile-only in TikTok’s app)
Best for: Occasional lookups on specific short videos when you just need a few lines.
Method 2: tiktok-transcript Python Libraries
Several open-source Python tools can pull TikTok caption data from TikTok’s internal API. These work similarly to the popular youtube-transcript-api library for YouTube.
pip install supadata # or tiktok-transcriptUsing the Supadata Python SDK:
from supadata import Supadata
client = Supadata(api_key="YOUR_API_KEY")
result = client.tiktok.transcript(url="https://www.tiktok.com/@user/video/1234567890")
full_text = " ".join([seg["text"] for seg in result.content])
print(full_text)Or via direct HTTP request:
import requests
def get_tiktok_transcript(url: str, api_key: str) -> str:
response = requests.get(
"https://api.supadata.ai/v1/tiktok/transcript",
params={"url": url},
headers={"x-api-key": api_key}
)
data = response.json()
return " ".join([seg["text"] for seg in data["content"]])What you get back:
{
"content": [
{ "text": "okay so this is the hack", "offset": 0, "duration": 1800, "lang": "en" },
{ "text": "that nobody is talking about", "offset": 1800, "duration": 2200, "lang": "en" }
],
"lang": "en",
"availableLangs": ["en"]
}Limitations of DIY scrapers:
- Open-source TikTok scrapers break regularly when TikTok updates their internal API
- Rate limiting — TikTok actively throttles scraping at scale
- No AI fallback for videos that don’t have captions
Best for: Small personal projects; for anything production-facing, use a managed API (see Method 4).
Method 3: No-Code Tools (Make, Zapier, n8n)
If you want TikTok transcripts flowing into your stack automatically — Notion, Airtable, Google Sheets, Slack — no-code platforms let you build the pipeline without writing code.
Example: New TikTok video → transcript saved to Airtable (via Make)
- Trigger: RSS or webhook watches for new videos from a TikTok account
- Action: Supadata module fetches the transcript via API
- Action: Airtable module creates a new row with the video URL + full transcript text
Supadata has native connectors in Make, Zapier, n8n, and ActivePieces.
Common use cases:
- Content teams: Auto-transcribe TikTok competitor videos into a research database
- Newsletter writers: Pull viral TikTok scripts to analyze what’s resonating
- Marketers: Monitor brand mentions across TikTok by transcribing and searching text
- SEO: Convert TikTok video content into blog articles
Best for: Non-technical users, content workflows, or anyone who wants transcripts in their tools without writing code.
Method 4: Supadata API (Bulk, Automated, All-Platform)
For production use — when you need transcripts at scale, across multiple platforms, or with AI fallback for videos without native captions — use a dedicated API.
Supadata is an AI video intelligence API that extracts transcripts from TikTok, YouTube, Instagram, Facebook, and Twitter through a single unified endpoint.
Quick start (curl):
# Get your free API key at supadata.ai (100 credits/month free)
curl "https://api.supadata.ai/v1/tiktok/transcript?url=https://www.tiktok.com/@user/video/1234567890" \
-H "x-api-key: YOUR_API_KEY"Python (full example):
import requests
def get_tiktok_transcript(tiktok_url: str, api_key: str) -> dict:
"""
Returns transcript with timestamps for any TikTok video.
Falls back to AI-generated transcript if no captions exist.
"""
response = requests.get(
"https://api.supadata.ai/v1/tiktok/transcript",
params={"url": tiktok_url},
headers={"x-api-key": api_key},
timeout=30
)
response.raise_for_status()
return response.json()
data = get_tiktok_transcript(
"https://www.tiktok.com/@charlidamelio/video/7040766991498793222",
"your_api_key_here"
)
# Full text
full_text = " ".join(seg["text"] for seg in data["content"])
# With timestamps (milliseconds)
for segment in data["content"]:
seconds = segment["offset"] / 1000
print(f"[{seconds:.1f}s] {segment['text']}")TypeScript/JavaScript:
interface TranscriptSegment {
text: string;
offset: number; // milliseconds
duration: number; // milliseconds
lang: string;
}
interface TranscriptResponse {
content: TranscriptSegment[];
lang: string;
availableLangs: string[];
}
async function getTikTokTranscript(url: string): Promise<string> {
const response = await fetch(
`https://api.supadata.ai/v1/tiktok/transcript?url=${encodeURIComponent(url)}`,
{ headers: { 'x-api-key': process.env.SUPADATA_API_KEY! } }
);
const data: TranscriptResponse = await response.json();
return data.content.map(seg => seg.text).join(' ');
}Batch processing multiple TikTok videos:
import requests
import time
API_KEY = "your_api_key"
BASE_URL = "https://api.supadata.ai/v1/tiktok/transcript"
tiktok_urls = [
"https://www.tiktok.com/@user1/video/111",
"https://www.tiktok.com/@user2/video/222",
"https://www.tiktok.com/@user3/video/333",
]
transcripts = []
for url in tiktok_urls:
response = requests.get(BASE_URL, params={"url": url}, headers={"x-api-key": API_KEY})
if response.status_code == 200:
data = response.json()
text = " ".join(seg["text"] for seg in data["content"])
transcripts.append({"url": url, "transcript": text})
time.sleep(0.1) # gentle rate limiting
print(f"Transcribed {len(transcripts)} videos")Key advantages over DIY scrapers:
- ✅ AI fallback — generates transcripts for videos without native captions
- ✅ Multi-platform — same API for YouTube, Instagram, Facebook, Twitter
- ✅ Stable — not affected by TikTok’s internal API changes
- ✅ No infrastructure — fully managed, scales to thousands of requests
- ✅ Timestamps included — millisecond precision for each segment
- ✅ Multi-language — request transcripts in any available language
Pricing: Free tier (100 credits/month, no credit card), paid plans from $17/month for 3,000 credits.
Best for: SaaS products, AI apps, research pipelines, content automation, competitor monitoring, or any workflow processing more than a handful of videos.
Comparison: Which Method Is Right for You?
| Method | Technical Skill | Bulk Support | AI Fallback | Free |
|---|---|---|---|---|
| TikTok app captions | ❌ | ❌ | ❌ | ✅ |
| DIY Python scraper | ✅ | ⚠️ fragile | ❌ | ✅ |
| No-code (Make/Zapier) | ❌ | ✅ | ✅ (via API) | Limited |
| Supadata API | ✅ | ✅ | ✅ | ✅ (100/mo) |
FAQs
Can I get a transcript for a TikTok video without captions?
With the app’s CC button or DIY scrapers, no — you can only access captions that TikTok has already generated. With the Supadata API, yes — it has an AI pipeline that generates a transcript even when TikTok doesn’t provide native captions.
Does this work for TikTok videos in other languages?
Yes. The Supadata API returns the primary language and lists all available caption languages. You can request a specific language if multiple are available.
Can I extract transcripts from private or restricted TikTok videos?
No — private videos aren’t accessible via any external API. Only publicly visible TikTok videos can be transcribed.
Is it legal to extract TikTok transcripts?
Generally yes for personal use, research, and building products — the caption data is publicly accessible (same as what the TikTok app shows). For commercial use at scale, using a paid API (like Supadata) is the cleanest approach.
What’s the difference between TikTok auto-captions and the transcript returned by the API?
TikTok’s auto-captions are what TikTok generates internally and displays in-app. The Supadata API retrieves those captions when available, and uses an AI fallback to generate them when they’re not. You get the same (or better) text, structured as JSON with timestamps.
How do I handle TikTok videos that return a 404 error?
A 404 from the Supadata API usually means the video was deleted, set to private, or the URL is malformed. Check that the URL is a full TikTok video URL (not a short link) and that the video is publicly accessible before requesting the transcript.
Ready to Build Something?
If you’re building an app, content pipeline, or AI workflow that needs TikTok transcripts, the Supadata API handles the scraping complexity, AI fallback, and scale — so you don’t have to.
Get your free API key → — 100 credits/month, no credit card required.