TikTok Transcript — Video to Text in Bulk, URLs or Profiles avatar

TikTok Transcript — Video to Text in Bulk, URLs or Profiles

Pricing

from $5.20 / 1,000 video transcribeds

Go to Apify Store
TikTok Transcript — Video to Text in Bulk, URLs or Profiles

TikTok Transcript — Video to Text in Bulk, URLs or Profiles

Turn TikTok videos into text in bulk: paste video URLs, whole @profiles (latest N videos each) or another TikTok scraper's dataset. Timecoded sentences, full transcript, the first-3-seconds hook typed and scored, and a per-profile hook and phrase summary. Captions first, Whisper when none.

Pricing

from $5.20 / 1,000 video transcribeds

Rating

0.0

(0)

Developer

daehwan kim

daehwan kim

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

8 days ago

Last modified

Share

Turn TikTok videos into text in bulk. Paste video URLs, whole @profiles (the latest N videos of each are expanded and transcribed one by one), or the dataset of another TikTok scraper — and get every video back as the full transcript and timecoded sentences, plus the video's metadata (views, likes, comments, shares, publish date, author, hashtags). Optional: the opening hook typed and scored for every video, and a per-profile summary of hooks and phrases.

Captions are used when the video has them (fast, exact, no extra fee); otherwise the audio is transcribed with Whisper and billed per started audio minute.

