TikTok Video Analyzer AI: Reels Breakdown, Hook & Scenes
Pricing
from $12.00 / 1,000 ai hook analyses
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
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.
| Video | Hook (AI) | Hook type · strength | Pacing | What happens (AI) |
|---|---|---|---|---|
@nasa TikTok, 45 s | Think about hundreds of square miles where we have different assets. | curiosity_gap · 5/10 | 27 shots · 34.7 cuts/min | A 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:01 | From breaking records on Mars to lighting up the skies over Earth, NASA put on quite a show this week. | bold_claim · 6/10 | 31 shots · 14.9 cuts/min | A 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 s | Alright everybody you got to take turns in, don't jump go here | visual_only · 5/10 | 1 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),hookStrength1-10 andhookWhyin 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[]withstartSec,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) andvideoSummaryfor someone who cannot watch (visuals and speech together), plus setting, subjects, visual style and visible brands. - Pacing —
shotCount,avgShotSeconds,cutsPerMinutefrom 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,
viewsVsCreatorMedianandisOutlier(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 realshot 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
| Part | Event | Price | Charged when |
|---|---|---|---|
| Transcript (script, stats, timestamps) | transcript | $0.008 | the video was transcribed (status ok) |
| AI hook analysis | ai-analysis | $0.012 | the analysis is in the row (aiCharged: true) |
| AI scene breakdown | video-description | $0.005 | the description is in the row (descriptionCharged: true) |
| On-screen text (optional) | on-screen-text | $0.002 | includeOnScreenText is on and text was found |
| AI translation (optional) | translation | $0.004 | translateTo is set and the translation is delivered |
| Long videos (optional) | extra-minute | $0.003 / minute | each started minute past 10 minutes (maxDurationSec up to 1800) |
| Run start | apify-actor-start | $0.001 per GB | every 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_limitrows, not processed and not charged.
How to use it (no code)
- Paste video links into Video URLs — or creators into Profiles (pick the platform for plain usernames).
- Leave AI analysis and AI scene breakdown on (default). Optional: set the breakdown language, read on-screen text, translate.
- Click Start. A video usually takes well under a minute; 10 videos finish in a few minutes.
- 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 ApifyClientclient = 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
| Field | Default | What it does |
|---|---|---|
urls | — | TikTok videos, Instagram Reels, Facebook Reels / videos; short links work. |
handles | — | Creators: @name, name, profile links, tiktok:@name, ig:name. |
profilePlatform | tiktok | Platform for plain usernames: tiktok, instagram, both. |
maxVideosPerProfile | 5 | Newest (or most viewed) videos per creator, up to 500. |
analyze | true | AI hook analysis ($0.012/video). |
describeVideo | true | AI scene breakdown ($0.005/video). |
analysisLanguage | own language | Language of the analysis and breakdown (en, es, pt, id…). |
includeOnScreenText | false | Also 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). |
maxVideos | 100 | Hard cap of unique videos per run. |
maxDurationSec | 180 | Seconds 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
| Status | Charged | Meaning |
|---|---|---|
ok | transcript yes (+ AI parts when delivered) | Transcribed and analysed. |
no_speech | no transcript; scene breakdown if delivered | Music, sound effects or silence only. |
no_audio | no transcript; scene breakdown if delivered | The video has no sound track. |
photo_post | no | A TikTok photo post (slideshow) — no video. |
caption_only | no | Instagram 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_failed | no | The video could not be fetched or decoded; error says why. |
private, login_required, not_found | no | Never accessed by design / deleted / mistyped. |
budget_limit, timeout | no | Not processed: your maximum cost per run or the run timeout was reached. |
invalid, unsupported, youtube | no | Not 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_onlyand 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 (
shotssays 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.