TikTok AI Transcript Extractor avatar

TikTok AI Transcript Extractor

Pricing

from $0.23 / 1,000 result extracteds

Go to Apify Store
TikTok AI Transcript Extractor

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

Hanna Nosova

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

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 status and errorReason fields 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?

FieldDescription
urlOriginal input URL
canonicalUrlNormalized TikTok video URL when available
videoIdTikTok video ID
authorUsernamePublic creator username
authorNamePublic creator display name
descriptionTikTok video caption / description
durationVideo duration in seconds
createTimeISOPublish time in ISO format when available
musicTitleMusic or original sound title
hashtagsHashtags attached to the video
statsPublic play, like, comment, share, and collect counts when available
transcriptTextCombined transcript text when public captions are available
segmentsTimestamped transcript segments
languageCaption language when available
transcriptionSourceSource of transcript data
statussuccess, skipped, or failed
errorReasonHuman-readable reason for skipped or failed URLs
scrapedAtExtraction 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

  1. Open the actor on Apify.
  2. Paste one or more public TikTok video URLs.
  3. Set maxItems to a small number for your first run.
  4. Run the actor.
  5. 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 status and errorReason before 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 ApifyClient
client = 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.

Explore other Apify actors from the same publisher:

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.