Ad creatives · Apify actor
A creative breakdown of every ad video file
Give this tool links to your ad and short-form video files and get back, for each one, the hook (what is said and written on screen in the first 3 seconds, plus the first frame), a shot list with a keyframe, on-screen text and speech per shot, the full transcript, pacing numbers and a simple hook / body / CTA structure. Each video also gets a contact sheet, a JSON file and a ready-to-paste Markdown creative brief. No LLM inside: the same video always gives the same breakdown.
What it does
Video Ad Creative Breakdown, in short
- Hook: speech and on-screen text of the first 3 seconds (you can change the length), the first frame, the time of the first cut and the first full sentence
- Shot list: start, end, length and transition (cut, dissolve, fade) of every shot, with a keyframe, its on-screen text and its speech
- Transcript with Whisper (word timing, timed sentences, language detected) and every caption, title, offer and end card with its time and position
- Pacing: shot count, cuts per minute, average and median shot length, words per minute, speech share and text-on-screen share
- Hook / body / CTA sections by a fixed rule, plus CTA signals found in the closing text and line: links, phone numbers, @handles, prices and call-to-action phrases
- A contact sheet image, a JSON file and a Markdown creative brief per video, to paste into ChatGPT, Claude or Gemini
Who it's for
Built for
Example
Input and output
One dataset row per result, downloadable as JSON, CSV or Excel, or read through the Apify API.
{
"videoUrls": ["https://your-bucket.s3.amazonaws.com/ads/summer-sale-v3.mp4"],
"language": "auto",
"ocrLanguage": "en",
"hookSeconds": 3
}From a real run on the actor's built-in sample, a 30-second public-domain CDC TV ad, shortened. The full row also has every shot, sentence and on-screen text segment.
{
"fileName": "sample-creative-ad.mp4",
"status": "ok",
"durationSeconds": 30.21,
"hook": {
"speech": "",
"onScreenTextJoined": "A TIP FROM A FORMER SMOKER",
"frameUrl": "https://api.apify.com/v2/key-value-stores/.../records/...-hook-first-frame.jpg",
"firstSentence": "My name is Brett and I used to smoke."
},
"pacing": {
"shotCount": 4, "cutsPerMinute": 6, "averageShotSeconds": 7.54,
"wordsPerMinute": 93, "speechShare": 0.398, "textOnScreenShare": 0.47
},
"cta": {
"found": true,
"startSeconds": 26.46,
"speech": "For free help visit cdc.gov slash tips",
"signals": ["link: CDC.GOV/TIPS", "link: cdc.gov", "phrase: visit"]
},
"contactSheetUrl": "https://api.apify.com/v2/key-value-stores/.../records/...-contact-sheet.jpg",
"briefUrl": "https://api.apify.com/v2/key-value-stores/.../records/...-creative-brief.md",
"billedVideos": 1,
"billedExtraMinutes": 0
}Pricing
Pay per result. Failures are free.
No subscription, no monthly minimum. Apify platform compute is included in the price; Apify also adds a tiny start fee per run ($0.00005 per GB of run memory).
| You run | You pay |
|---|---|
| 100 ads of 15-60 seconds | $2.50 |
| One 30-second ad | $0.025 |
| A 4:30 video (2 extra minutes) | $0.045 |
| A 60-second 4K ad (counts as 4 videos) | $0.10 |
3.5-minute video = $0.025 + 1 extra minute × $0.01 = $0.035
2 refused TikTok links = $0.00
Total = $1.035
Not charged:
- Refused platform links (YouTube, TikTok, Instagram, Facebook, X, Vimeo and others)
- Failed downloads: 404, private files, web pages, image or audio files instead of a video
- Unreadable files and files without a picture
Videos up to 1080p (including vertical 1080x1920) are billed as one video; larger frames count per started 2.2 megapixels, so 1440p counts 2 and 4K counts 4. Each row shows its billingMultiplier. You can set Maximum cost per run in the run options and the actor stops cleanly when it is reached.
FAQ
Questions
Can it analyse a TikTok, Reels or YouTube link?
No. It only reads video files you are allowed to process. Platform pages are refused (free) because their terms forbid downloading. Download your own ads from your ad manager or creative library and link the files.
Does it use ChatGPT or another AI to write the breakdown?
No. Speech recognition (Whisper) and text recognition (PP-OCR) run inside the actor; everything else is measured or rule-based. That keeps it cheap and repeatable, and you keep full control of the AI step.
How accurate is the hook / body / CTA split?
It is a rule, not an opinion: hook = the first N seconds, CTA = the closing on-screen text and the closing line. It is right for typical direct-response ads; for stories without an end card the CTA may be missing, and the row says so.
Does it work for videos without speech?
Yes. Music-only and silent text ads still get shots, on-screen text and pacing; the transcript says no-speech or no-audio.
What are the limits?
Whisper base can misspell brand and product names, very stylised fonts can be misread, animated titles that jump can count as cuts, and CTA phrases are matched in English. Videos up to 15 minutes by default (up to 120).
Try Video Ad Creative Breakdown on Apify
Apify's free plan includes monthly platform credit you can use to try it.
Other Kanto Labs tools
Video Frame Extractor
Scene-change keyframes, thumbnails or one frame every N seconds, plus a contact sheet.
Video to LLM Context
Scenes, one keyframe per scene and the transcript per scene, as a ready-to-paste prompt block.
Video to Slides
Every unique slide from a lecture or webinar video, as images, text and one PDF.