YouTube, TikTok & Reels Transcript — Video to Text + Hooks avatar

YouTube, TikTok & Reels Transcript — Video to Text + Hooks

Pricing

from $15.60 / 1,000 full transcripts

Go to Apify Store
YouTube, TikTok & Reels Transcript — Video to Text + Hooks

YouTube, TikTok & Reels Transcript — Video to Text + Hooks

Turn YouTube, Shorts, TikTok and Instagram Reels URLs into text: timecoded transcript sentences, full transcript, the opening hook typed and scored, on-screen text, keywords, hashtags and chapters. Captions first, Whisper when there are none. Batch input, pay per result.

Pricing

from $15.60 / 1,000 full transcripts

Rating

0.0

(0)

Developer

daehwan kim

daehwan kim

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Paste YouTube videos, YouTube Shorts, TikTok videos and Instagram Reels — up to 200 per run — and get every video back as text: timecoded transcript sentences, the full transcript, the opening hook (typed and scored), on-screen text read from the frames, keywords, hashtags and chapters, plus the video's metadata (title, length, views, likes, comments, publish date, author).

Captions are used when the video has them (fast, exact); otherwise the audio is transcribed with Whisper. One run can mix all three platforms.

This Actor is an independent, unofficial tool. It is not affiliated with, endorsed by, or sponsored by YouTube, Google, TikTok, ByteDance, Instagram or Meta. It reads public videos as a logged-out visitor: no login, no cookies, no CAPTCHA solving. It extracts text only — no video or audio file is stored in your dataset or redistributed. You are responsible for having the right to process the videos you submit, for complying with each platform'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

  • Short-form creators and social media managers — study the first 3 seconds of winning Reels and TikToks: what was said, which hook device was used, what text was on screen.
  • Marketers and agencies — turn competitor videos into scripts, keywords and hashtags in one pass.
  • Researchers and AI builders — clean, timecoded transcripts ready for search, RAG or summarising.
  • YouTubers — chapter lines you can paste straight into a description.

What one run returns

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

rowTypeOne row perMain fields
videovideovideoTitle, durationSec, viewCount, likeCount, commentCount, publishedAt, author, videoDescription, thumbnailUrl
transcript-segmentspoken sentencetimecode, startSec, endSec, segmentText, wordCount
transcriptvideotranscript (full text), wordCount, speechRateWpm, language, engine, truncated
hookvideohookText (first N seconds), hookTypes (question, number, contrast, promise), hookScore 0-100, firstWordSec, onscreenTextInHook
onscreen-textdistinct on-screen text blockonscreenText, firstSeenSec, lastSeenSec, frames, ocrConfidence
keywordsvideokeywords, keywordDetails (count and timestamps), hashtags
chapterchapterchapterTitle, startSec, endSec, youtubeChapter (e.g. 00:00 What's up guys…)
noticemessagenoticeCode, message — never charged

engine tells you where the words came from: youtube-captions, youtube-auto-captions or faster-whisper-base / faster-whisper-tiny.

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, plus 10 when the first word lands within one second and 10 when the hook is 20 words or fewer. The rules are English; other languages still get the hook text and timing.

Pricing (pay per event)

EventCharged perUSD (FREE plan)BronzeSilverGold+
run-startedrun0.0050.0040.003250.0026
video-resolvedvideo metadata row0.010.0080.00650.0052
transcript-segmenttranscript sentence row0.0050.0040.003250.0026
transcript-fullfull-transcript row (one per video)0.030.0240.01950.0156
hook-extractedhook row (one per video)0.030.0240.01950.0156
onscreen-texton-screen text block row0.010.0080.00650.0052
keywords-hashtagskeywords row (one per video)0.020.0160.0130.0104
chapter-detectedchapter row0.010.0080.00650.0052

What is charged and what is not.

  • A row written to the dataset is charged once under its event. The same video submitted twice (for example a Shorts link and a watch link of the same video) is processed and charged once.
  • run-started is charged once when at least one supported URL is accepted and work begins.
  • A video the platform does not serve to a logged-out visitor (private, removed, region-locked, login-walled) produces a video-unavailable notice and no charge for that video.
  • Notice rows (noticeCode: invalid URL, video unavailable, no speech, on-screen text skipped, spending limit) are messages, never charged.
  • Switch layers off to pay only for what you need; the video metadata row is always delivered.
  • When your maximum charge per run is reached the run stops paid work and ends with a notice row.

Example: a 60-second Short with every layer on — 15 sentences, 3 on-screen text blocks, 3 chapters: start $0.005 + video $0.01 + sentences $0.075 + full transcript $0.03 + hook $0.03 + on-screen text $0.03 + keywords $0.02 + chapters $0.03 = about $0.23. Full transcript only: $0.005 + $0.01 + $0.03 = $0.045 per video.

Input

{
"videoUrls": [
"https://www.youtube.com/shorts/C4exbdl5H-s",
"https://www.tiktok.com/@tiktok/video/7681695065927912735",
"https://www.instagram.com/reel/Da_ZgEaPvCN/"
],
"layers": ["transcriptSegments", "transcriptFull", "hook", "onscreenText", "keywords", "chapters"],
"language": "auto",
"hookSeconds": 3,
"whisperModel": "base"
}
FieldDefaultMeaning
videoUrlsYouTube (watch, Shorts, youtu.be), TikTok (video pages, vm./vt. short links), Instagram (reel, p, tv). Up to 200.
layersallWhich rows to produce.
languageautoTwo-letter code to pick a caption track or force Whisper's language.
hookSeconds3Hook window, 1-15 seconds.
whisperModelbasebase (more accurate) or tiny (faster), used only when a video has no captions.
ocrMaxVideoSeconds180Longer videos skip the on-screen text layer.
timeoutPerVideo240Transcription time limit per video; partial transcripts are marked truncated.
proxyConfigurationResidentialUsed only as a fallback when a platform refuses the direct request.

Output example

A real hook row from the default input:

{
"rowType": "hook",
"platform": "tiktok",
"videoUrl": "https://www.tiktok.com/@tiktok/video/7681695065927912735",
"hookText": "Hey, it's Alex Warren. I'm here with TikTok to go through the search files to see what you guys have been looking up about me.",
"hookTypes": [],
"hookScore": 10,
"firstWordSec": 0,
"hookWordCount": 25,
"onscreenTextInHook": ["I'm here with TikTok", "to see what you guys"],
"engine": "faster-whisper-base",
"language": "en"
}

The default input (one Short, one TikTok, one Reel) returns about 115-130 rows in under two minutes.

Limits worth knowing

  • Public videos only. Instagram and TikTok sometimes refuse logged-out visitors, and YouTube blocks many cloud IPs; the Actor retries through your proxy once, and videos that still fail get a free video-unavailable notice.
  • On-screen text uses English OCR on one frame every 2 seconds (up to 60 seconds of OCR per video); stylised or fast-moving captions can be missed or partly read. When a video is reachable only through the proxy, only its audio is fetched and on-screen text is skipped with a free notice.
  • Music-only or silent videos return metadata, on-screen text and keywords from hashtags, with a free no-speech notice.
  • Whisper transcription runs on CPU: expect roughly 5-10 seconds per minute of speech with base.

Runs on the Apify platform

Schedule runs, call the Actor from the API, or connect it to Make, Zapier, n8n or an AI agent through the Apify MCP server. Export results as JSON, CSV or Excel.

Leave a review

A short review on the Reviews tab, good or bad, helps other people find this Actor and tells us what to build next. Found a bug or need a feature? Open an issue on the Issues tab and we'll look into it.