meta-ad-builder
Publish finished creatives as live Meta (Facebook/Instagram) ads via the Meta Marketing API,…
Clone an existing video ad for a different product or offer. Analyzes the source video's style, pacing, camera work, dialogue, and tone, then adapts and generates a new Seedance 2.0 video customized for the user's product. End-to-end workflow: input video → analysis → adapted
$ npx -y skills add krusemediallc/arcads-claude-code --skill clone-ad --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/clone-adContext preview
The summary Claude sees to decide when to auto-load this skill.
Clone an existing video ad for a different product or offer. Analyzes the source video's style, pacing, camera work, dialogue, and tone, then adapts and generates a new Seedance 2.0 video customized for the user's product. End-to-end workflow: input video → analysis → adapted
name: clone-ad description: > Clone an existing video ad for a different product or offer. Analyzes the source video's style, pacing, camera work, dialogue, and tone, then adapts and generates a new Seedance 2.0 video customized for the user's product. End-to-end workflow: input video → analysis → adapted prompt → generation → delivery. Use when someone says "clone this ad", "make this ad but for my product", "recreate this video for my brand", or provides a video ad and a product image asking for a similar video.
Clone an existing video ad for a different product or offer. The agent analyzes the source video frame-by-frame, transcribes dialogue, extracts the visual style and beat structure, then generates a new Seedance 2.0 video adapted for the user's product.
**How this differs from analyze-video:**
Before starting, verify:
which ffmpeg || echo "MISSING — run: brew install ffmpeg"
python3 -c "import whisper; print('whisper OK')" 2>/dev/null || echo "MISSING — run: pip3 install openai-whisper"Both `extract-frames.sh` and whisper depend on ffmpeg. If missing, install via `brew install ffmpeg` before proceeding.
Collect from the user:
| Input | Required | Notes | |-------|----------|-------| | **Source video** | yes | The video ad to clone. File path to `.mp4`, `.mov`, `.webm` | | **Product image** | recommended | Reference photo of the user's product. Becomes `referenceImages` / `@(img1)` in the prompt. Without this, Seedance invents its own product design. | | **Product/offer description** | if no image | Text description of the product, its features, target audience, and key selling points. Used to rewrite dialogue and product references. | | **Brand voice** | optional | Check `MASTER_CONTEXT.md` for brand blocks. If empty, ask the user for tone/audience preferences. |
If the user only provides a video and says "clone this for my product," ask them for at least a product image or a text description before proceeding.
Reuse the analyze-video extraction script — do NOT duplicate it.
bash "skills/arcads-external-api/prompting/analyze-video/scripts/extract-frames.sh" \ "<source_video_path>" "/tmp/clone-ad-analysis" <num_frames>
**Frame count by duration:**
| Source duration | Frames | |-----------------|--------| | Under 10s | 8 | | 10–20s | 12 | | 20–30s | 16 | | Over 30s | 20 |
**Outputs:**
Read `metadata.txt` to get the source video duration — you'll need it for step 6.
Use whisper to get the exact dialogue. This is critical — the dialogue pattern is what gets adapted for the user's product.
import whisper
model = whisper.load_model("base")
result = model.transcribe("/tmp/clone-ad-analysis/audio.wav")Record:
If the video is **silent** (no speech detected), note that and skip the dialogue adaptation in step 7. The clone will be a visual-style clone only.
Read **ALL** extracted frames visually. For each frame, note:
**Structure and pacing:**
**Camera and framing:**
**Edit style:**
**Dialogue and script structure:**
**Tone and energy:**
**Lighting and technical quality:**
**Product references:**
**What makes this ad distinctive (2–3 defining traits):**
Store this analysis internally — it does NOT get saved as a template file.
Show the user a structured breakdown before proceeding:
📋 Source video analysis Duration: Xs | Beats: N | Dialogue: Y words | Style: [style name] Beat map: [00:00–00:03] HOOK — close-up, excited expression, "opening line" [00:03–00:07] SHOW — tilts product to camera, "feature call-out" [00:07–00:10] DEMO — (silent) applies/uses product, close-up on texture [00:10–00:15] VERDICT — back to camera, "closing line + CTA" Defining traits: 1. [trait 1] 2. [trait 2] 3. [trait 3] What transfers to your product: ✅ Be
Create AI marketing videos and images using your Arcads account, powered by AI agents in Claude Code or Cursor.
Repo: krusemediallc/arcads-claude-code
Publish finished creatives as live Meta (Facebook/Instagram) ads via the Meta Marketing API,…
Creates and retrieves AI video and image-related assets via the Arcads external API (Seedance…
Analyze a reference video and reverse-engineer its style into a reusable Seedance 2.0…
Generate one or more standalone Meta image-ad creatives via ChatGPT Image 2 (gpt-image-2)…
Generate high-CTR YouTube thumbnails using Nano Banana 2 via the Arcads external API. Handles…
Use when the user wants to reverse-engineer an existing image ad into a reusable prompt…