TikTok Subtitles Extractor - Download Captions from Any Video avatar

TikTok Subtitles Extractor - Download Captions from Any Video

Pricing

from $1.99 / 1,000 results

Go to Apify Store
TikTok Subtitles Extractor - Download Captions from Any Video

TikTok Subtitles Extractor - Download Captions from Any Video

TikTok Subtitles Extractor downloads captions and transcripts from any TikTok video, returning subtitle text, format and available languages. 🎬 Great for content repurposing, SEO transcripts, accessibility and video analysis.

Pricing

from $1.99 / 1,000 results

Rating

0.0

(0)

Developer

Scrapers Hub

Scrapers Hub

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Categories

Share

🎬 TikTok Subtitles Extractor – Download Captions & Transcripts from Any Video

The TikTok Subtitles Extractor downloads the captions attached to any public TikTok video and returns them as clean plain text or as a timestamped SRT subtitle file. Paste in one URL or a list of hundreds, choose your preferred language, and the actor pulls both creator-uploaded subtitles and TikTok's auto-generated captions, strips the WebVTT markup, and hands back a transcript you can search, translate, summarise or feed into a language model.

Video is the hardest content format to analyse at scale precisely because the words live in an audio track rather than in text. This TikTok subtitles extractor closes that gap. Social listening teams get searchable transcripts of what creators actually say. SEO and content teams get raw material for repurposing short-form video into blog posts and newsletters. Accessibility teams get caption files. Researchers get a text corpus from a platform that otherwise resists text analysis. Every result also lists the languages available for that video, so you know exactly what other caption tracks exist.


πŸ“Š What Data Can You Extract with This TikTok Subtitles Scraper?

Each dataset row corresponds to one TikTok video URL you submitted. The fields group into four clear categories.

CategoryFieldsWhat You Get
πŸ”— Video identityurlThe TikTok video URL the captions were extracted from
βœ… Result statesuccess, messageWhether extraction succeeded, and the failure reason when it did not
πŸ“ Caption contentsubtitle, formatThe extracted transcript text, and whether it is plain text or timestamped SRT
🌍 Language coverageavailableLanguagesEvery caption track the video exposes, each with a language code and short name
πŸ•’ Run metadatascrapedAtISO timestamp recording when the extraction was performed

The availableLanguages array is the field worth paying attention to. It tells you not just what you received but what else exists β€” so if a video carries English, Spanish and auto-generated Portuguese tracks, you can see that in a first pass and re-run with a different language value to capture the ones you want, rather than guessing.


🌟 Key Features of the TikTok Subtitles Extractor

FeatureDescription
πŸ“‹ Bulk URL processingSubmit an array of TikTok video URLs and the actor works through every one of them in a single run
πŸ“„ Two output formatsChoose text for a clean paragraph transcript, or srt for a timestamped subtitle file ready for video editors
πŸ—£οΈ Language preference matchingSet your preferred language code and the extractor picks the closest matching caption track from what the video offers
πŸ”„ Automatic fallbackIf your preferred language is unavailable, it falls back to the first available track rather than returning nothing
πŸ€– Auto-caption supportPulls both creator-uploaded subtitles and TikTok's automatically generated captions in one pass
🌍 Language discoveryReturns the full availableLanguages list per video so you can see every caption track that exists
🧹 Clean text conversionWebVTT cue markers, timing lines and duplicate cue text are stripped in text mode, leaving readable prose
πŸ›‘οΈ Per-video error isolationA private, deleted or caption-free video returns success: false with a message, and the batch continues
🌐 Residential proxy routingRequests are routed through Apify's residential proxy network by default, improving reliability on a heavily rate-limited platform

πŸš€ Why Choose This TikTok Subtitles Extractor?

Transcripts without transcription cost. Running audio through a speech-to-text model is slow and expensive at volume. TikTok already generates captions for a large share of videos, and this extractor simply retrieves them β€” which means you get text in seconds per video rather than minutes, with no per-minute transcription bill.

Both formats, one actor. Plain text is what you want for search indexing, LLM input and content analysis. SRT is what you want for re-uploading a video with captions, editing in Premiere or DaVinci, or generating localised subtitle files. The format input switches between them without any post-processing on your side.

Honest about what it found. Rather than silently returning an empty string, every row carries a success flag, a message on failure, and an availableLanguages list on success. You always know whether a blank transcript means the video has no captions or that something went wrong fetching them.

