Best TikTok Transcripts Scraper
Pricing
from $2.20 / 1,000 results
Best TikTok Transcripts Scraper
Typing out what a TikTok says takes forever. Paste video or photo links and get clean transcripts with timestamps, word timing, translations and on-screen text, plus plays, likes, shares and creator stats. Bulk links, typed errors, live results.
Pricing
from $2.20 / 1,000 results
Rating
0.0
(0)
Developer
Crawl Craft
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
19 hours ago
Last modified
Categories
Share
๐ What is Best TikTok Transcripts Scraper?
Best TikTok Transcripts Scraper is an Apify Actor that turns TikTok video and photo links into structured transcripts. For each post you get the spoken text, its language and source, timed segments, and word timing when TikTok has it. Caption, hashtags, on-screen text, stats and creator details arrive in the same row.
Tired of retyping what a creator says? Paste your links, press Start, and rows appear in the output tables as each post is read. Looking for a TikTok transcript scraper that keeps text, timing and stats together? That is what each row holds.
- ๐ Clean transcript text: the spoken text joined from the timed segments, with whitespace cleaned.
- ๐ Timed segments: start and end seconds per segment, plus word timing when TikTok provides it.
- ๐ Translations: pick one of 16 target languages to get TikTok's own translation when it exists.
- ๐ Stats and creators: plays, likes, comments, shares, saves and a creator profile per post.
- ๐ฆ Separate tables: transcripts, segments, videos, creators, media links and errors each get their own table.
- ๐ Bulk links: use it as a TikTok transcripts converter for a whole list at once, duplicates are skipped.
To start, click Try for free, paste TikTok links into urls, and press Start.
๐ What data can you extract from TikTok?
Every post becomes one row that you can export as JSON, CSV or Excel. The table lists each field with the exact name from the dataset schema, covering TikTok video transcripts, timed captions, post details and creator data.
| Field | Description | Example |
|---|---|---|
id | TikTok post id. | 7488736374602927402 |
url | Public link to the post. | https://www.tiktok.com/@user/video/7488736374602927402 |
post_type | video or photo. | video |
transcript | Clean TikTok transcript text of the post. | - |
transcript_language | Language code of the transcript. | en |
transcript_source | creator_captions, auto_captions or machine_translation. | auto_captions |
transcript_is_translation | True when TikTok machine-translated the transcript. | - |
transcript_word_count | Words in the transcript. | 25 |
transcript_note | Extra remark, for example a translation fallback. | - |
no_transcript_reason | Why there is no transcript for this post. | - |
available_languages | Caption languages TikTok offered. | - |
segments | Timestamped transcript segments (start, end, text). | - |
words | Word-level timings when TikTok has them. | - |
webvtt | Raw WebVTT captions. | - |
caption | Post caption. | - |
title | Photo post title. | - |
hashtags | Hashtags used. | - |
mentions | Accounts mentioned. | - |
on_screen_text | Text stickers shown on the post. | - |
duration_seconds | Video length in seconds. | - |
created_at | UTC time the post was published. | - |
caption_language | Language of the caption. | - |
is_ad | Flagged as an ad. | - |
is_ai_generated | Flagged as AI generated. | - |
location_created | Country code the post was created in. | - |
content_labels | TikTok content labels. | - |
comments_enabled | Comments are open. | - |
duet_enabled | Duets are allowed. | - |
stitch_enabled | Stitches are allowed. | - |
image_count | Images in a photo post. | - |
stats | plays, likes, comments, shares, saves, reposts, engagement_rate_pct. | - |
author | Creator profile and follower stats. | - |
music | Sound used in the post. | - |
media | Cover, video, music and image links. | - |
error | Filled when the post could not be read: code and message. | - |
scraped_at | UTC time the post was read. | 2026-10-21T19:57:05Z |
๐ก Use cases for TikTok transcript data
- Transcribe TikTok video to text for notes and search: keep
transcriptandtranscript_languagenext to the posturl, so a spoken idea is easy to find later. Each post is a TikTok video to text record you can filter bypost_type. - Run TikTok competitor analysis: compare
stats(plays, likes, shares, saves, engagement_rate_pct) with theauthorfollowers across rivals' posts. - Start a TikTok content analysis: read
caption,hashtags,on_screen_textandtranscripttogether to see what a niche says and shows. - Do TikTok creator research: use
author(followers, following, total likes, video count, verified) andmusicto shortlist creators before you reach out. - Spot a TikTok trend research signal: count
hashtagsandmusictitles overcreated_atdates across the posts you collect. - Plan TikTok content repurposing: turn
segmentsinto blog drafts, scripts or newsletter quotes with the start and end seconds as anchors. - Build TikTok transcripts for AI training and search indexes:
transcriptis clean text with atranscript_word_count, ready to pass to your own pipeline. - Translate TikTok video to English for review: set
transcriptLanguagetoenand thetranscript_is_translationfield shows when TikTok's translation was used. - Start a TikTok video subtitles download for accessibility checks: the
webvttfield keeps the raw captions of each post.
๐ ๏ธ How to scrape TikTok transcripts
This TikTok transcripts tool runs from the Apify Console without code. Open the Actor page to run a TikTok transcript online:
- Create a free Apify account and log in.
- Open Best TikTok Transcripts Scraper.
- Add your video, photo or short links to urls (one per line).
- Choose Transcript language and tick the extras you want.
- Click Start and watch the log for each finished post.
- Open the Output tab and pick a table.
- Download the data as JSON, CSV or Excel.
How to get TikTok transcript data for many links
Collect bulk TikTok transcripts by adding one link per line to urls. Duplicate posts are skipped, and invalid entries become rows in the errors table.
How to get the full transcript of a TikTok video
Paste one video link and leave transcriptLanguage on original. The transcript field holds the full spoken text, and segments holds the same text in timed pieces.
How to get TikTok transcripts with timestamps
Keep includeTimestamps on. It adds segments, words and webvtt to each row. Turn it off if you only need the plain text.
How to translate TikTok video to Spanish or another language
Set transcriptLanguage to es, or to any other language in the list. TikTok provides the translation only for some posts. When it does not, the row keeps the original language and transcript_note says so.
How to transcribe TikTok link to text
Paste the link, including short share links such as vm.tiktok.com or tiktok.com/t/, or a numeric post id. Press Start and read the transcript field in the first row.
How to run a TikTok subtitles download
Leave includeTimestamps on and export the Transcripts table. The webvtt column holds the raw captions as text.
How to use the TikTok transcript extractor on short links
Short links are resolved to the post first. A short link that has expired becomes an error row with the code short_link_expired, so the rest of the list still runs.
๐ฐ How much does it cost to scrape TikTok transcripts?
Best TikTok Transcripts Scraper uses pay per event. One result is one saved post, and the price per 1,000 results depends on your Apify plan tier:
| Apify plan tier | Price per 1,000 results |
|---|---|
| Free | $3 |
| Bronze | $2.7 |
| Silver | $2.5 |
| Gold / Platinum / Diamond | $2.2 |
A post that ends in an error row is saved but not charged. A post without captions is still saved and counts as a result. There is also a small Actor Start event of $0.00005 per run start. See the Pricing tab for current rates.
โฌ๏ธ Input
The only required input is urls. As a TikTok transcripts extractor it accepts video links, photo links, short share links and numeric post ids. Paste the links for your TikTok video transcript scraper run, then pick the extras. Think of it as a TikTok video to text converter that takes links instead of uploaded files.

