TikTok Video Analyzer AI: Reels Breakdown, Hook & Scenes avatar

TikTok Video Analyzer AI: Reels Breakdown, Hook & Scenes

Pricing

from $12.00 / 1,000 ai hook analyses

Go to Apify Store
TikTok Video Analyzer AI: Reels Breakdown, Hook & Scenes

TikTok Video Analyzer AI: Reels Breakdown, Hook & Scenes

TikTok video analyzer & Instagram/Facebook Reels breakdown AI: transcript (script), hook analysis (type, strength, 3 new hooks), timed scene breakdown / shot list from real cuts, pacing, CTA and summary. Any username or video link. Pay per analysed video.

Pricing

from $12.00 / 1,000 ai hook analyses

Rating

0.0

(0)

Developer

Mr Zack

Mr Zack

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

TikTok Video Analyzer AI — Reels Breakdown: Hook, Scenes, Script & Pacing

Paste TikTok, Instagram Reels or Facebook Reels links — or type a creator's username — and get a full AI video breakdown of every video: the script (timestamped transcript), the hook with its type, strength and why it works, the structure beats, the CTA, a shot-by-shot scene list with what is on screen, pacing (shots and cuts per minute), what is heard, and 3 new hooks you can reuse. One row per video, ready for a creative brief, a swipe file, a spreadsheet or your own AI agent.

VideoHook (AI)Hook type · strengthPacingWhat happens (AI)
@nasa TikTok, 45 sThink about hundreds of square miles where we have different assets.curiosity_gap · 5/1027 shots · 34.7 cuts/minA small rover drives the lunar surface at night, engineers test hardware in a cleanroom and at mission consoles, an animated VIPER rover is "a scout for Moon Base"…
@nasa TikTok, 2:01From breaking records on Mars to lighting up the skies over Earth, NASA put on quite a show this week.bold_claim · 6/1031 shots · 14.9 cuts/minA presenter opens a weekly roundup; animated footage traces Perseverance's record 28.1-mile route on Mars, then the CRS-35 launch…
@nasa TikTok, 16 sAlright everybody you got to take turns in, don't jump go herevisual_only · 5/101 shot (one take)Two men in blue flight suits film themselves walking through a packed football stadium… "Roll Tide!"

(Real output of this Actor, 30 Oct 2026.)

{ "urls": ["https://www.tiktok.com/@nasa/video/7698805564884733198"] }

Price: $0.025 per fully analysed video — transcript $0.008 + AI hook analysis $0.012 + AI scene breakdown $0.005. You pay only for what is delivered: a failed analysis, a private or deleted video, a duplicate or a music-only clip without anything to describe is free. No login, no cookies, no API keys to bring.