Free plan (preview)Paid Apify plan (Starter and up)
Videos per run1 preview video (the first URL, else the first profile's latest video)up to 500 (default 200)
What the video row holdsthe verdict only: speech or not, language, hook types, and the first words (at most 8, never more than half the transcript)full transcript, metadata, every field
Full transcript, timecoded sentence rowslocked — counted (words, sentences)delivered
Video metadata (views, likes, hashtags, description, date…)lockeddelivered
Hook rows (hooks on)locked — the hook types are shown on the video rowone hook row per video with speech
Speech-to-text minute rowsnot delivered, not chargedone row per started audio minute (videos without captions)
Profile check rowsdelivereddelivered
Profile summary (+ AI style note)counted, not madeone row per profile
Dataset rows readthe first 1,000 of a runall (up to 5,000 per dataset), 1,000 more per rows-read
Closing rowfree-plan-preview: what this run charged, the real counts of what is locked, and what the same input costs as a new paid run—
Pricethe events below at the FREE tier, from your free platform creditthe same events with plan discounts: BRONZE 20% off, SILVER 35% off, GOLD and up 48% off

A free run charges run-started, profile-checked for each profile TikTok answered for, and video-transcribed for its one preview row — about $0.02 for a URL and a profile. It ends as SUCCEEDED with a status message that says what was left out. Run the same input on a paid plan for every row.

This Actor is an independent, unofficial tool. It is not affiliated with, endorsed by, or sponsored by TikTok or ByteDance. It reads public videos as a logged-out visitor: no login, no cookies. It extracts text only — no video or audio file is stored in your dataset or redistributed (the audio used for transcription is deleted right after). You are responsible for having the right to process the videos you submit, for complying with TikTok's terms of service and with copyright and privacy law, and for how you use the output. Every result row carries this notice in its responsibility field.

Who this is for

  • Researchers and AI builders — clean, timecoded TikTok transcripts ready for search, RAG or summarising, straight from the TikTok scraper you already use. Turn hooks off and pay for transcripts only.
  • Creators and social media managers — read the first 3 seconds of a competitor's last 20 videos in one run: what was said, which hook device was used, how fast the first word comes.
  • Agencies and brands — turn a creator's whole feed into searchable scripts before a partnership.

What one run returns

Each result is its own row (rowType), so you can filter, export or join them:

rowTypeOne row perMain fields
videovideovideoUrl, author, durationSec, viewCount, likeCount, commentCount, shareCount, publishedAt, hashtags, transcript, transcriptComplete, wordCount, sentenceCount, speechRateWpm, hasSpeech, language, engine, asrMinutes, source (url / profile / dataset)
sentencespoken sentencetimecode, startSec, endSec, text, wordCount
asr-minutestarted audio minute transcribed by WhisperminuteIndex, timecode, startSec, endSec, text, wordCount
hookvideo with speech (hooks on)hookText (first N seconds), hookTypes (question, number, contrast, promise), hookScore 0-100, firstWordSec
profile-checkedprofile TikTok answered foroutcome (listed / empty / not_found), exists, videosListed
profile-summaryprofile (paid plans)hookTypeDistribution, hookTypeSharePct, avgHookScore, topHooks, commonOpeners, commonPhrases, topKeywords, topHashtags, avgSpeechRateWpm, styleSummary (AI), aiStatus; after a platform restart that cut a video's sentence rows, hookStatsUnverifiedVideos names the videos left out of the hook statistics
dataset-read1,000 dataset rows read past the first 1,000block, rowsFrom, rowsTo, videoUrlsFound
video-checkedvideo TikTok answered is not availableavailable: false, errorCode, message
noticemessagenoticeCode, message — never charged

engine tells you where the words came from: tiktok-captions or faster-whisper-base / faster-whisper-tiny. A video with no speech (music only) still gets its video row with hasSpeech: false — that verdict is part of the result.

Complete or stopped. transcriptComplete: true means the whole caption track or the whole audio is in the transcript. When Whisper runs out of timeoutPerVideo, or your maximum charge has no room for the remaining minutes, the video row says transcriptComplete: false, transcriptStoppedBy (timeout / maximum-charge) and transcribedUntilSec. Such a row is not charged as video-transcribed — only the speech-to-text minutes actually transcribed are charged.

How the hook is scored. The hook is every sentence that starts in the first hookSeconds (default 3). It is tagged with the devices it uses — a question, a number, a contrast ("but", "stop", "most people…") or a promise ("here's how", "you'll", "in 5 days") — and scored 0-100: 20 points per device, 10 if the first word comes within one second, 10 if the hook is 20 words or fewer.

Input

{
"videoUrls": ["https://www.tiktok.com/@tiktok/video/7693184538704416031"],
"profiles": ["@tiktok"],
"maxVideosPerProfile": 20,
"datasetIds": [],
"hooks": true,
"language": "auto"
}
  • profiles — @name, name or https://www.tiktok.com/@name; up to 30 per run. The latest maxVideosPerProfile public videos of each are transcribed. Each profile TikTok answers for is one profile-checked row, also when it has no public videos or does not exist.
  • datasetIds — datasets of other TikTok scrapers, read with your token. The video link is found in webVideoUrl / submittedVideoUrl (clockworks TikTok scrapers), postPage (apidojo), videoUrl, url, or built from id + the author name. The first 1,000 rows of a run are covered by the start fee; each further 1,000 is one rows-read.
  • hooks — on by default: one hook row per video with speech, +$0.024 per video on BRONZE ($0.03 FREE tier). Turn it off to pay for transcripts only.
  • startAt — skip the first N videos of this input's list (URLs, then profiles, then datasets). When a run stops at maxVideos or at your maximum charge, the notice names the exact startAt for the next run.
  • The same video from several inputs is processed and charged once.

Pricing (pay per event)

EventWhenFREE tierBRONZESILVERGOLD+
run-startedonce per run with a valid input, before the first lookup (covers the first 1,000 dataset rows)$0.005$0.004$0.00325$0.0026
profile-checkedper profile TikTok answered for (listed, empty or does not exist)$0.005$0.004$0.00325$0.0026
rows-readper started 1,000 dataset rows after the first 1,000 of a run$0.0025$0.002$0.001625$0.0013
video-transcribedper video row with a complete transcript (metadata + transcript + its sentence rows) — the main event$0.01$0.008$0.0065$0.0052
asr-minuteper started audio minute transcribed by Whisper (videos without captions only)$0.02$0.016$0.013$0.0104
hook-scoredper hook row (optional, hooks on by default)$0.03$0.024$0.0195$0.0156
profile-summaryper profile-summary row (paid plans; same price with or without the AI note)$0.05$0.04$0.0325$0.026
video-checkedper video TikTok answered is not available$0.005$0.004$0.00325$0.0026

Examples on BRONZE:

  • 100 video URLs with captions, hooks off = 0.004 + 100 × 0.008 = $0.804.
  • A profile with 20 talking videos with captions, hooks on = 0.004 + 0.004 + 20 × (0.008 + 0.024) + 0.04 = $0.688 (hooks off: $0.208).
  • A 90-second video without captions = 0.008 + 2 × 0.016 = $0.040 (+ $0.024 with its hook row).

Notice rows are free. Your maximum charge per run is checked before work starts: before each profile lookup, before each further 1,000 dataset rows, and before Whisper starts on a video (room for its row and its minutes). A hook row is bought only after the row and minutes of the videos being transcribed at that moment are covered, so a hook never takes a transcript already under way. It does spend budget that a later video could have used: with hooks on, the same maximum charge may cover fewer videos than with hooks off. To spend the whole maximum charge on transcripts, turn hooks off. When hook rows or summaries no longer fit, that layer stops and video rows go on; when video rows no longer fit, the run ends as SUCCEEDED with a notice of what was left and the startAt to continue from.

AI style note (paid plans)

When aiStyleSummary is on (default), each profile-summary row gets a three-sentence note written by Anthropic's Claude from that profile's hooks and common phrases. The hooks and phrases of that profile are sent to Anthropic's API (United States). A note that cites a number or a quote not found in the videos is dropped (aiStatus: discarded-ungrounded); the rest of the summary row is still delivered and charged as profile-summary — the note is part of that row, not a separate fee, so turning it off with "aiStyleSummary": false does not lower the summary price.

Limits

  • Public videos only; private or removed videos are reported, not transcribed.
  • TikTok's public profile page lists about 10 videos; more are read through the profile's video list when TikTok serves it. When it does not, a profile-partial notice says how many were found.
  • Profiles are read one request at a time with pauses, to keep the load on TikTok low.
  • startAt follows the order of this input's list; a profile that posted new videos since the last run shifts its list.