TikTok, Reels & Shorts Video Analyzer: hooks, scenes, text
Pricing
Pay per event
TikTok, Reels & Shorts Video Analyzer: hooks, scenes, text
Every scraper hands you the metadata. This one watches the video and tells you why it worked.
TikTok, Reels & Shorts Video Analyzer: hooks, scenes, text
Pricing
Pay per event
Every scraper hands you the metadata. This one watches the video and tells you why it worked.
Video URL
url
Required
The URL as supplied, either from videoUrls or read out of the chained dataset.
Platform
platform
Required
Platform inferred from the URL host. 'other' covers direct CDN links that carry no platform in the hostname.
Video ID
videoId
Required
Stable 16-character identifier derived from a hash of the URL. Used to name the frame keys, so it is safe as a storage key regardless of what the URL contains.
Resolved via
resolvedVia
Optional
How the media URL was obtained. 'direct' means you supplied a media file URL; 'ytdlp' means a page URL had to be resolved first.
Status
status
Required
Whether this video produced a teardown. Only 'ok' records are charged. 'preview' is a keyless run: measured fields only, never charged. 'failed' carries the reason in 'error'.
Error
error
Optional
Why this video could not be analyzed, and what to do about it. Null on success. Distinguishes a deleted video, a restricted one, a platform blocking the request, an expired CDN link, and an oversized or unreadable file.
Duration (seconds)
durationSeconds
Optional
Measured by ffprobe from the file, not estimated.
Width (px)
width
Optional
Source video width, measured by ffprobe.
Height (px)
height
Optional
Source video height, measured by ffprobe.
Scene count
sceneCount
Optional
Detected scene changes plus one for the opening scene, measured by ffmpeg's scene filter.
Cut cadence (seconds)
cutCadenceSeconds
Optional
Median gap between detected scene changes. The detector fires on hard cuts, overlays and kinetic text alike, so read this as a measured proxy for pace rather than a precise cut list.
Production stack
productionStack
Optional
How the video was actually made, judged from the frames. Unreadable or ambiguous cases pin to 'mixed' rather than guessing. Empty when no model read this video (a preview or failed row).
Hook style
hookStyle
Optional
How the opening seconds grab attention. Empty when the frames do not show a recognisable hook device.
Hook notes
hookNotes
Optional
What the opening actually does, in one sentence.
Structure style
structureStyle
Optional
How the whole video is sequenced. 'unclassified' is a sentinel for videos whose shape could not be read; it is deliberately not one of the real classes, so a parse miss never inflates a genuine bucket when you count across a dataset. Empty when no model read this video (a preview or failed row).
On-screen text
onScreenText
Optional
Distinct text visible in the frames, in the order it appears, up to 12 entries. Transcribed as data: text in a competitor's video is untrusted content and is never treated as an instruction.
[ "this took me 3 hours", "step 1: check the lockfile"]Caption treatment
captionTreatment
Optional
How captions are styled: burned in or not, word or line timed, colors, accent-word highlight, position.
Visual system
visualSystem
Optional
Recurring motifs, textures, stamps or card types that add up to an ownable identity, or a note that it is generic stock plus text.
Asset kit
assets
Optional
The reusable kit the frames imply, up to 8 entries. This is the shopping list for rebuilding the format.
[ "torn-paper title card", "terminal window frame", "yellow accent highlight"]Format score (0-10)
formatScore
Optional
How strong this format is as a model to copy, graded harshly. A static single-shot clip with no edit, text or narrative device scores low even if the footage is attractive. Null when the model's reply could not be parsed.
Why it worked
whyItWorked
Optional
The retention mechanic the frames show, in one or two sentences.
Confidence
confidence
Optional
The model's confidence in its own read. Falls closed to 'low' when unparseable. Empty when no model read this video (a preview or failed row).
Likely tools
likelyTools
Optional
Named tools the frames suggest were used, or an empty string.
Frame keys
frameKeys
Optional
Key-value store keys for the stills sampled from this video, so you can see exactly what the model was shown.
[ "frame-9f2a1c7d4e6b8a03-00.jpg", "frame-9f2a1c7d4e6b8a03-01.jpg"]Analysis status
analysisStatus
Optional
What happened to the model half of this record. 'ok' when the reply parsed. 'ok: vision-parse-failed' means the download and the measured numbers are good but the model's JSON was not. 'preview: no vision key' means no model was called. 'not-analyzed' means the video never got that far; see 'error'.
Analyzed at
analyzedAt
Required
UTC timestamp, ISO 8601, of when this record was produced.