Handles the awkward input shapes. The actor accepts startUrls in Apify's standard request-list format, a plain urls array, or a single url string. Whichever shape your upstream system produces, it works without a translation layer.


πŸ“₯ Input

The TikTok subtitles extractor accepts video URLs in three interchangeable shapes, plus format, language and proxy controls.

{
"startUrls": [
{ "url": "https://www.tiktok.com/@example/video/7300000000000000000" }
],
"format": "text",
"language": "en",
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}

πŸ”§ TikTok Subtitles Extractor Input Fields

FieldTypeRequiredDefaultDescription
startUrlsarray❌ No[]List of TikTok video URLs in Apify request-list format, each an object with a url key.
urlsarray❌ Noβ€”Plain array of TikTok video URL strings. Used when startUrls is empty.
urlstring❌ Noβ€”A single TikTok video URL. Used when neither startUrls nor urls is provided.
formatstring❌ No"text"Output format for the transcript: text for clean prose, srt for timestamped subtitles.
languagestring❌ No"en"Preferred caption language code, for example en, es, fr, hi, bn, ar, ur.
proxyConfigurationobject❌ No{"useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"]}Apify proxy settings used for the caption requests.

At least one of startUrls, urls or url must be supplied β€” the run exits with an error in the log if no URLs are found.

πŸ’‘ Input Examples

Single video, plain text transcript

{
"url": "https://www.tiktok.com/@example/video/7300000000000000000",
"format": "text",
"language": "en"
}

Bulk batch as SRT subtitle files

{
"urls": [
"https://www.tiktok.com/@creator1/video/7300000000000000001",
"https://www.tiktok.com/@creator2/video/7300000000000000002",
"https://www.tiktok.com/@creator3/video/7300000000000000003"
],
"format": "srt",
"language": "en"
}

Non-English caption extraction

{
"startUrls": [
{ "url": "https://www.tiktok.com/@ejemplo/video/7300000000000000004" }
],
"format": "text",
"language": "es"
}

πŸ“€ Output

Each dataset item is the caption extraction result for one TikTok video URL.

{
"url": "https://www.tiktok.com/@example/video/7300000000000000000",
"success": true,
"format": "text",
"subtitle": "So here's the thing nobody tells you about starting a small business. Your first year is not about profit, it's about learning which customers actually come back...",
"availableLanguages": [
{ "code": "en-US", "name": "en" },
{ "code": "es", "name": "es" }
],
"scrapedAt": "2026-08-17T09:41:22.518000"
}

When a video cannot be processed, the actor returns a failure record instead:

{
"url": "https://www.tiktok.com/@example/video/7300000000000000009",
"success": false,
"message": "Unable to extract video information: video unavailable",
"scrapedAt": "2026-08-17T09:41:31.204000"
}

🧾 TikTok Subtitles Extractor Output Fields

FieldTypeDescription
urlstring | nullCanonical URL of the scraped item β€” the TikTok video processed.
successboolean | nullWhether the caption extraction operation succeeded.
formatstring | nullFormat of the item β€” text or srt, matching the requested output format.
subtitlestring | nullSubtitle of the item β€” the extracted transcript, cleaned to prose or converted to SRT.
availableLanguagesarray | nullAvailable languages of the item, each an object with a code and a short name.
scrapedAtstring | nullWhen this record was scraped, as an ISO timestamp.
messagestring | nullMessage of the item β€” present on failure records, describing what went wrong.

πŸ’» How to Use the TikTok Subtitles Extractor (Step by Step)

Step 1: Gather the TikTok Video URLs

Collect the full canonical video URLs you want transcripts for. The reliable format is the one containing the creator handle and the numeric video identifier, which you get from the Copy Link option on the video itself or from the address bar on the web player. Shortened share links generally resolve, but the canonical form is the safer input for large batches. If your URLs come from an upstream discovery step β€” a hashtag crawl, a competitor watchlist, an internal content calendar β€” export them as a plain list first.

Step 2: Pick the Input Shape That Fits Your Pipeline

The actor accepts three interchangeable shapes and checks them in order. startUrls is Apify's standard request-list format and is what the Console's URL editor produces, so it is the natural choice for manual runs. urls is a plain string array and is easiest to generate from code or a spreadsheet export. url takes a single string and suits quick one-off checks. Use whichever your upstream system already produces rather than converting between them.

