Best TikTok AI Transcript Extractor
Pricing
from $4.99 / 1,000 results
Best TikTok AI Transcript Extractor
Best TikTok AI Transcript Extractor converts public TikTok videos into accurate text transcripts using AI. Extract spoken content for content research, SEO, repurposing, subtitles, keyword analysis, and audience insights without manually transcribing videos.
Pricing
from $4.99 / 1,000 results
Rating
0.0
(0)
Developer
Scraper Engine
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
TikTok Transcript Extractor โ AI Transcripts, Subtitles and Metadata
Best TikTok AI Transcript Extractor turns any public TikTok video URL into a structured JSON record: a full AI-generated transcript, word-level timestamped segments, ready-to-use SRT/VTT subtitle files, and 40+ creator and engagement fields โ views, likes, follower counts, hashtags, music and more. Transcription runs locally with Whisper speech-to-text, so no third-party captioning API or account login is needed. Paste a URL, or a batch of them, and start a run to see it in action.
๐ฌ What is Best TikTok AI Transcript Extractor?
Best TikTok AI Transcript Extractor is an Apify Actor that takes TikTok video URLs and returns each video's spoken content as a clean AI transcript, alongside SRT/VTT subtitles, timestamped segments, and creator/engagement metadata โ all as one structured JSON record per video. No TikTok account or login is required; it reads the same server-rendered page data any visitor's browser already receives. It's built for content researchers, social-media and localization teams, and developers or AI engineers who want TikTok speech turned into searchable, structured text without touching a browser.
๐ What TikTok video data is publicly available to scrape?
Anyone who opens a public TikTok video in a browser, logged out, can see its caption, engagement counts, creator profile and spoken content โ nothing about a public video is hidden behind an account wall.
| Data Category | Publicly Available (no login) | Restricted |
|---|---|---|
| Caption, hashtags & spoken audio content | โ visible to any visitor; spoken audio is transcribed by this Actor via local Whisper | โ |
| Engagement counts (views, likes, comments, shares, saves) | โ | โ |
| Creator profile (username, display name, bio, verified badge, follower/heart/video counts) | โ | Full private-account details |
| Video technical specs, no-watermark playback URL & music/audio track metadata | โ | โ |
| Location tag / point of interest (when the creator adds one) | โ when present | โ |
| Public comments (pinned & creator's own) | โ best-effort | TikTok's anonymous comment endpoint occasionally rejects the request |
| Private, removed or region-locked videos | โ not accessible to any visitor | Owner or permitted region only |
| Full follower/following lists, direct messages | โ | Login required |
Best TikTok AI Transcript Extractor only returns publicly visible data โ what any visitor sees. Nothing behind a login wall.
๐ What data can I extract with Best TikTok AI Transcript Extractor?
Every processed video returns identity fields, quantitative engagement/creator stats, and the AI transcript, subtitles and media links themselves โ 51 keys in total on a successful row.
๐ชช Video & creator identity
| Field Name | Description |
|---|---|
tiktokUrl | The input URL, as submitted |
videoId | TikTok's numeric video ID |
shareUrl | Canonical https://www.tiktok.com/@user/video/id share link |
authorUsername | Creator's @handle |
authorDisplayName | Creator's display name |
authorId | Creator's numeric TikTok user ID |
videoDescription | Video caption text |
hashtags | Comma-separated hashtags pulled from the caption |
textLanguage | Detected original spoken/caption language |
createTime | When the video was posted (UTC) |
locationCreated | Country the video was created in, when TikTok reports one |
poiName | Point-of-interest name, when tagged |
poiAddress | Point-of-interest address, when tagged |
diversificationLabels | TikTok's own content-category labels |
isAd | Whether TikTok flags the video as paid/branded content |
๐ Engagement & creator stats
| Field Name | Description |
|---|---|
viewsCount | Play count |
likesCount | Like count |
commentsCount | Comment count |
sharesCount | Share count |
collectCount | Bookmark/save count (returned by TikTok as a string) |
followerCount | Creator's follower count |
authorHeartCount | Creator's total likes across all videos |
authorVideoCount | Creator's total posted video count |
authorVerified | Whether the creator has TikTok's verified badge |
authorBio | Creator's profile bio text |
isOriginalSound | Whether the audio track is an original sound |
videoHeight / videoWidth | Video resolution in pixels |
videoDuration | Video length in seconds |
fileSize | Downloaded video file size in bytes |
๐ค AI transcript, subtitles & media
| Field Name | Description |
|---|---|
transcript | Full AI-generated transcript text |
segments | Timestamped segments with per-word timestamps, confidence scores and speaker labels |
srtSubtitles | Full SRT subtitle file, inline |
vttSubtitles | Full WebVTT subtitle file, inline |
srtUrl / vttUrl / segmentsUrl | Public key-value-store download links for the same SRT/VTT/segments content |
coverImageUrl | Video thumbnail/cover image |
downloadUrl / downloadUrlNoWatermark / playUrl | Direct video playback/download URLs |
musicTitle / musicAuthor / musicUrl | The video's audio track title, artist and URL |
comments | Video comments, pinned first (only populated when comment extraction is enabled) |
pinnedComments | Just the pinned comments |
creatorComments | Just the creator's own comments on their video |
status | success or error |
errorMessage | Why a video failed, when status is error |
scrapingDate / processedAt | When the row was scraped / finished processing |
metadata | Run metadata: run ID, Actor ID, origin, and this URL's position in the run |
๐ค Add-on: Need additional TikTok data?
If you need TikTok posts scraped by profile, hashtag or search term rather than by direct link, pair this Actor with TikTok Posts Scraper. Chasing content by keyword instead of a URL you already have? TikTok Keyword Search Scraper covers that. Working across platforms too โ Instagram Transcript API & Profile Scraper - AI Video to Text applies the same local-Whisper transcription approach to Instagram Reels.
๐ ๏ธ Why not build this yourself?
TikTok's own developer platform doesn't offer a public endpoint for pulling an arbitrary video's transcript, engagement counts or creator profile by URL โ its official APIs are scoped to a connected user's own account or to vetted research partners, not to any public video you paste in. Building this in-house means reverse-engineering TikTok's server-rendered rehydration JSON, solving the SlardarWAF proof-of-work challenge TikTok's edge serves in place of the real page (a puzzle that can change shape without notice), standing up and maintaining a local Whisper speech-to-text pipeline, and rotating through no-proxy โ datacenter โ residential IPs the moment TikTok starts blocking โ all before a single transcript is stored. Best TikTok AI Transcript Extractor already does all of that: it solves the WAF challenge in pure Python, escalates proxy tiers automatically with every escalation logged, and transcribes locally so there's no per-minute third-party captioning bill. You get a stable JSON schema and skip the ongoing burden of tracking TikTok's page-layout and anti-bot changes yourself.
๐ How to use Best TikTok AI Transcript Extractor
No signup flow beyond an Apify account is required โ open the Actor and run it from the Console.
- Open Best TikTok AI Transcript Extractor on the Apify Store (or find it under Actors in your Apify Console) and click Try for free / Start.
- Provide input โ paste one link into
tiktokUrlfor a quick test, or add a list of links tobulkUrlsto process several videos in one run. Neither field is schema-required, but the run needs at least one URL to do anything; without one it logs a warning and exits with no rows. - Optionally toggle
translateToEnglishfor cross-language transcripts andincludeCommentsfor pinned/creator comments, and tuneconcurrency,requestDelay,maxRetriesorproxyConfigurationunder Networking, Proxy & Retries. - Click Start and watch the run log โ each video is transcribed and pushed to the dataset the moment it finishes, not just at the end of the run.
- Open the Output tab and browse the Overview, Transcript & Subtitles, Segments, Creator Profile, Media & Music or Comments view, or download the full dataset as JSON or CSV.
How to scale to bulk TikTok video transcript extraction
bulkUrls accepts an array of TikTok video URLs โ paste as many as you like, one per entry; duplicates are removed automatically so you're never charged twice for the same video. concurrency (1โ10, default 4) controls how many of those videos are fetched and transcribed in parallel within that single run. There's no separate pagination or search step to configure โ every URL in tiktokUrl and bulkUrls is queued and processed the same way.
๐ก What can you do with TikTok video transcript data?
- A content researcher building a searchable video archive uses
transcriptandhashtagsto index viral TikToks by topic without watching every clip. - A social media manager tracking competitors uses
viewsCount,likesCountandauthorUsernameto see which creators' hooks are actually landing, run over run. - A localization team studying international creators uses
translateToEnglishandtextLanguageto fold non-English creators into one searchable English transcript dataset. - A video editor repurposing content uses
srtSubtitles/vttSubtitlesanddownloadUrlNoWatermarkto auto-caption a clip and re-cut it for another platform without carrying over TikTok's watermark. - An AI engineer building a RAG pipeline over TikTok content uses
segments(with per-word timestamps) andtranscriptas chunked, citeable context an LLM agent can search and quote from directly.
Because every field returns as typed JSON, this dataset is also callable directly from an agent framework through the Apify MCP server โ see Integrations below.
๐ก๏ธ How does Best TikTok AI Transcript Extractor handle rate limits and blocking?
By default every request goes out with no proxy at all, for maximum speed. If TikTok's edge rejects or blocks a request (HTTP 403/429, or serves its SlardarWAF "Please waitโฆ" anti-bot challenge instead of the real page), the Actor automatically escalates: no proxy โ Apify Proxy datacenter โ Apify Proxy residential, retrying up to 3 extra times on residential with a fresh IP session per attempt. Once escalated to residential, the run stays there for every remaining video rather than dropping back down. The WAF challenge โ a client-side proof-of-work puzzle โ is solved in pure Python, no headless browser required, and each retry uses a brand-new cookie session up to maxRetries (1โ10, default 3) attempts. If a video is permanently unavailable (private, removed or region-locked), the Actor reads that from TikTok's own status code and stops retrying it immediately rather than wasting attempts. If several videos in a row fail to even fetch, the run treats that as a connectivity/proxy issue and stops queuing new videos early โ everything already collected stays safely in the dataset.
โฌ๏ธ Input
At least one of tiktokUrl or bulkUrls needs a value for a run to produce any rows; the schema itself marks no field as required.
| Parameter | Required | Type | Description | Example Value |
|---|---|---|---|---|
tiktokUrl | No | string | Single public TikTok video URL โ full link, vm.tiktok.com/vt.tiktok.com short link, or mobile URL. | "https://www.tiktok.com/@thatdudecancook/video/7649086431641521421" |
bulkUrls | No | array | One or more public TikTok video URLs to process in one run, one per entry; duplicates are removed automatically. | ["https://www.tiktok.com/@motivation_everyday80/video/7565659068153531669"] |
translateToEnglish | No | boolean | Translates transcript, segments and SRT/VTT subtitles to English regardless of the spoken language; caption/hashtags/music metadata stay in their original language. Default false. | false |
includeComments | No | boolean | Also returns the video's comments (pinned first), plus pinnedComments and creatorComments shortlists. โ ๏ธ Best-effort โ TikTok's public comment feed occasionally rejects anonymous requests; when that happens the video still succeeds, just with empty comment lists. Default false. | true |
proxyConfiguration | No | object | Apify Proxy configuration. Defaults to no proxy (useApifyProxy: false); the Actor auto-escalates to datacenter, then residential, if TikTok blocks a request. A forced tier or custom proxy URLs are honored as-is. | { "useApifyProxy": false } |
concurrency | No | integer | How many videos to fetch and transcribe in parallel. Minimum 1, maximum 10, default 4. | 4 |
requestDelay | No | number | Delay in seconds (plus jitter) before every page fetch. Minimum 0, maximum 10, default 0.5. | 0.5 |
maxRetries | No | integer | How many times to retry a blocked/failed video, with a fresh session, before giving up. Minimum 1, maximum 10, default 3. | 3 |
Example input
{"tiktokUrl": "https://www.tiktok.com/@thatdudecancook/video/7649086431641521421","bulkUrls": ["https://www.tiktok.com/@motivation_everyday80/video/7565659068153531669","https://vm.tiktok.com/ZM6abc123/"],"translateToEnglish": false,"includeComments": true,"proxyConfiguration": { "useApifyProxy": false },"concurrency": 4,"requestDelay": 0.5,"maxRetries": 3}
โฌ๏ธ Output
Each run pushes one typed JSON record per video, with a stable field set and order across runs. Results are available as JSON or CSV from the Output tab or API, or as one of six focused dataset views (Overview, Transcript & Subtitles, Segments, Creator Profile, Media & Music, Comments) plus a Full record view with every field unfiltered. The generated SRT/VTT/segments files are also stored individually in the key-value store, linked from srtUrl, vttUrl and segmentsUrl.
Example output
{"transcript": "If you wake up every day and obsess over one specific dream and put everything into achieving it, chances are you'll actually get there.","segments": [{"id": 0,"text": "If you wake up every day and obsess over one specific dream","start": 0.0,"end": 3.36,"language": "en","speaker": "SPEAKER_00","words": [{ "word": "If", "start": 0.0, "end": 0.24, "score": 0.91, "speaker": "SPEAKER_00" }]}],"srtSubtitles": "1\n00:00:00,000 --> 00:00:03,360\nIf you wake up every day and obsess over one specific dream","vttSubtitles": "WEBVTT\n\n1\n00:00:00.000 --> 00:00:03.360\nIf you wake up every day and obsess over one specific dream","tiktokUrl": "https://www.tiktok.com/@thatdudecancook/video/7649086431641521421","videoId": "7649086431641521421","shareUrl": "https://www.tiktok.com/@thatdudecancook/video/7649086431641521421","authorUsername": "thatdudecancook","authorDisplayName": "That Dude Can Cook","authorId": "6812345678901234567","videoDescription": "5-minute garlic butter shrimp pasta #cooking #recipe #shrimp","hashtags": "#cooking, #recipe, #shrimp","coverImageUrl": "https://p16-sign-va.tiktokcdn.com/obj/tos-maliva-p-0068/cover.jpeg","downloadUrl": "https://www.tiktok.com/aweme/v1/play/?video_id=7649086431641521421","downloadUrlNoWatermark": "https://www.tiktok.com/aweme/v1/play/?video_id=7649086431641521421","playUrl": "https://www.tiktok.com/aweme/v1/play/?video_id=7649086431641521421","videoHeight": 1024,"videoWidth": 576,"videoDuration": 42.5,"fileSize": 3821904,"likesCount": 284100,"commentsCount": 1893,"sharesCount": 5602,"viewsCount": 4271900,"collectCount": "61200","musicTitle": "original sound - That Dude Can Cook","musicAuthor": "That Dude Can Cook","musicUrl": "https://www.tiktok.com/music/original-sound-7649086431641521421","isOriginalSound": true,"followerCount": 3200000,"authorHeartCount": 78500000,"authorVideoCount": 612,"authorBio": "Simple recipes anyone can cook. New video every day.","authorVerified": true,"diversificationLabels": "Food, Cooking","locationCreated": "US","poiName": "","poiAddress": "","isAd": false,"textLanguage": "en","comments": [{ "text": "Pinning this recipe!", "author": "foodie_fan22", "likes": 412, "isPinned": true, "isCreator": false }],"pinnedComments": [{ "text": "Pinning this recipe!", "author": "foodie_fan22", "likes": 412, "isPinned": true, "isCreator": false }],"creatorComments": [{ "text": "Thanks for watching everyone!", "author": "thatdudecancook", "likes": 892, "isPinned": false, "isCreator": true }],"srtUrl": "https://api.apify.com/v2/key-value-stores/AbC123XyZ/records/srt-7649086431641521421","vttUrl": "https://api.apify.com/v2/key-value-stores/AbC123XyZ/records/vtt-7649086431641521421","segmentsUrl": "https://api.apify.com/v2/key-value-stores/AbC123XyZ/records/segments-7649086431641521421","scrapingDate": "2026-09-03","createTime": "2026-08-30 14:22","processedAt": "2026-09-03T09:55:54.645Z","status": "success","errorMessage": "","metadata": {"runId": "aB3dE5fG7hI9kL","actorId": "best-tiktok-ai-transcript-extractor","origin": "APIFY_PLATFORM","processingType": "tiktok-processing","urlIndex": 1,"totalUrls": 2}}
โ๏ธ How does it work?
Each request goes out through a Chrome-impersonated HTTP client, so no headless browser needs to launch. The video page's own server-rendered rehydration JSON is parsed directly out of the HTML โ the same data TikTok sends any visitor's browser, with nothing signed or session-specific to reverse-engineer. If TikTok's edge answers with its SlardarWAF "Please waitโฆ" challenge instead of the real page, the Actor solves the embedded proof-of-work puzzle in pure Python and retries in the same session. The downloaded video (or its original-sound audio, as a fallback) is then transcribed locally with faster-whisper. โ ๏ธ Transcription runs CPU-only (no GPU) on a fixed "base" model size โ that's a deliberate speed/memory tradeoff, not something the input controls. Only data that's already publicly visible is ever returned, and output field names stay the same run to run regardless of how TikTok reshuffles its page layout.
๐ Integrations
Best TikTok AI Transcript Extractor runs on the Apify platform, so it works with anything that can call Apify: a direct API call, an MCP-enabled agent, or a no-code automation tool.
๐ Calling Best TikTok AI Transcript Extractor programmatically
from apify_client import ApifyClientclient = ApifyClient("<APIFY_TOKEN>")run = client.actor("<your-username>/best-tiktok-ai-transcript-extractor").call(run_input={"bulkUrls": ["https://www.tiktok.com/@thatdudecancook/video/7649086431641521421"],"translateToEnglish": False,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["transcript"])
Works in Go, Ruby, Node.js, cURL โ any language that can make an HTTP request.
๐ค MCP integration for AI agents
Best TikTok AI Transcript Extractor is callable through the Apify MCP server, which exposes any Apify Actor as an MCP tool an agent can call directly โ no custom wrapper needed. Point an MCP-enabled client such as Claude, Cursor, or Windsurf at that server and select this Actor to run it and pull the resulting dataset back into an agent's tool calls.
๐ No-code tools (n8n, Make, LangChain)
In n8n, use the HTTP Request node pointed at the Actor's run-sync-get-dataset-items endpoint to pull transcripts straight into a workflow. In Make, the equivalent HTTP module works the same way. In LangChain, load results with an Apify dataset loader (or apify-client directly) to turn each transcript row into a Document for a retrieval chain.
โ๏ธ Is it legal to scrape TikTok video transcripts?
Scraping publicly available TikTok video data for research, analytics or archival purposes is generally lawful โ the data involved here is public and non-authenticated, exactly what Best TikTok AI Transcript Extractor returns: nothing behind a login, no private accounts, no authenticated endpoints. Because the output also includes creator and commenter identifiers โ authorUsername, authorDisplayName, authorBio, comment author handles โ it can qualify as personal data under GDPR and CCPA even though it's publicly posted. That doesn't make storing or reusing it automatically unlawful, but you do need a lawful basis for how you store and use it, and you remain responsible for complying with TikTok's own Terms of Service. Consult legal counsel if your use case involves bulk storage of personal data.
โ Frequently asked questions
What TikTok video transcript fields does Best TikTok AI Transcript Extractor return?
The top fields are transcript, segments, srtSubtitles/vttSubtitles, viewsCount/likesCount, and authorUsername. See What data can I extract above for the full 51-field breakdown.
Does Best TikTok AI Transcript Extractor require a TikTok account or login?
No. It reads TikTok's own server-rendered page data โ the same thing a logged-out visitor's browser receives โ so no TikTok account, cookie, or session token is ever needed.
How many TikTok videos can I extract in one run?
There's no fixed cap in the input schema โ bulkUrls accepts as many URLs as you paste in, deduplicated automatically. concurrency (1โ10, default 4) controls how many of them run in parallel at once.
What happens if a video is private, removed, or region-locked?
The row still appears in the dataset with status: "error" and a specific errorMessage describing TikTok's own status code, so every URL you submit is accounted for. The Actor detects this from TikTok's response and doesn't waste retries or proxy escalations on it, since no proxy tier can unlock a genuinely unavailable video.
Can I scrape multiple TikTok videos at once?
Yes โ add as many links as you want to the bulkUrls array (or combine it with a single tiktokUrl); every URL is queued and processed in the same run.
Does Best TikTok AI Transcript Extractor work with Claude, ChatGPT, and other AI agent tools?
Yes. It's reachable through the Apify MCP server for MCP-enabled clients, and callable as a plain HTTP endpoint (via apify-client or run-sync-get-dataset-items) from any agent framework.
Does Best TikTok AI Transcript Extractor return data in a format LLMs can use directly?
Yes. Typed, normalized JSON with consistent field names across runs โ no HTML parsing, no selectors. Pass transcript and segments straight to an LLM, index them into a vector store, or feed them to an agent tool.
What happens when TikTok changes its layout or anti-bot system?
The Actor's parsing and WAF-challenge handling are actively maintained, and the output schema is designed to stay stable across TikTok's page and anti-bot changes. No specific update turnaround is promised.
Can I use Best TikTok AI Transcript Extractor without managing proxies or browser infrastructure?
Yes. There's no headless browser to run or maintain, and proxy tiers (no proxy โ datacenter โ residential) are selected and escalated automatically โ you only need to touch proxyConfiguration if you want to force a specific tier.
Which TikTok video transcript fields work best for AI training data and RAG indexing?
For RAG, index transcript and segments (word-level timestamps make them citeable and clippable). For consistently structured training data across records, videoId, viewsCount, likesCount and authorVerified return as stable typed primitives on every row.
๐ Related scrapers
| Scraper Name | What it extracts |
|---|---|
| TikTok Posts Scraper | TikTok posts, video metadata and engagement from profiles, hashtags, keyword search or pasted URLs |
| TikTok Keyword Search Scraper | TikTok videos found by keyword search, with date/sort filters and region targeting |
| Instagram Transcript API & Profile Scraper - AI Video to Text | Instagram Reels/video transcripts via local Whisper, plus public profile posts |
๐ฌ Your feedback
Found a bug or missing a field? Let us know โ reach out at scrapier.io@gmail.com and we'll take a look. Reports like this directly shape what gets fixed and added next.