Example input (the pre-filled links of the input form):
{"urls": ["https://www.tiktok.com/@stoolpresidente/video/7488736374602927402","https://www.tiktok.com/@renreports/video/7307726351291960622"],"transcriptLanguage": "original","includeTimestamps": true,"includeVideoDetails": true,"includeMediaUrls": false,"proxyConfiguration": { "useApifyProxy": false }}
| Field | Type | Description |
|---|---|---|
urls | array, required | One or many TikTok video or photo links, short share links or numeric post ids. |
transcriptLanguage | string | original (default) or one of en, es, fr, pt, ar, zh, de, ja, ko, it, ru, id, hi, tr, vi, th. |
includeTimestamps | boolean | Adds timed segments, word-level timing when available and the raw WebVTT captions. Default on. |
includeVideoDetails | boolean | Adds caption, hashtags, on-screen text, stats, creator profile and music. Default on. |
includeMediaUrls | boolean | Adds cover, video, music and slideshow image links. They expire within hours. Default off. |
proxyConfiguration | object | Optional proxy settings. Leave the default if you are unsure. |
Tip: start with two or three links to check the fields before you run a long list.
โฌ๏ธ Output
The scraped results are shown as a dataset in the Storage tab. The table view is for convenience and doesn't show all the fields.

Each run builds a TikTok transcripts dataset with an overview table plus one table per section: Transcripts, Timed segments, Video details, Creators, Media links and Errors. A Run summary holds the counts for the run. Start a TikTok transcripts export from the Storage tab, or use it as a TikTok transcripts downloader by choosing JSON, CSV or Excel.
The caption field makes it a TikTok caption extractor too, and the webvtt field turns a run into a TikTok subtitle scraper.
Example transcript record (values from the dataset schema examples, not a captured run):
{"id": "7488736374602927402","url": "https://www.tiktok.com/@user/video/7488736374602927402","post_type": "video","transcript_language": "en","transcript_source": "auto_captions","transcript_word_count": 25,"scraped_at": "2026-10-21T19:57:05Z"}
Example row of the timed segments table (schema example values):
{"id": "7488736374602927402","post_type": "video","index": 1,"start": 0.38,"end": 3.6}
โ ๏ธ Limitations and error handling
A TikTok transcription scraper can only return what TikTok publishes. Posts without captions are saved without a transcript, and no_transcript_reason says why. Only public posts are read. Media links expire within hours, and one run uses one transcript language.
no_transcript_reason | Meaning |
|---|---|
photo_post | The post is a photo post, so there is no spoken text. |
no_captions | TikTok offers no captions for this post. |
caption_file_unreachable | TikTok lists captions, but the file could not be downloaded. |
no_captions_in_requested_language | No captions exist in the language you asked for. |
When a post cannot be read, its row has an error object with a code and a message. These rows are not charged and also appear in the Errors table.
error.code | What to do |
|---|---|
invalid_input | Check the entry: it must be a TikTok video or photo link, short link or numeric id. |
short_link_expired | Open the short link in a browser and paste the full post link. |
video_not_found | The video or account no longer exists. |
video_deleted | The video was deleted. |
private_video | Only the creator can see the post. |
friends_only | Only the creator's friends can see the post. |
subscribers_only | Only paying subscribers can see the post. |
blocked | The creator blocked the viewer the Actor reads as. |
age_restricted | The post is hidden from logged-out viewers. |
region_blocked | The post is not available in the region the Actor runs from. |
under_review | TikTok is reviewing the post. Try again later. |
unavailable | TikTok hides or has removed the post. |
unreadable_page | The post could not be read right now. Try again later. |
access_denied | The post could not be reached. Wait and try again, or set a proxy. |
transport_error | The connection to TikTok failed. Check the proxy settings or network and try again. |
scrape_error | An unexpected problem occurred for this post. Try again later. |
๐ Integrating Best TikTok Transcripts Scraper with other apps
Best TikTok Transcripts Scraper runs through the Apify platform, so you can start it from the Console, by API, on a schedule or from a webhook.
- Schedule it: use Apify Schedules to re-read the same list of links every day or week. This Actor has no monitor mode, so each scheduled run reads the links you give it and saves fresh rows with a new
scraped_at. - Trigger a webhook: use webhooks to tell your own service when a run finishes.
- Connect other apps: send results on with the Apify integrations for tools such as Make, Zapier or Google Sheets.
- Call the API: developers who need a TikTok transcript API can start runs over HTTP. The API tab shows ready JavaScript, Python and CLI snippets, and the same input JSON works for the TikTok transcripts API call.
- Use it from an AI client: connect the Apify MCP server to let an agent find and run the Actor.
๐ More Apify Actors by crawl_craft
| Actor | What it extracts | When to use it |
|---|---|---|
| TikTok Transcript Scraper | TikTok transcripts with video and author data. | Compare its Store page and input form with this Actor before you choose. |
| TikTok Video Scraper | Video stats, captions, hashtags, author and music data, plus downloads. | Use it when your goal is video stats and downloads from video URLs. |
| TikTok User Search Scraper | Public TikTok profiles found by keyword. | Use it to discover creators by keyword, with bio, followers and verified status. |
โ๏ธ Is it legal to scrape TikTok?
TikTok transcript scraping should cover public posts only, and Best TikTok Transcripts Scraper reads public posts and returns an error row for private ones. Results can still contain personal data such as usernames, so only collect it with a legitimate reason, consider GDPR and the platform's terms, and consult a lawyer if you are unsure. Read Apify's posts on the legality of web scraping and ethical web scraping.
โ FAQ
How much does it cost to use Best TikTok Transcripts Scraper?
It is pay per event, from $2.2 to $3 per 1,000 results depending on your plan tier, plus a small Actor Start event. See the Pricing tab for current rates.
Do I need a TikTok account, cookies or an API key?
No. The input has no login, cookie or API key field. You only add links and choose options.
Does every TikTok video have a transcript?
No. Only posts that have captions on TikTok do. Other posts are still saved, and no_transcript_reason explains why.
Is this a TikTok transcript generator that listens to the audio?
No. It reads the captions TikTok already holds for a post, whether the creator wrote them or TikTok generated them. The transcript_source field tells you which.
Can I do a TikTok transcript download as CSV or JSON?
Yes. Export TikTok transcripts to CSV, JSON or Excel from the Storage tab after the run.
Do photo posts work?
Yes, they are accepted. Photo posts carry no spoken audio, so the row usually has no transcript and no_transcript_reason says so, while title, on_screen_text, image_count and stats are filled when available.
Do I need proxies?
No. Proxy settings are optional, and the default setting leaves your own proxy off. Pick one only if you have a specific need.
How many links can I add?
The Actor sets no limit on the number of links. If you set a maximum spend for the run, it stops cleanly at that limit and keeps everything saved so far.
๐ฌ Your feedback
Found a problem or need another field? Open an issue in the Issues tab of the Actor page. For a custom solution, write to hello.crawlcraft@gmail.com.