TikTok AI Transcript Extractor
Pricing
from $0.23 / 1,000 result extracteds
TikTok AI Transcript Extractor
Extract caption transcripts and metadata from public TikTok video URLs.
Pricing
from $0.23 / 1,000 result extracteds
Rating
0.0
(0)
Developer
Fetch Cat
Maintained by CommunityActor stats
0
Bookmarked
13
Total users
4
Monthly active users
5 days ago
Last modified
Categories
Share
Extract caption transcripts and useful metadata from public TikTok video URLs. Each saved result contains non-empty transcript text from a caption track exposed by TikTok. This Actor does not generate speech-to-text when a video has no captions.
Quick start
Paste a public video URL, choose a preferred caption language, and keep maxItems small for your first run. The URL below is an input-format example, not a guarantee that the video remains available or captioned.
{"startUrls": [{ "url": "https://www.tiktok.com/@apify/video/7353646097262202145" }],"preferredLanguage": "en","maxItems": 1}
Prefer a video guide? This short Apify walkthrough shows you how to set up and run an Actor. It uses a different Actor, but the setup steps are the same.
Ready-to-run examples
Choose an existing example with a small, preconfigured input. All use the same public-caption extraction mode. The different titles describe workflows, not additional extraction capabilities.
- Single-video transcript — Start with one video and its available captions.
- Captions and subtitles export — Collect caption text for export from the dataset.
- Transcript and metadata dataset — Pair transcript text with the available video and creator fields.
What you get
- Caption text: normalized transcript text and the selected track's language.
- Video context: video ID, creator username, description and duration where exposed.
- Source links: discovered caption-track and playable-media URLs.
- Export options: retrieve the dataset through the API or export JSON, CSV or Excel in Apify.
Use the text for content research, caption archives or repurposing workflows. This Actor does not translate captions, synthesize subtitles, or return timestamped segments, hashtags, music or engagement statistics as separate fields.
Who is it for?
- Content researchers reviewing the captioned words in selected public TikTok videos.
- Editorial teams keeping a traceable caption archive for later review.
- Data teams joining available transcript text with video and creator context in their own tools.
How you can use the data
- Archive a video's available captions. Save
transcript,videoId,urlandlanguagetogether so a reviewer can trace the text back to its public video. - Prepare content-research notes. Pass saved caption text to your own analysis workflow for topic or reuse notes, keeping the original video URL as a citation. This Actor retrieves captions and does not generate the analysis.
- Review language coverage. Prefer a language prefix, then inspect the actual selected
language. If the preferred track is unavailable, another exposed track can be selected. This is not translation or a way to create missing captions. - Keep durable context with the text. Use the original public video link and identifier for your archive. Discovered caption and playable-media links can expire.
Input settings
| Field | Meaning |
|---|---|
startUrls | Required list of public TikTok video URLs. The input UI accepts objects with url. The runtime also accepts URL strings. |
preferredLanguage | Prefer a caption language prefix, such as en. If no track matches, use the first available track. The input schema defaults to en. |
maxItems | Maximum saved transcript rows. Default 10, schema range 1–10000. Start with 1 to bound output. |
startUrls supports direct tiktok.com/@creator/video/{id} links and TikTok's vm.tiktok.com or vt.tiktok.com short links. Profiles, search pages and non-TikTok URLs are rejected before fetching or attempting a start charge. Submit at most 10,000 video URLs. Connections are direct only.
There is one extraction mode: read public caption tracks from submitted videos. A preferred language is a selection preference, not a translation request.
Output data
This abbreviated example illustrates the shape only. It is not a scraped record. Link values are illustrative and temporary media URLs may expire.
{"url": "https://www.tiktok.com/@apify/video/7353646097262202145","videoId": "7353646097262202145","authorUsername": "apify","description": null,"durationSeconds": null,"language": "en","transcript": "Illustrative caption text.","captionUrl": "https://example.com/captions.vtt","videoUrl": "https://example.com/video.mp4","captionSource": null}
| Field | Meaning |
|---|---|
url | Public TikTok video URL after redirects |
videoId | TikTok video identifier |
authorUsername | Public creator username, or null when unavailable |
description | Video description, or null when unavailable |
durationSeconds | Video duration, or null when unavailable |
language | Selected caption-track language |
transcript | Non-empty normalized caption text |
captionUrl | Source caption-track URL |
videoUrl | Discovered playable-media URL. May be empty when unavailable |
captionSource | Caption source label, or null when unavailable |
Download your results
Open your run's dataset, choose Export and select JSON, CSV or Excel. JSON keeps nested fields together. CSV and Excel are useful when you want to review the records in a spreadsheet.
See Apify's download and export guide for the available formats and field options.
Pricing
After input validation, the Actor attempts the configured start event once per run and one result event per transcript row actually saved. A start charge can apply even when no captions are available. Error messages and unavailable captions are not saved as paid transcript rows.
Use maxItems to bound saved results. See the live Pricing tab for current rates and plan discounts.
Tips for best results
- Start with one public video and one saved row. Confirm readable captions are available before submitting a longer list.
- Inspect the selected language. A preferred language is a track-selection preference and may fall back to another available track.
- Keep the original video URL with the transcript. Use it as a citation in your downstream archive or analysis.
- Review the run summary before retrying a batch. Videos with no available captions or an empty caption track are skipped. Retrieval and extraction errors stop the run, while previously saved rows remain.
- Use the actual saved text. Missing captions cannot be filled by requesting audio transcription or translation from this Actor.
Limits and caveats
- Public captions required: a public video must expose a readable caption track. There is no audio transcription fallback.
- Unavailable videos: login walls, geographic restrictions and download failures can stop the current run. An unavailable response alone does not establish that a video is private or deleted.
- Batch behavior: videos whose metadata confirms no caption tracks, and readable empty tracks, produce no row. Malformed caption metadata or nonempty track lists with unreadable URLs are extraction errors, not evidence of missing captions. Retrieval or extraction failures stop the run and preserve previously saved rows. The
RUN-SUMMARYrecord counts completed videos, saved transcripts and caption-related skips. - Bounded runs: processing stops at the result budget, saved-row limit or processing deadline. Large lists may need smaller batches.
- Coverage: TikTok can change its public page and caption formats. Metadata may be missing and media links may expire.
- Access: this Actor does not bypass private-video controls or login requirements. Process only public videos you are allowed to use.
Automation and integrations
Save your settings for next time
Once you have an input that works for you, save it as an Apify task. This keeps your settings together so you can use them again without filling in the form from scratch.
Run on a schedule
Need fresh results regularly? You can schedule the Actor or a saved task to run at a time that suits you.
Each scheduled run collects the data again. If you want to compare results or highlight changes, add that step in your own workflow.
Send results to your other tools
Use n8n, Make or Zapier to connect this scraper to the rest of your workflow. For example, you could pass its results to an AI assistant or add records to a spreadsheet. Follow the Apify integration guides for your chosen tool.
For a custom connection, an Apify webhook can notify your app when a run finishes or fails. Your app can then fetch the results or handle the failure.
API usage
Want to collect this data from your own app or automation? The examples below send input to the scraper and show how to collect its results.
The Node.js and Python examples wait for the run to finish before reading its results. The cURL example starts the run and returns its details. Wait for that run to finish, then use its defaultDatasetId to fetch the results.
For setup instructions, see Apify's JavaScript client guide, Python client guide and Actor runs API reference.
cURL
curl -X POST \'https://api.apify.com/v2/acts/fetch_cat~best-tiktok-ai-transcript-extractor/runs' \-H "Authorization: Bearer $APIFY_TOKEN" \-H 'Content-Type: application/json' \-d '{"startUrls":[{"url":"https://www.tiktok.com/@apify/video/7353646097262202145"}],"preferredLanguage":"en","maxItems":1}'
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({startUrls: [{ url: 'https://www.tiktok.com/@apify/video/7353646097262202145' }],preferredLanguage: 'en',maxItems: 1,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ['APIFY_TOKEN'])run = client.actor('fetch_cat/best-tiktok-ai-transcript-extractor').call(run_input={'startUrls': [{'url': 'https://www.tiktok.com/@apify/video/7353646097262202145'}],'preferredLanguage': 'en','maxItems': 1,})items = client.dataset(run['defaultDatasetId']).list_items().itemsprint(items)
MCP and AI agents
You can ask your AI assistant to collect data with TikTok AI Transcript Extractor and help you work with the results. The scraper returns the data, and your assistant can then summarize it, compare records or prepare notes.
Connect your assistant through the Apify MCP server. MCP gives your assistant a way to find this scraper, run it and read the results. Follow the official setup and sign-in guide for your app.
Easier setup with an Apify plugin
If you use a supported coding assistant, the official Apify plugin can set up the connection for you. It connects your assistant to Apify and includes instructions for common tasks. Follow the guide for your particular app.
Use Apify AI in Console
Prefer to keep everything in Apify? Open Apify AI in Console and ask it to find Fetch Cat's TikTok AI Transcript Extractor. You can describe the data you want and ask questions about the results.
Apify AI is currently in beta. It asks for confirmation before starting an Actor, and normal run charges apply.
Choose your assistant
- Claude and Claude Code (Anthropic): Apify setup guide.
- ChatGPT and Codex (OpenAI): Apify setup guides.
- Grok Bot (xAI): Apify plugin guide.
- Gemini CLI (Google): MCP server setup guide. Use the server URL below with the HTTP configuration supported by Gemini CLI.
Connect just this scraper
To keep your setup focused on this scraper, add this server configuration to a compatible MCP client:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=fetch_cat/best-tiktok-ai-transcript-extractor"}}}
Sign in to Apify when your client asks. If your client uses a Bearer token instead, follow its setup guide and keep the token in its secure configuration. Configuration formats vary by app, so use the linked guide if your client needs a different format.
Use Apify's general server
Already connected to the general Apify MCP server at https://mcp.apify.com? You can use it to find this scraper without adding another server. Ask your assistant to use TikTok AI Transcript Extractor by Fetch Cat, or give it the identifier fetch_cat/best-tiktok-ai-transcript-extractor.
Your assistant can check the available settings and retrieve the results from the returned run. If the run is still working, it should follow that run rather than start it again. Both connection options use Apify's hosted service.
Example requests
- “Use Fetch Cat’s TikTok AI Transcript Extractor to collect captions from this one public TikTok video, preferring English. Show the transcript, original video URL and actual selected language without translating another track.”
- “Collect caption transcripts for at most two public TikTok video URLs I provide. Keep video identifiers, creator usernames when available and source links with the text for my caption archive.”
- “Retrieve one available caption transcript from this public TikTok short link. Keep the source video URL for citation, and report a caption or access failure rather than inventing text or transcribing audio.”
Normal Apify charges apply. Check the live Pricing tab before asking your assistant to run a larger batch.
Pay with x402
If your AI agent has a funded wallet, it can pay for Apify usage through x402. This experimental option lets an agent use Apify without a conventional account.
Apify AGI provides a prepaid API token with a spending cap after payment. Your agent can use that token to run this scraper through the Apify API or an authenticated MCP connection.
Some MCP setups also support paying for each request directly. That is a different payment option, so check the official guide for its availability.
Follow the official guide for wallet setup, supported payment options and current terms. Apify handles the payments. Keep wallet keys and payment tokens in your agent's secure configuration.
Other ways for agents to pay
Apify also supports MPP for prepaid access through AGI and Skyfire for eligible Actors. If your agent already uses one of these, see the agentic payment guide to choose the right setup.
FAQ
Does AI in the name mean it transcribes any video?
No. It extracts captions TikTok exposes. It does not run a separate speech-to-text model.
Can I request another language?
Set preferredLanguage to a language prefix. If no matching caption track exists, the first available track is used. Text is not translated.
Why did a run save no transcript?
The video may lack captions or have a readable but empty caption track. Check the run summary for those skips. Retrieval and extraction errors remain failures rather than being labelled as private or deleted videos. A start charge may still apply.
Can I export results?
Yes. Use Apify's dataset export or retrieve items by dataset ID. Only successfully saved transcripts appear as rows.
Related Actors
- TikTok Profile Scraper — Collect public TikTok profile bios, available audience metrics and recent public video summaries.
- TikTok Video Scraper — Collect public TikTok video captions, creator details and available engagement metadata from known video URLs.
- TikTok Sound Scraper — Collect public videos using known TikTok sounds with captions, creator details and available engagement or music metadata.
- TikTok Hashtag Scraper — Collect public TikTok hashtag-feed videos with captions, creators, source links and available engagement fields.
- Instagram AI Transcript Extractor — Retrieve transcript text and available timestamped segments for known public Instagram video URLs.
- YouTube Transcript Scraper — Collect existing public YouTube captions as transcript text with optional timestamped segments, without generating audio transcription.
Support and feedback
For custom additions or integrations, email hello@fetchcat.dev.
Found an error or have a feature request? Open an issue with the run URL, a non-sensitive input example and what you expected.
Need help sharing it? See Apify’s guide to sharing a run when reporting an issue. Sharing a run can give the developer access to its input, logs and results, so use a run that contains no sensitive data. Please leave out API tokens, passwords, cookies, private documents and personal data. Use a public sample URL or a redacted example instead.
Tried this scraper? We'd love to hear how it worked for you. Leave a review to help others choose the right tool and help us improve it. Your feedback means a lot to us.
Made with care for curious people, AI agents and the possibilities in data. ♥