TikTok AI Transcript Extractor
Pricing
from $0.23 / 1,000 result extracteds
TikTok AI Transcript Extractor
Extract public TikTok captions, transcript text, timestamped segments, video metadata, creator details, hashtags, music, and clear skip reasons from video URLs.
Pricing
from $0.23 / 1,000 result extracteds
Rating
0.0
(0)
Developer
Hanna Nosova
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Turn public TikTok videos into structured transcript data for research, repurposing, social listening, and content analysis.
The TikTok AI Transcript Extractor helps creators, agencies, analysts, and developers process batches of public TikTok video URLs and receive clean dataset rows with video metadata, transcript status, caption text when available, timestamped segments, hashtags, creator details, music information, engagement counts, and explicit skip reasons.
What does TikTok AI Transcript Extractor do?
This actor processes public TikTok video URLs and returns structured data that is ready for spreadsheets, dashboards, databases, and automation workflows.
It is useful when you need to:
- ๐ฌ Build a searchable archive of TikTok content
- ๐ Extract public captions and subtitle segments
- ๐ Combine video metadata with transcript availability
- ๐ Audit which videos have public caption tracks
- ๐ฆ Keep skipped, private, deleted, or unavailable videos visible in your batch report
- ๐ฆ Export clean JSON, CSV, Excel, XML, or RSS from Apify datasets
Who is it for?
Content creators
Use transcripts and captions to repurpose short-form videos into blog posts, newsletters, captions, scripts, and social posts.
Agencies
Process client or competitor TikTok URLs in batches and prepare structured reports for creative strategy, social listening, and campaign analysis.
Researchers
Collect public video metadata and available transcript text for qualitative analysis, topic tracking, and searchable content archives.
Social listening teams
Monitor public videos, hashtags, scripts, music usage, and caption availability across a curated URL list.
Developers
Connect TikTok transcript extraction to your own pipelines with Apify API, webhooks, scheduled runs, and MCP tools.
Why use this actor?
- โ Batch input for many public TikTok video URLs
- โ Clean one-row-per-video output
- โ Transcript text when public captions are available
- โ Timestamped transcript segments when subtitle timing is available
- โ
Explicit
statusanderrorReasonfields for every URL - โ Video metadata such as author, description, duration, hashtags, music, and engagement counts
- โ Proxy configuration support for reliability
- โ Works with Apify datasets, integrations, API clients, and MCP
What data can you extract?
| Field | Description |
|---|---|
url | Original input URL |
canonicalUrl | Normalized TikTok video URL when available |
videoId | TikTok video ID |
authorUsername | Public creator username |
authorName | Public creator display name |
description | TikTok video caption / description |
duration | Video duration in seconds |
createTimeISO | Publish time in ISO format when available |
musicTitle | Music or original sound title |
hashtags | Hashtags attached to the video |
stats | Public play, like, comment, share, and collect counts when available |
transcriptText | Combined transcript text when public captions are available |
segments | Timestamped transcript segments |
language | Caption language when available |
transcriptionSource | Source of transcript data |
status | success, skipped, or failed |
errorReason | Human-readable reason for skipped or failed URLs |
scrapedAt | Extraction timestamp |
How much does it cost to extract TikTok transcripts?
This actor uses pay-per-event pricing. A small start event covers run initialization and a per-result event is charged for each processed TikTok URL that is written to the dataset.
Typical test runs with a few URLs are inexpensive. For larger batches, use maxItems to control the run size and review your estimated maximum charge in Apify before starting the run.
Input options
videoUrls
Paste public TikTok video URLs. Direct /video/ links work best.
startUrls
Optional advanced URL input compatible with Apify request-list objects. These URLs are merged with videoUrls.
maxItems
Caps the number of URLs processed from the combined input list.
preferredLanguage
Preferred caption language code such as en, es, de, or fr.
includeMetadata
Turn metadata extraction on or off. Most users should leave this enabled.
maxConcurrency
Controls how many URLs are processed at once. Lower values are more reliable for TikTok.
proxyConfiguration
Optional Apify Proxy settings. Start with the default unless your run is blocked.
Example input
{"videoUrls": ["https://www.tiktok.com/@scout2015/video/6718335390845095173"],"maxItems": 1,"preferredLanguage": "en","includeMetadata": true,"maxConcurrency": 1}
Example output
{"url": "https://www.tiktok.com/@example/video/1234567890","canonicalUrl": "https://www.tiktok.com/@example/video/1234567890","videoId": "1234567890","authorUsername": "example","description": "Example public TikTok description","duration": 24,"transcriptText": "Example caption text from the public subtitle track.","segments": [{ "startTime": 0, "endTime": 2.4, "text": "Example caption text" }],"language": "eng-US","transcriptionSource": "tiktok_captions","status": "success","errorReason": null,"scrapedAt": "2026-06-25T00:00:00.000Z"}
How to run
- Open the actor on Apify.
- Paste one or more public TikTok video URLs.
- Set
maxItemsto a small number for your first run. - Run the actor.
- Export the dataset as JSON, CSV, Excel, XML, or HTML.
Tips for best results
- Use direct public video URLs.
- Start with 1โ3 URLs to verify your workflow.
- Keep concurrency low for large batches.
- Check
statusanderrorReasonbefore assuming a URL has no speech. - Some public videos do not expose public captions; these are returned as skipped rows.
- Deleted, private, region-limited, or age-restricted videos may fail or be skipped.
Working with skipped videos
A skipped row is still useful. It means the actor processed the URL and can tell you why no transcript was returned.
Common reasons include:
- No public captions available
- Video is private or deleted
- TikTok blocked or restricted the video page
- Caption file was unavailable
- Caption file could not be parsed
Integrations
Use this actor with:
- Google Sheets exports for manual review
- Apify webhooks for automatic notifications
- Databases such as BigQuery, Postgres, or Snowflake
- Social listening dashboards
- Content repurposing workflows
- Internal creative research tools
- Zapier or Make automations through Apify integrations
API usage
Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('fetch_cat/best-tiktok-ai-transcript-extractor').call({videoUrls: ['https://www.tiktok.com/@scout2015/video/6718335390845095173'],maxItems: 1});console.log(run.defaultDatasetId);
Python
from apify_client import ApifyClientclient = ApifyClient('YOUR_APIFY_TOKEN')run = client.actor('fetch_cat/best-tiktok-ai-transcript-extractor').call(run_input={'videoUrls': ['https://www.tiktok.com/@scout2015/video/6718335390845095173'],'maxItems': 1,})print(run['defaultDatasetId'])
cURL
curl -X POST "https://api.apify.com/v2/acts/fetch_cat~best-tiktok-ai-transcript-extractor/runs?token=$APIFY_TOKEN" \-H 'Content-Type: application/json' \-d '{"videoUrls":["https://www.tiktok.com/@scout2015/video/6718335390845095173"],"maxItems":1}'
MCP usage
Connect Apify MCP to Claude Desktop, Claude Code, or other MCP clients and enable this actor as a tool.
Claude Code quick setup:
$claude mcp add apify https://mcp.apify.com/?tools=fetch_cat/best-tiktok-ai-transcript-extractor
Claude Desktop JSON configuration:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com/?tools=fetch_cat/best-tiktok-ai-transcript-extractor"}}}
MCP example prompts:
- "Use the TikTok transcript extractor via MCP to process these video URLs and summarize the hooks."
- "Create a spreadsheet-ready table with TikTok captions, authors, hashtags, and skip reasons."
- "Check which videos in this batch have public captions available and explain failures."
Data quality notes
Transcript availability depends on what is publicly available for each TikTok video. If a video has no public caption track, the actor returns metadata and a clear skip reason instead of fabricating transcript text.
Legality
This actor is designed for publicly available TikTok video pages. You are responsible for using the output lawfully, respecting copyright, privacy, platform terms, and applicable regulations. Do not use extracted data for spam, harassment, impersonation, or unlawful profiling.
Troubleshooting
Why is transcriptText empty?
The video may not expose public captions. Check status and errorReason for the exact reason.
Why did a URL fail?
The video may be private, deleted, age-restricted, region-limited, or temporarily blocked. Try a direct public /video/ URL and run a small batch first.
Should I use a proxy?
Use the default proxy settings first. If you see repeated access errors, try Apify Proxy with a different group or region.
FAQ
Can I process many TikTok URLs?
Yes. Use videoUrls and set maxItems to control the batch size.
Does it support all languages?
The actor can select a preferred caption language when TikTok exposes multiple public caption tracks. If the preferred language is unavailable, it uses another available track.
Does it download videos?
No. The dataset focuses on transcript and metadata fields.
Can I schedule it?
Yes. Use Apify schedules to run the actor repeatedly with updated URL lists.
Related actors
Explore other Apify actors from the same publisher:
- https://apify.com/fetch_cat/tiktok-profile-scraper
- https://apify.com/fetch_cat/tiktok-hashtag-scraper
- https://apify.com/fetch_cat/youtube-transcript-scraper
- https://apify.com/fetch_cat/youtube-channel-videos-scraper
Support
If you need help, open an issue on the Apify actor page and include a sample input URL, run ID, and the dataset row that did not match your expectation.