Step 3: Choose Text or SRT Output

This choice depends entirely on what happens downstream. Set format to text when the transcript is going into a search index, an analytics pipeline, a language model prompt, or any workflow where timing information is noise. Set it to srt when the output will be loaded into a video editor, uploaded alongside a re-published video, or used as the basis for a translated subtitle track β€” SRT preserves cue numbering and timecodes that text mode deliberately discards.

Step 4: Set Your Preferred Caption Language

The language input takes a short code such as en, es, fr, hi, bn, ar or ur. The extractor expands your preference into a search list covering common regional variants β€” asking for en will also match en-US and en-GB tracks, for instance β€” and picks the best match from what the video offers. Crucially, if nothing matches it does not fail: it falls back to the first available caption track and logs that it did so, which means you still get content and can see from availableLanguages what language you actually received.

Step 5: Run the Extractor and Follow the Log

Start the run from the Console or trigger it over the API. The log reports each URL as it begins processing, notes which caption file it matched for your language preference, and records any fallback decisions. Results are pushed to the dataset immediately after each video rather than being batched until the end, so on a long list you can start reviewing early transcripts while later videos are still being fetched.

Step 6: Handle Videos Without Captions

Not every TikTok video has captions. Videos with no speech, videos where the creator disabled captions, and videos too new for auto-caption generation to have completed will return success: true with an empty subtitle, or success: false with an explanatory message if the fetch itself failed. Filter your dataset on both conditions before analysis so empty results do not distort word counts or sentiment aggregates.

Step 7: Export and Put the Transcripts to Work

Export the dataset as JSON, CSV or Excel from the Console, or pull it through the API. For content analysis, concatenate the subtitle values keyed by url and run your keyword, entity or topic extraction over the corpus. For accessibility or republishing work, write each SRT-format subtitle to its own .srt file named after the video identifier so editors can attach them directly.


πŸ”Œ API Access & Integrations

Extract captions and receive dataset items in a single synchronous call:

curl -X POST "https://api.apify.com/v2/acts/scrapers-hub~tiktok-subtitles-extractor---download-captions-from-any-video/run-sync-get-dataset-items?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"urls": [
"https://www.tiktok.com/@example/video/7300000000000000000"
],
"format": "text",
"language": "en"
}'

The same run in Python with the official client, writing SRT files to disk:

from apify_client import ApifyClient
client = ApifyClient("YOUR_TOKEN")
run_input = {
"urls": [
"https://www.tiktok.com/@creator1/video/7300000000000000001",
"https://www.tiktok.com/@creator2/video/7300000000000000002",
],
"format": "srt",
"language": "en",
}
run = client.actor(
"scrapers-hub/tiktok-subtitles-extractor---download-captions-from-any-video"
).call(run_input=run_input)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
if not item.get("success"):
print("FAILED", item.get("url"), item.get("message"))
continue
video_id = item["url"].rstrip("/").split("/")[-1]
with open(f"{video_id}.srt", "w", encoding="utf-8") as fh:
fh.write(item.get("subtitle") or "")
print(video_id, [lang["code"] for lang in item.get("availableLanguages") or []])

The actor also connects to Zapier, Make, Google Sheets, Slack and any custom endpoint through Apify webhooks, so fresh transcripts can be appended to a content spreadsheet or posted into a team channel the moment a run finishes.


πŸ’‘ Best Use Cases for TikTok Subtitle and Caption Data

πŸ”Ž Social Listening and Brand Monitoring

Text is searchable in a way that video is not. Extracting the subtitle field across a set of videos mentioning your brand, product category or campaign hashtag lets you run keyword and sentiment analysis over what creators actually say on camera, rather than inferring it from the caption text under the post.

✍️ Content Repurposing and SEO

A three-minute explainer video contains enough spoken content for a blog post, a newsletter section and a dozen social captions. Pulling the transcript in text format gives you that raw material immediately, and pairing it with url keeps every derived piece attributed back to its source video.

β™Ώ Accessibility and Caption File Generation

Teams republishing TikTok content to other platforms need caption files that meet accessibility requirements. Running the extractor in srt mode produces timestamped subtitle files ready to attach in a video editor or upload alongside the video, with availableLanguages showing which localisations already exist.

🌐 Multilingual Content and Translation Workflows