What you get for every video

  • Script — the full spoken transcript with timestamps (segments), language detection (99 languages), words per minute, optional SRT / WebVTT subtitles. Speech recognition is OpenAI Whisper running inside the Actor.
  • Hook analysis — the opening line(s), hookType (question, bold claim, statistic, story, pain point, curiosity gap, how-to, list, controversy, demonstration, visual only), hookStrength 1-10 and hookWhy in plain words.
  • Structure beats — 3-7 parts with timestamps (hook → setup → value → proof → CTA…), so you see how the video is built.
  • CTA, format, tone, audience — ctaType + the CTA as said or shown, contentFormat (talking head, tutorial, listicle, storytime, skit, product demo, UGC ad, voiceover + B-roll, interview, news, vlog…), tone and target audience.
  • Summary, topics, key takeaways — what the video says or sells, 3-6 topic tags, 2-5 concrete takeaways.
  • 3 alternative hooks — new opening lines for the same video, ready to test.
  • Scene breakdown / shot list — scenes[] with startSec, endSec, what is shown, shotType (talking head, close-up, medium, wide, screen recording, text card, product shot, animation, archival) and the words on screen in that part.
  • What the video shows — description (people, actions, objects, place, in order) and videoSummary for someone who cannot watch (visuals and speech together), plus setting, subjects, visual style and visible brands.
  • Pacing — shotCount, avgShotSeconds, cutsPerMinute from the real cuts in the file.
  • Sound — speech yes/no and its share of the video, the music track and artist, original audio or not. Measured, never guessed.
  • Video stats — views, likes, comments, shares, saves, duration, upload date, caption, hashtags, mentions, music, creator, follower count, verified badge, viewsVsCreatorMedian and isOutlier (which videos beat the creator's usual views).

How the scenes are made (and why the timestamps are right)

Most "video analyzers" send a few evenly spaced frames to a model and ask it to guess where scenes start. This Actor first finds the real shot cuts in the video file (ffmpeg scene detection), takes a frame at every cut (plus one every few seconds inside long takes), and gives the AI up to 12 of them with their exact time spans. So startSec / endSec come from the video itself, and cutsPerMinute is measured, not estimated. Silent and music-only videos are described too — that is where a description helps most.

For AI agents & LLMs — copy this block

Actor: tactful_anvil/tiktok-video-analyzer-ai (Apify Store)
Does: TikTok / Instagram Reels / Facebook Reels link or creator username -> per video:
transcript (script) + AI hook analysis (hook, type, 1-10 strength, why, beats, CTA, format,
topics, summary, takeaways, 3 alternative hooks) + AI scene breakdown (timed scenes from real
shot cuts, what is shown, summary for non-viewers, setting, subjects, style, brands, pacing, sound).
Run: POST https://api.apify.com/v2/acts/tactful_anvil~tiktok-video-analyzer-ai/run-sync-get-dataset-items?token=APIFY_TOKEN
(sync waits up to 5 minutes; for big batches use /runs and read the dataset afterwards)
Input (every field optional; give urls and/or handles):
{
"urls": ["https://www.tiktok.com/@nasa/video/7698805564884733198",
"https://www.instagram.com/reel/DeuH0dDFGcg/",
"https://www.facebook.com/reel/1795689255099117"],
"handles": ["tiktok:@nasa", "ig:zachking"], // newest videos of these creators
"profilePlatform": "tiktok", // platform for plain usernames: tiktok | instagram | both
"maxVideosPerProfile": 5, // up to 500
"analyze": true, // AI hook analysis, $0.012/video (default on)
"describeVideo": true, // AI scene breakdown, $0.005/video (default on)
"analysisLanguage": "", // "en", "es", "pt", "id"…; empty = the video's own language
"includeOnScreenText": false, // +$0.002/video with text: onScreenText + timed onScreenTextSegments
"translateTo": "", // +$0.004/video: "es" / "pt-BR" / "Japanese" … with timestamps
"onlyPostsNewerThan": "", // "7 days", "2026-10-01" …
"sortBy": "newest", // newest | most_viewed
"minViews": 0,
"onlyNew": false, "watchlistId": "", // monitoring: skip videos already analysed, rows get isNew/firstSeenAt
"datasetId": "", // analyse every video in another scraper's dataset
"maxVideos": 100, "maxDurationSec": 180
}
Output one row per video. Key columns: url, author, status, charged, viewCount, durationSec,
transcript, segments[], hook, aiHook, aiHookType, aiHookStrength, aiFormat, aiCtaType, aiSummary,
aiAnalysis {hook, hookType, hookStrength, hookWhy, beats[{startSec,label,text}], ctaType, cta,
contentFormat, topics[], keyTakeaways[], tone, targetAudience, alternativeHooks[]},
description, videoSummary, scenes[{startSec,endSec,description,shotType,onScreenText,startsAtCut,shots}],
sound {hasAudio, speech, speechSeconds, speechShare, music, track, artist, originalAudio},
videoDescription {setting, subjects, visualStyle, visibleBrands[], shotCount, avgShotSeconds,
cutsPerMinute, framesRead, model}, aiCharged, descriptionCharged.
status "ok" = transcribed. Any other status is FREE and `error` says why.
Pricing $0.008 transcript + $0.012 AI analysis + $0.005 AI scene breakdown = $0.025 per video,
+ start fee $0.001 per GB of run memory. Each part charged only when delivered.
Not for YouTube (status youtube, free), private / followers-only videos.

MCP in one line: add https://mcp.apify.com/?tools=tactful_anvil/tiktok-video-analyzer-ai as an MCP server in Claude, Cursor, VS Code or any MCP client. Then ask: "Break down the 5 newest TikToks of @nasa — hooks, scenes and pacing."

Who is this for?

  • Creators and short-form editors — see why a video holds attention: the hook, the beats, how fast it cuts, what is on screen when.
  • UGC and performance marketers — build a swipe file of competitor ads and viral videos with hooks, CTAs, formats and shot lists, then brief your creators from it.
  • Agencies — turn a client's or competitor's last 30 videos into a creative audit in one run.
  • Researchers and AI builders — structured, timestamped video understanding (script + visuals) for datasets, RAG and agents, without running your own vision pipeline.

Example output (one row, shortened)

{
"url": "https://www.tiktok.com/@nasa/video/7698805564884733198",
"platform": "tiktok",
"author": "nasa",
"status": "ok",
"charged": true,
"durationSec": 45,
"viewCount": 266600,
"likeCount": 10500,
"hook": "Think about hundreds of square miles where we have different assets.",
"transcript": "Think about hundreds of square miles where we have different assets. Definitely mobility systems…",
"aiHook": "Think about hundreds of square miles where we have different assets.",
"aiHookType": "curiosity_gap",
"aiHookStrength": 5,
"aiFormat": "voiceover_broll",
"aiAnalysis": {
"status": "ok",
"hookWhy": "It sets up a large-scale challenge, but the opening is abstract and doesn't name the Moon or the vehicles until later, so it only weakly earns the next seconds.",
"beats": [
{ "startSec": 0, "label": "hook", "text": "Hundreds of square miles, different assets, mobility systems needed." },
{ "startSec": 15, "label": "role", "text": "VIPER acts as a scout for Moon Base." },
{ "startSec": 18, "label": "proof", "text": "Three mockups built, two of them within three weeks." },
{ "startSec": 26, "label": "goal", "text": "Going to stay and learn how to live on the Moon." }
],
"ctaType": "follow",
"topics": ["moon base", "lunar rover", "viper", "lunar south pole", "space exploration", "nasa"],
"keyTakeaways": ["VIPER is intended to act as a scout for Moon Base.", "NASA's stated goal is for humans to operate on the Moon permanently."],
"tone": "informative, optimistic",
"alternativeHooks": [
"Going back to the Moon means figuring out how to get around.",
"NASA's VIPER rover is being built to scout the Moon's South Pole first.",
"Our goal is humans living on the Moon permanently, not just visiting."
]
},
"videoSummary": "The video explains how a Moon Base will need vehicles to get around the lunar South Pole. It shows a small rover on the Moon at night, engineers testing hardware in a cleanroom and at mission consoles, and an animated VIPER rover described as a scout for Moon Base…",
"scenes": [
{ "startSec": 0, "endSec": 3.5, "description": "Close view of the full Moon with the title MOON BASE over a dark background.", "shotType": "animation", "onScreenText": "MOON BASE", "startsAtCut": false, "shots": 1 },
{ "startSec": 3.5, "endSec": 7.8, "description": "A small white wheeled rover with an American flag and Astrolab label drives across dusty lunar ground under a spotlight.", "shotType": "product_shot", "onScreenText": "where we have different assets.", "startsAtCut": true, "shots": 3 },
{ "startSec": 7.8, "endSec": 10.8, "description": "A technician in a white cleanroom suit, hairnet and headset leans over a desk with monitors and cables.", "shotType": "medium_shot", "onScreenText": "There's a lot of people who spent a lot of time", "startsAtCut": true, "shots": 4 }
],
"sound": { "hasAudio": true, "speech": true, "speechSeconds": 43.2, "speechShare": 0.96, "music": true, "track": "Strings", "originalAudio": false },
"videoDescription": {
"status": "ok",
"setting": "Lunar surface renders, cleanroom, mission control, and an American flag backdrop",
"visualStyle": "Mixed NASA footage and CGI animation with white captions, fast cuts and slow pans",
"visibleBrands": ["NASA", "Astrolab", "VIPER"],
"shotCount": 27,
"avgShotSeconds": 1.7,
"cutsPerMinute": 34.7,
"framesRead": 12,
"model": "claude-haiku-5-5"
},
"aiCharged": true,
"descriptionCharged": true
}

The Breakdown tab of the dataset shows creator, hook, hook type and strength, format, what happens, CTA, views and length as a table; the Transcripts tab shows the scripts. Export to CSV, Excel, JSON or Google Sheets.

Pricing — pay per video, only for what is delivered

PartEventPriceCharged when
Transcript (script, stats, timestamps)transcript$0.008the video was transcribed (status ok)
AI hook analysisai-analysis$0.012the analysis is in the row (aiCharged: true)
AI scene breakdownvideo-description$0.005the description is in the row (descriptionCharged: true)
On-screen text (optional)on-screen-text$0.002includeOnScreenText is on and text was found
AI translation (optional)translation$0.004translateTo is set and the translation is delivered
Long videos (optional)extra-minute$0.003 / minuteeach started minute past 10 minutes (maxDurationSec up to 1800)
Run startapify-actor-start$0.001 per GBevery run ($0.002 with the default 2 GB)

Examples: 10 videos fully analysed = $0.25. 100 videos = $2.50. Transcript + hook analysis only (describeVideo: false) = $0.020 per video. Transcript only (both AI options off) = $0.008 per video.

  • A music-only or silent video has no transcript and no hook analysis, but it still gets a scene breakdown ($0.005) — the only part that applies.
  • If the AI step fails for a video (rare), that part is free and the row says why in aiAnalysis.error / videoDescription.error.
  • Apify free plan: the first 10 videos per run get the AI analysis and the scene breakdown (transcripts are not capped). Paid plans: no cap.
  • "Maximum cost per run" is respected: videos that would go over it come back as budget_limit rows, not processed and not charged.

How to use it (no code)

  1. Paste video links into Video URLs — or creators into Profiles (pick the platform for plain usernames).
  2. Leave AI analysis and AI scene breakdown on (default). Optional: set the breakdown language, read on-screen text, translate.
  3. Click Start. A video usually takes well under a minute; 10 videos finish in a few minutes.
  4. Open the Breakdown tab, or export.

Recipes

Competitor swipe file — the 20 most viewed TikToks of three brands in the last 90 days

{ "handles": ["tiktok:@gymshark", "tiktok:@duolingo", "tiktok:@ryanair"], "maxVideosPerProfile": 20, "sortBy": "most_viewed", "onlyPostsNewerThan": "90 days" }

Daily monitor — only the videos posted since the last run, breakdown in Spanish

{ "handles": ["ig:zachking", "tiktok:@zachking"], "maxVideosPerProfile": 10, "onlyNew": true, "watchlistId": "zach-daily", "analysisLanguage": "es" }

Schedule it daily in Apify (Schedules) — every row says isNew and firstSeenAt, and videos already analysed are skipped and never charged twice.

Analyse the output of another scraper — any TikTok / Instagram / Facebook scraper's dataset:

{ "datasetId": "YOUR_DATASET_ID", "maxVideos": 200 }

Hooks only, cheaper — { "urls": [...], "describeVideo": false } ($0.020/video). Scenes and visuals only for silent edits — keep both on; music-only clips get the scene breakdown alone.

Use it via API

curl -X POST "https://api.apify.com/v2/acts/tactful_anvil~tiktok-video-analyzer-ai/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"urls": ["https://www.tiktok.com/@nasa/video/7698805564884733198"]}'
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('tactful_anvil/tiktok-video-analyzer-ai').call({ handles: ['tiktok:@nasa'], maxVideosPerProfile: 5 });
const { items } = await client.dataset(run.defaultDatasetId).listItems();
for (const v of items) console.log(v.aiHookStrength, v.aiHook, v.videoDescription?.cutsPerMinute);
from apify_client import ApifyClient
client = ApifyClient("APIFY_TOKEN")
run = client.actor("tactful_anvil/tiktok-video-analyzer-ai").call(run_input={"urls": ["https://www.tiktok.com/@nasa/video/7698805564884733198"]})
for v in client.dataset(run["defaultDatasetId"]).iterate_items():
print(v["aiHookType"], v["aiHookStrength"], [s["description"] for s in v.get("scenes") or []])

A machine-readable run receipt is saved in the run's key-value store as SUMMARY (rows per status, how many analyses and descriptions were charged, tokens used) — it reconciles with the charged, aiCharged and descriptionCharged columns.

Input reference

FieldDefaultWhat it does
urls—TikTok videos, Instagram Reels, Facebook Reels / videos; short links work.
handles—Creators: @name, name, profile links, tiktok:@name, ig:name.
profilePlatformtiktokPlatform for plain usernames: tiktok, instagram, both.
maxVideosPerProfile5Newest (or most viewed) videos per creator, up to 500.
analyzetrueAI hook analysis ($0.012/video).
describeVideotrueAI scene breakdown ($0.005/video).
analysisLanguageown languageLanguage of the analysis and breakdown (en, es, pt, id…).
includeOnScreenTextfalseAlso read all on-screen text into onScreenText ($0.002/video with text).
translateTo—Translate the transcript with timestamps ($0.004/video).
onlyPostsNewerThan, skipPinned, minViews, sortBy—Filters for profiles and links; filtered videos are never downloaded or charged.
datasetId, datasetItems—Analyse videos from another scraper's output.
onlyNew, watchlistId—Monitoring memory; isNew / firstSeenAt on every row.
language, model, includeSrt, includeVtt, wordTimestamps, chunkWords, translateToEnglish, maxComments—Transcript options (same as the transcript engine).
maxVideos100Hard cap of unique videos per run.
maxDurationSec180Seconds of each video to process (up to 1800; past 10 minutes $0.003/minute).

Input names of other video Actors (startUrls, usernames, maxItems, resultsLimit, skipPinnedPosts, onlyReelsNewerThan, newReelsOnly…) are understood too.

Status values

StatusChargedMeaning
oktranscript yes (+ AI parts when delivered)Transcribed and analysed.
no_speechno transcript; scene breakdown if deliveredMusic, sound effects or silence only.
no_audiono transcript; scene breakdown if deliveredThe video has no sound track.
photo_postnoA TikTok photo post (slideshow) — no video.
caption_onlynoInstagram did not serve this single Reel's file without a login; the public caption is returned. Use the creator's username in Profiles instead.
blocked, network_error, geo_restricted, download_failed, transcribe_failednoThe video could not be fetched or decoded; error says why.
private, login_required, not_foundnoNever accessed by design / deleted / mistyped.
budget_limit, timeoutnoNot processed: your maximum cost per run or the run timeout was reached.
invalid, unsupported, youtubenoNot a supported link.

Every run ends SUCCEEDED with a status message like "3 transcribed (charged) · 3 described (charged) · 3 AI analyses (charged)". A bad link never fails the run.

Why this Actor

  • Scene timestamps from real shot cuts in the video file, and pacing (cutsPerMinute) measured over every cut — not estimated.
  • Silent and music-only videos are described too (scene breakdown only, $0.005) instead of being skipped.
  • The full script, not just a summary: Whisper transcript with timestamps in 99 languages, SRT / VTT on request.
  • By username: the newest or most viewed videos of any public TikTok or Instagram creator, up to 500 per profile, with date / views filters and daily monitoring.
  • $0.025 per full breakdown, billed per part and only for what is delivered — other breakdown Actors on the Store charge $0.03-$0.075 per video (Oct 2026).

Limits and honest notes

  • Public videos only. No login, no cookies, no bypassing of private accounts or age gates.
  • Instagram single Reel links sometimes need a login for the file; then the row is caption_only and free. Usernames (profile listing) work much better for Instagram.
  • TikTok profiles are occasionally hidden from servers for a moment ("not found" for a real account) — the Actor retries 3 times and says so honestly.
  • Up to 12 frames per video go to the AI (spread over the whole video, one per shot where possible), so a 3-minute video with 50 cuts gets 12 scenes that each cover several shots (shots says how many).
  • No face recognition. The AI does not name people from their faces; a name appears only when the caption, on-screen text or speech gives it.
  • The AI is Claude (Anthropic) — analysis, scene breakdown and translation. Video content is treated as material to analyse, never as instructions.
  • YouTube is not handled here.

FAQ

Is this a TikTok video analyzer or a transcript tool? Both: every row has the full script (transcript) plus the AI breakdown on top. Turn the AI options off to get transcripts only ($0.008/video).

Does it work for Instagram Reels and Facebook Reels? Yes — same breakdown for Reels and Facebook Reels / videos. For Instagram, prefer usernames over single links (see Limits).

Can I get the breakdown in another language? Yes, analysisLanguage (e.g. es, pt, de, id, ja). Quoted hooks and on-screen words stay as they are. translateTo translates the transcript itself with timestamps.

How accurate is the hook strength? It is a consistent 1-10 judgment by the same model with the same rubric for every video (specific, surprising, tension → high; slow, generic → low), with a one-sentence reason — useful for comparing videos side by side, not a prediction of views. Compare with viewsVsCreatorMedian to see what actually performed.

What is a "shot list" here? scenes[]: each entry covers a time span starting at a real cut, with what is shown, the shot type and the words on screen. videoDescription.shotCount and cutsPerMinute count every cut in the video, not only the 12 frames sent to the AI.

Can I monitor creators daily? Yes — onlyNew: true + a watchlistId, scheduled in Apify. Only new videos are processed and charged.

Can my AI agent use it? Yes — copy the block above, or connect it through the Apify MCP server.

Changelog

  • 0.1 (30 Oct 2026) — first release: transcript + AI hook analysis + AI scene breakdown from real shot cuts, pacing and sound, on by default; on-screen text, translation and long videos optional.