TikTok Transcript Scraper avatar
TikTok Transcript Scraper

Pricing

$2.00 / 1,000 results

Go to Apify Store
TikTok Transcript Scraper

TikTok Transcript Scraper

Developed by

Socia Vault

Socia Vault

Maintained by Community

Extract TikTok video transcripts and captions in multiple languages. Perfect for content analysis, accessibility, subtitle extraction, and understanding video content without watching.

0.0 (0)

Pricing

$2.00 / 1,000 results

1

12

7

Last modified

16 days ago

Extract TikTok video transcripts and captions in multiple languages. Perfect for content analysis, accessibility, SEO, and subtitle extraction.

Features

No TikTok login required - Extract transcripts from public videos
Bulk processing - Process multiple videos in one run
Multi-language support - Get transcripts in English, Spanish, French, German, and more
WebVTT format - Industry-standard subtitle format with timestamps
Fast & reliable - Built on enterprise-grade infrastructure
Affordable pricing - 1 credit per video
Easy to use - Simple input, JSON/CSV output

What data can you extract?

For each TikTok video, you'll get:

  • 📝 Full Transcript: Complete video captions/subtitles
  • ⏱️ Timestamps: WebVTT format with precise timing
  • 🌍 Language: Specify language code for transcript
  • Availability Status: Know if transcript exists
  • 📊 Character Count: Length of transcript

Input

The actor accepts the following input parameters:

{
"videoUrls": [
"https://www.tiktok.com/@stoolpresidente/video/7488736374602927402",
"https://www.tiktok.com/@khaby.lame/video/7129994335991368965",
"https://vm.tiktok.com/ZMabcdef/"
],
"language": "en"
}

Input Parameters

ParameterTypeRequiredDescription
videoUrlsArrayYesList of TikTok video URLs to extract transcripts from
languageStringNoLanguage code for transcript (default: "en")

Supported Languages

Common language codes:

  • en - English (default)
  • es - Spanish
  • fr - French
  • de - German
  • pt - Portuguese
  • it - Italian
  • ja - Japanese
  • ko - Korean
  • zh - Chinese
  • ar - Arabic
  • hi - Hindi
  • ru - Russian

Supported URL Formats

Full TikTok URL: https://www.tiktok.com/@username/video/1234567890
Short TikTok URL: https://vm.tiktok.com/ZMabcdef/
With URL parameters: https://www.tiktok.com/@username/video/1234567890?lang=en

Output

The actor stores results in the default dataset. You can export data in JSON, CSV, Excel, or other formats.

Example Output (With Transcript)

{
"success": true,
"url": "https://www.tiktok.com/@stoolpresidente/video/7488736374602927402",
"videoId": "7488736374602927402",
"language": "en",
"hasTranscript": true,
"transcript": "WEBVTT\n\n\n00:00:00.380 --> 00:00:03.600\nBagels to make him dance. Bagels to make him dance.\n\n00:00:03.700 --> 00:00:06.760\nBagels to make him dance. Bagels to make him dance.\n\n00:00:06.900 --> 00:00:08.400\nBagels to make him dance.\n",
"characterCount": 185
}

Example Output (No Transcript)

{
"success": true,
"url": "https://www.tiktok.com/@username/video/1234567890",
"videoId": "1234567890",
"language": "en",
"hasTranscript": false,
"transcript": null,
"message": "Video does not have captions/transcript available"
}

Output Fields

FieldTypeDescription
successBooleanWhether the scrape was successful
urlStringTikTok video URL
videoIdStringTikTok video ID
languageStringLanguage code used
hasTranscriptBooleanWhether transcript is available
transcriptString/nullFull transcript in WebVTT format (null if unavailable)
characterCountIntegerLength of transcript (only if available)
messageStringStatus message (only if no transcript)

WebVTT Format

Transcripts are returned in WebVTT (Web Video Text Tracks) format:

WEBVTT
00:00:00.380 --> 00:00:03.600
First line of text here
00:00:03.700 --> 00:00:06.760
Second line of text here

This format includes:

  • Precise timestamps (milliseconds)
  • Line breaks for readability
  • Industry-standard format compatible with video players

Error Response Format

When a video fails to scrape:

{
"success": false,
"url": "https://www.tiktok.com/@username/video/invalid",
"language": "en",
"hasTranscript": false,
"error": "Video not found or private"
}

Use Cases

📝 Content Analysis

  • Analyze spoken content in videos
  • Extract key phrases and topics
  • Sentiment analysis on speech

🌍 Accessibility

  • Generate subtitles for deaf/hard of hearing
  • Create accessible video content
  • Comply with accessibility standards

🔍 SEO & Marketing

  • Extract video content for SEO
  • Create blog posts from video content
  • Generate video summaries

📊 Research & Analytics

  • Study language patterns in viral videos
  • Analyze trending topics
  • Track messaging and narratives

🤖 AI & Machine Learning

  • Training data for NLP models
  • Speech-to-text validation
  • Content moderation datasets

🎬 Content Creation

  • Repurpose video content
  • Create written content from videos
  • Generate video descriptions

Tips & Best Practices

💡 Optimize Your Scraping

  • Not all videos have transcripts (especially older ones)
  • Use correct language code for best results
  • Test with a few videos first

Performance Tips

  • The actor processes 10 videos in parallel
  • Expect ~2-3 seconds per video
  • Large batches work efficiently with automatic parallelization

🎯 Best Practices

  • Check hasTranscript field before using transcript
  • Export to JSON to preserve WebVTT formatting
  • Use CSV for quick transcript availability check

Transcript Availability

When transcripts ARE available:

  • Creator manually added captions
  • Auto-captions were generated by TikTok
  • Video has speech/dialogue

When transcripts are NOT available:

  • Video has no speech (music only)
  • Creator disabled captions
  • Very old videos (before auto-captions)
  • Private or deleted videos

Error Handling

The actor handles errors gracefully:

Successful with Transcript:

{
"success": true,
"hasTranscript": true,
"transcript": "WEBVTT..."
}

Successful without Transcript:

{
"success": true,
"hasTranscript": false,
"message": "Video does not have captions/transcript available"
}

Error Response:

{
"success": false,
"hasTranscript": false,
"error": "Video not found or private"
}

🔗 Related Actors:


Built with ❤️ by SociaVault