TikTok Transcript Scraper โ€“ Text & Timestamps avatar

TikTok Transcript Scraper โ€“ Text & Timestamps

Pricing

from $1.50 / 1,000 successful native transcripts

Go to Apify Store
TikTok Transcript Scraper โ€“ Text & Timestamps

TikTok Transcript Scraper โ€“ Text & Timestamps

Get clean TikTok transcript text and timestamped segments from public videos. Add video URLs or IDs, choose a language, and pay only when a transcript is returned.

Pricing

from $1.50 / 1,000 successful native transcripts

Rating

0.0

(0)

Developer

Chronometrica

Chronometrica

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

21 hours ago

Last modified

Share

๐ŸŽฌ What does TikTok Transcript Scraper do?

Paste public TikTok video URLs or numeric video IDs. Get clean transcript text and timestamped segments that are ready to use.

Use it for AI workflows, research, subtitling, content analysis, spreadsheets, and batch automation. Each input creates one clear result row. A successful transcript is charged once. Every other outcome stays visible and free.

The Actor uses public, logged-out TikTok video pages. It does not require an API key, account, cookies, or login from you.

With TikTok Transcript Scraper, you can:

  • ๐Ÿค– Send clean, consistent transcript text straight into LLMs, RAG pipelines, agents, embeddings, and summaries.
  • โฑ๏ธ Get timestamps for each transcript segment for clips, quotes, NLP, and re-subtitling.
  • ๐Ÿ“ฆ Process up to 100 direct TikTok videos in one batch.
  • ๐ŸŒ Choose transcript languages in priority order without automatic translation.
  • ๐Ÿšฆ See a clear row for every input, including no-caption, duplicate, invalid, unavailable, and blocked outcomes.
  • ๐Ÿ’ธ Pay only when a non-empty transcript is returned.

โœจ Why use this Actor?

Buyers use TikTok transcripts when they need text that is easy to reuse, not a wall of unstructured output. The Actor returns a joined text field for quick use and timestamped segments for precise work.

  • Clean and consistent: one stable row shape for every submitted input.
  • Ready for automation: use the Apify API, webhooks, schedules, Make, n8n, Zapier, or your own code.
  • Clear language choice: provide preferred caption languages, or leave the list empty to use the first public caption track TikTok exposes.
  • No surprise result charges: status rows are useful audit records, but only a successful native transcript is billable.
  • Honest limits: the Actor reads public caption tracks. It does not invent text when TikTok has no public captions.

๐Ÿ“ฆ What data do I get?

Each dataset row represents one submitted TikTok video input.

Data groupFields
๐Ÿ”— Input and videoinputIndex, inputUrl, videoId, videoUrl, authorHandle, durationSeconds
๐Ÿ“ TranscriptlanguageCode, segments (startSeconds, endSeconds, text), text
๐Ÿšฆ Result and billingstatus, statusReason, isBillable, scrapedAt

Successful rows contain non-empty text plus timestamped segments. If public captions are unavailable, the transcript fields are empty or null, the row explains why, and isBillable is false.

Fields are ordered from your input, to the resolved video, selected caption, transcript, result, and scrape time. This makes CSV and spreadsheet reviews follow the same path as the Actor.

โš™๏ธ Can I use this Actor through an API?

Yes. Run TikTok Transcript Scraper in Apify Console or through:

  • Apify API
  • Python SDK
  • Node.js SDK
  • Webhooks
  • Scheduled runs
  • Make, n8n, Zapier, and other Apify integrations

That makes it a good fit for repeatable research, content pipelines, and batch workflows.

๐Ÿ’ต Pricing: successful native transcripts only

The Actor uses one Pay per Event event: Successful native transcript.

You are charged only when TikTok provides a non-empty public caption transcript. Rows for no public captions, duplicate inputs, invalid URLs, unavailable videos, or temporary public-source failures are returned without that event charge.

Apify Store tierPrice per successful transcriptPrice per 1,000 successful transcripts
No discount$0.00300$3.00
Bronze$0.00250$2.50
Silver$0.00200$2.00
Gold$0.00150$1.50
Platinum$0.00150$1.50
Diamond$0.00150$1.50

Your run can use Apify's maximum-charge limit. Start with a small batch to check caption coverage for your video list.

๐Ÿš€ How do I use TikTok Transcript Scraper?

  1. Open TikTok Transcript Scraper in Apify Console.
  2. Paste one or more public TikTok video links or video IDs.
  3. Optionally choose a caption language from the dropdown.
  4. Click Start.
  5. Open Output to inspect the transcript rows and the run summary.
  6. Download JSON, JSONL, CSV, Excel, XML, RSS, or HTML, or send results to an integration.

Here is the exact first-run example used for the release smoke:

{
"startUrls": ["https://www.tiktok.com/@hankgreen1/video/7047596209028074758"],
"preferredLanguages": ["en"]
}

โฌ‡๏ธ Input

OptionWhat it controls
startUrlsAdd 1โ€“100 public TikTok video links, short links, or video IDs. Profile, search, and sound links return a free not-supported row.
preferredLanguagesOptional. Choose common languages from the dropdown in the order you prefer. Leave this blank to use the first public caption. If unavailable, the video gets a free status. This setting never translates.

For a batch, add more direct video URLs:

{
"startUrls": [
"https://www.tiktok.com/@hankgreen1/video/7047596209028074758",
"https://www.tiktok.com/@example/video/1234567890123456789"
],
"preferredLanguages": ["en", "es"]
}

Use real public TikTok video links in your own runs. The second URL above only shows the accepted URL shape.

โฌ†๏ธ Output sample

{
"inputIndex": 0,
"inputUrl": "https://www.tiktok.com/@hankgreen1/video/7047596209028074758",
"videoId": "7047596209028074758",
"videoUrl": "https://www.tiktok.com/@hankgreen1/video/7047596209028074758",
"authorHandle": "hankgreen1",
"durationSeconds": 21,
"languageCode": "eng-US",
"text": "Example public-caption transcript text.",
"segments": [
{
"startSeconds": 0.044,
"endSeconds": 0.704,
"text": "Example public-caption segment"
}
],
"status": "succeeded",
"statusReason": "TikTok provided a public caption track that was parsed successfully.",
"isBillable": true,
"scrapedAt": "2026-07-14T00:00:00.000Z"
}

๐Ÿ“Œ Run summary

The OUTPUT record summarizes the run with buyer-facing counts:

  • inputs received and result rows written;
  • billable transcripts and free result rows;
  • duplicate inputs skipped;
  • status counts, including no-public-caption outcomes.

Use the summary to check your whole batch before loading the transcript rows into a database or automation.

๐Ÿšฆ Result statuses and billing

StatusWhat it meansCharged?
succeededTikTok exposed a public caption track and the Actor parsed a non-empty transcript.Yes
no_public_captionsThe public video resolved, but TikTok exposed no usable caption track.No
language_unavailableTikTok exposed public captions, but none matched the requested language.No
duplicate_inputThe same video was already included earlier in this run.No
not_tiktok, invalid_input, or unsupported_urlThe input was not a supported TikTok video object.No
video_unavailable, not_public, blocked_or_challenged, or extraction/caption failureThe Actor could not return a defensible public transcript for this input.No

This makes a mixed batch easy to use: successful rows contain transcripts; other rows explain what happened without pretending an empty string is a transcript.

๐Ÿ”’ Public-source boundary

TikTok Transcript Scraper reads existing public caption tracks from logged-out public TikTok video pages.

It does not:

  • generate AI speech-to-text when TikTok has no public captions;
  • download video or audio for customer transcription;
  • use TikTok accounts, cookies, private sessions, or API keys;
  • access private, login-only, deleted, or unavailable videos;
  • solve challenges or bypass access controls;
  • search TikTok, expand profiles, scrape comments, or collect private analytics.

For keyword, creator, or profile workflows, first use a discovery Actor and then send its direct TikTok video URLs to this Actor.

โš ๏ธ Limits and interpretation

Caption availability is live TikTok behavior. A public video can exist without a public caption track, and a caption track can change or disappear between runs. This Actor returns TikTok's public captions as exposed at run time; it does not promise that every public video has captions.

Use preferredLanguages when language matters. If no matching public caption track is available, the row remains free and explains the result instead of silently translating to another language.

โ“ FAQ

No. It uses logged-out public TikTok video pages and public caption tracks.

Why did I get a row without a transcript?

The row is a clear result for your submitted input. TikTok may not expose a public caption track, the input may be unsupported, or the public page may be temporarily unavailable. Check status and statusReason. These rows are not billed as successful native transcripts.

Does it translate captions?

No. It selects from public caption tracks TikTok exposes. Set preferredLanguages to choose the language you want when it is available.

Yes. Add up to 100 direct video inputs to startUrls. Each input gets one result row, so batch automation can keep its input-to-output accounting.

Why can a small run take a little time to start?

Apify starts a container for the run. Once it starts, the Actor processes up to three videos at a time. Use batches when you have more than one video.

๐Ÿ›Ÿ Support

For help, include the run ID, one affected input, the expected result, the row you received, and whether the issue is missing text, wrong language, duplicate handling, status, cost, or runtime. This gives us enough information to check the public result without asking for your TikTok account or private data.

Combine this Actor with our other social media scrapers for discovery, performance tracking, comment research, and transcript collection.

TikTok

Facebook

Instagram

YouTube