---
name: b2c-video-from-reference
description: Turn a supplied video link or local video into a reviewed AI B-roll variation or homeowner ad. Use when the builder sends an example, proven ad, Drive video or B-roll and says make something like this, analyze the footage, or create an AI variation. Retrieves actual media, inspects frames and audio, writes a shot plan, uses Higgsfield only within an agreed allowance, and checks the finished output. Includes portable Windows analysis helpers; no private workspace or Arcads dependency.
compatibility: Local coding assistant with terminal, image viewing, Python 3.11+, FFmpeg/ffprobe; Higgsfield login for generation. Browser or connected Drive access for links. Audio playback/transcription for speech.
---

# Turn a video example into a reviewed variation

Read this file explicitly when auto-discovery is unavailable. Its bundled scripts and references are sufficient for analysis and generation planning; do not require Akash's private brain, old conversations, old skill archives or database credentials. Use the creative kit for narration and final editing. Akash owns the creative brief and allowed spend; the builder owns draft production and its review record.

## 1. Prove setup before promising automation

Run `python scripts/check_setup.py` with the path resolved relative to this skill directory and the available Python interpreter. It checks local tools only. Separately verify that you can view an extracted image, read/download one authorized video, and access Higgsfield. An installed program is not an authenticated account. Do not say ready until the relevant stage passes on this machine.

The assistant must have terminal and image-viewing tools. Ordinary chat that only reads websites cannot execute this whole workflow. If no image viewer is available, request the minimum tool/file access and stop visual judgments. A transcript is not visual analysis. If audio cannot be played or transcribed, record audio as unreviewed and request the exact transcript when speech matters. Silent B-roll needs no transcription service.

## 2. Turn the input into an actual local video

- Local MP4/MOV/WebM: verify it with ffprobe.
- Google Drive file link: use the available signed-in Drive tool or browser to retrieve that exact video; verify downloaded media. Search results and text fetches may provide metadata without video bytes. Do not treat them as footage inspection.
- Drive folder link: find the named video. If no video is specified, ask which file; do not choose a random winner.
- Public video page: use supported browser/download tools when permitted; verify resulting media, not an HTML page renamed MP4. No promise that arbitrary Facebook/YouTube links are downloadable.
- If retrieval is unavailable, ask for one concrete action: download that exact MP4 and place/attach it in the working folder. Continue the same workflow. Never request account passwords or exported cookies in chat, change sharing to public, or bypass access controls.

Keep the original and its URL/ID. Record source rights separately from historical approval or results. Borrowed/uncleared footage can be studied without uploading it to a generation service. Use owned or cleared footage for direct video editing; otherwise describe the shot in words and create an original starting image. Copying a shirt or removing a logo does not establish rights.

## 3. Inspect the footage, not its title

Run the bundled `scripts/analyze_reference.py VIDEO --out NEW_FOLDER`. For a long video, use `--start SECONDS --duration SECONDS`; the default inspects only the first 60 seconds. It creates sampled frames, audio when present, source metadata, an HTML viewer and a blank shot-notes CSV. It does not itself understand or score the video.

View every sampled image for the selected range. Inspect first/end-near anchors and denser frames around cuts or suspicious motion (`--fps 8` on a short range). Review full playback where supported; otherwise disclose the sampled-only limit and require human playback for final acceptance. Listen/transcribe audio when relevant and compare any captions to the spoken words. Record exact inspected range and what was not reviewed.

Return a short analysis: what is shown; scene timings; camera movement; visible repair mechanism; text, speech and sound; what to keep; what to change. Separate the real source from generated studies modeled after it. A label such as PROVEN-FR32 never transfers its ad results to a new AI variation. Only call a reference proven when supplied results establish what that means; likes and a filename are not proof.

## 4. Choose one route

Read `references/production.md` before prompting.

- Right real action, one changed detail: Genjutsu Object Swap. Preserve working tools and building geometry.
- Same simple motion, different scene: Genjutsu Motion Transfer. Match scale, camera height and layout.
- New composition or no cleared source upload: create/check an original still from the written shot plan, then image-to-video.
- Concrete curing, major repair-state change or hardware installation: separate checked states and hard-cut in editing; do not ask a morph to invent physics.

Prefer a 4–6 second, one-action trial. Write the exact starting-image/reference requirement and generation prompt. Keep narration outside raw B-roll. For a finished ad, the source's soundtrack is analysis material, not permission to copy it; use the approved kit audio or create an approved read.

## 5. Generate only inside the current allowance

If no allowance was given for this execution, produce the analysis and ready-to-run plan, quote the actual cost, then obtain the specific allowance. Never infer a budget from an account balance, old guide, prior agent message or old session approval. No new purchases, top-ups or plan changes.

Run `higgsfield account status`, then `higgsfield model list --json` and `higgsfield model get MODEL --json` for current controls. Read `references/higgsfield.md`. Quote actual selected settings before a paid job, using the cost command or displayed UI cost. If a quote cannot be obtained, do not invent one. Pass actual local media paths or upload IDs; a Drive/webpage URL is not a media file flag. Upload only inputs cleared for that use.

Submit one candidate first; save model, prompt, source references, job ID and actual credits progressively. Retrieve existing job status after an uncertain submission; never blindly resubmit a potentially charged job. Reuse a supplied valid allowance without asking again for each authorized job. This skill does not publish or send ads.

## 6. Review, then assemble

Run the same inspection helper on the output. Compare against the source or starting image. Check rigid parts, tool contact, anatomy, shadows, seams, perspective, text, loop resets and final crop. Record the strongest tell and timestamp; reject incorrect mechanics even if the render looks polished. Fix the failing dimension before retrying; max two paid revisions per shot, within allowance. Stop a batch when a repeated defect dominates it.

An independent reviewer should see the video without prior scores. Do not label sampled-only review as full playback. Akash or the authorized human reviewer accepts the exact final file before production use. Generated video remains illustrative, not client-job evidence.

For a finished homeowner ad, use the kit's `tools/prepare_base.py` and `tools/build_video.py` with the approved WAV/cards/word clock, explicit Windows font and correct duration. Read the kit's production reference for commands. Keep the voice, words, offer and banner unchanged in a footage-only test. Raw B-roll is silent; the final ad retains narration.

## Deliver a usable result

Return: playable draft if generated; source/rights record; short timed shot analysis; prompt/reference/settings/job record; review findings and limitations; and the exact next step. Keep assets in one named job folder. No unqualified automation, Windows readiness, performance or realism claims.