The availableLanguages array reveals every caption track a video carries. Running a first pass to discover coverage, then targeted passes with different language values, builds a parallel corpus you can use for translation quality checks or for deciding which markets a creator already reaches.

πŸ“ˆ Competitor and Creator Analysis

Analysing what high-performing creators actually say β€” their hooks, their structure, their calls to action β€” is far easier over text than over video. Batch-extract transcripts for a competitor's recent uploads and compare opening lines in the subtitle field against engagement data from your own analytics.

πŸ€– Training Data and LLM Pipelines

Short-form video transcripts are a rich source of colloquial, current language. Because each row pairs subtitle with url and scrapedAt, the output is already structured for ingestion into a vector store or fine-tuning corpus with full provenance and recency metadata attached.

πŸ“š Academic and Market Research

Researchers studying discourse, misinformation, product trends or public health messaging on short-form video need text to work with. This TikTok subtitles extractor converts a sampled set of videos into an analysable corpus, with the success and message fields documenting exactly which items in the sample could not be retrieved.


βš™οΈ Tips for Better TikTok Subtitle Extraction Results

  • Use canonical video URLs. The full form containing the creator handle and numeric video identifier is the most reliable input. Shortened and redirected share links usually work but add a failure mode you do not need on large batches.
  • Check availableLanguages before assuming a language is missing. A first exploratory run tells you exactly which tracks exist across your video set, so subsequent runs can target real languages instead of guessing.
  • Expect empty transcripts on some videos. Music-only clips, silent visual content and very recently posted videos legitimately have no captions. Filter on empty subtitle values rather than treating them as errors.
  • Batch in moderate groups. TikTok rate-limits aggressively. Splitting a very large URL list across several runs, rather than submitting thousands at once, produces a better overall success rate.
  • Keep the residential proxy default. The default proxy configuration uses residential addresses, which is materially more reliable on this platform than datacentre routing. Change it only if you have a specific reason.
  • Choose the format at input time, not afterwards. Converting SRT to plain text later means writing your own cue-stripping logic. Setting format correctly on the run avoids that work entirely.

πŸ› οΈ Troubleshooting

Why is the subtitle field empty even though success is true? The video was reached successfully but exposed no caption files. This happens with music-only clips, videos where the creator turned captions off, silent or purely visual content, and videos posted so recently that automatic caption generation has not finished. Check availableLanguages β€” if it is also empty, the video genuinely has no caption tracks.

Why did a video return success: false with a message about being unavailable? The video is private, has been deleted, is restricted in the region the proxy exited from, or the request was blocked. The message field carries the underlying reason. Re-running the failed URLs later, in a smaller batch, resolves transient blocks; genuinely removed videos will keep failing.

Why did I get captions in a different language than I requested? The extractor falls back to the first available caption track when your preferred language is not offered by the video, and logs that it has done so. This is deliberate β€” returning something useful beats returning nothing. The availableLanguages array shows what the video actually had.

Why does the SRT output look different from the text output for the same video? They are produced by two different conversion paths from the same source WebVTT file. Text mode strips cue numbers, timecodes and repeated cue text to produce readable prose. SRT mode preserves the cue structure and timings and reformats them into SRT syntax. Neither adds or removes spoken content.

Why are several videos in my large batch failing? Rate limiting is the usual cause. TikTok restricts high-frequency automated access, and although requests are routed through residential proxies, a very large single run can still trigger throttling. Splitting the list into smaller runs spaced apart, and retrying only the failures, generally recovers most of the missing transcripts.


❓ Frequently Asked Questions About TikTok Subtitles Extraction

What does this TikTok subtitles extractor do? It takes public TikTok video URLs, retrieves the caption tracks attached to each video β€” both creator-uploaded subtitles and automatically generated ones β€” and returns them either as clean plain text or as a timestamped SRT subtitle file, along with a list of every caption language the video offers.

Does it transcribe the audio itself? No. It retrieves captions that already exist for the video. That is why extraction is fast and inexpensive compared with running speech-to-text, and also why videos with no caption track return an empty transcript.

Can I download captions from any TikTok video? You can extract captions from any publicly accessible video that has them. Private videos, deleted videos and region-restricted videos will return a failure record with an explanatory message, and videos with no caption track will return an empty subtitle.

What is the difference between the text and SRT output formats? Text mode strips all cue markers, timecodes and duplicate cue lines to produce continuous readable prose, suited to search indexing and analysis. SRT mode keeps the timing information and formats it as a standard subtitle file that video editors and players can load directly.

How do I get subtitles in a specific language? Set the language input to the language code you want, such as es for Spanish or hi for Hindi. The extractor expands common regional variants automatically and picks the best match, falling back to the first available track if your preference is not offered.

How can I find out which languages a video has captions in? Every successful result includes an availableLanguages array listing each caption track with its language code and a short name. A single exploratory run over your video set maps the full language coverage before you commit to targeted extraction runs.

How many TikTok videos can I process in one run? There is no fixed limit β€” pass as many URLs as you need. In practice, moderate batch sizes produce better success rates than very large ones, because TikTok rate-limits high-frequency automated requests.

Does the TikTok subtitles extractor need a TikTok account or login? No. It accesses only publicly available video pages and their caption files. There is no authentication, and no account credentials are ever required or accepted.

Which input field should I use for my URLs? Use startUrls for the Apify Console's standard URL editor, urls for a plain string array generated from code or a spreadsheet, or url for a single video. The actor checks them in that order and uses whichever it finds first.

Can I configure the proxy settings? Yes. The proxyConfiguration input accepts standard Apify proxy settings and defaults to the residential group, which is the most reliable option for this platform. Most users should leave the default in place.

Are auto-generated captions as accurate as uploaded ones? Automatically generated captions are produced by speech recognition and can contain errors, particularly with strong accents, background music, overlapping speech or specialised vocabulary. Creator-uploaded subtitles are usually more accurate. The extractor returns whichever track best matches your language preference and does not distinguish between the two in the output.

Can I use the extracted transcripts commercially? The transcripts reproduce the creator's spoken words, which are their copyrighted content. Analysis, research and internal use are generally low risk, but republishing or commercialising substantial portions of someone's transcript may require permission. Take your own legal advice for your specific use.

In what formats can I export the caption data? The Apify dataset supports JSON, JSONL, CSV, Excel, XML and RSS export from the Console, plus programmatic access through the dataset API and the apify_client library, as shown in the API section above.

Can I schedule the TikTok subtitles extractor to run automatically? Yes. Apify schedules trigger the actor on any cron expression, and webhooks can notify your systems when a run succeeds β€” useful for keeping a transcript archive of a creator's uploads current.

Why would I want transcripts rather than the video captions shown on screen? On-screen captions are burned into the visual and cannot be searched, indexed, translated or analysed programmatically. A text transcript can be, which is what makes video content usable in search systems, analytics pipelines and language model workflows.


πŸ†˜ Support & Feedback

Run into an error, seeing failures on videos you know are public, or getting an unexpected caption language? Open a ticket on the Issues tab of this actor with the video URL and the run ID. That is the fastest route to a fix and leaves a public record other users can benefit from.

Need something custom? Bulk transcript archiving, additional output formats, translation of extracted captions, or a private variant integrated with your content pipeline β€” email scraperhubapi@gmail.com with a description of what you need.

If this TikTok subtitles extractor saves you time, please leave a review on the actor page. Ratings and written feedback genuinely shape what gets improved next.


βš–οΈ Disclaimer

This TikTok subtitles extractor accesses only publicly available videos and the caption files those videos publish. It does not authenticate, does not access private or restricted accounts, and does not bypass any access control or technical protection measure.

Subtitles and transcripts reproduce a creator's spoken words and are protected by copyright belonging to that creator. Extracting captions does not transfer any rights. Internal analysis, research, accessibility work and quotation within fair dealing or fair use limits are generally appropriate; wholesale republication or commercial exploitation of another creator's transcript may require their permission. You are responsible for making that assessment.

You are also responsible for ensuring your use complies with TikTok's Terms of Service and any applicable platform policy, as well as with the law in your jurisdiction. Where extracted captions contain personal data β€” names, contact details, or statements about identifiable individuals β€” you act as the data controller for that processing and must ensure you have a lawful basis under the GDPR, the UK GDPR, the CCPA or any other applicable privacy regime, apply data minimisation, and honour data subject access and erasure requests.

If you are a creator who believes content extracted through this actor should be removed, or you have any other privacy or rights concern, contact scraperhubapi@gmail.com and the request will be reviewed promptly.