Communitygithub.com

CarlosSantana94/brand-video-studio

Turn long videos into branded short-form reels, or edit raw footage for more attention, using HyperFrames for code-driven motion graphics and claude-eyes to watch the footage. Builds a brand guide from logos, photos and references when the user has none, and offers a catalog of animation styles. Use this whenever the user wants reels, Shorts, TikToks, clips from a podcast, vlog, webinar or interview, wants to cut or punch up a raw video, add animated captions, hooks or an outro, create a brand k

What is brand-video-studio?

brand-video-studio is a Claude Code agent skill that turn long videos into branded short-form reels, or edit raw footage for more attention, using HyperFrames for code-driven motion graphics and claude-eyes to watch the footage. Builds a brand guide from logos, photos and references when the user has none, and offers a catalog of animation styles. Use this whenever the user wants reels, Shorts, TikToks, clips from a podcast, vlog, webinar or interview, wants to cut or punch up a raw video, add animated captions, hooks or an outro, create a brand k.

Works with✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/CarlosSantana94/brand-video-studio/tree/HEAD/skill

Ask in your favorite AI

Open a new chat with this agent skill pre-loaded.

Documentation

Brand Video Studio

Make branded videos that hold attention: a brand guide, a chosen animation style, then code-rendered videos checked by actually watching them.

Talk to the user, and write all on-screen text and copy, in the user's language. These instructions are in English only because the skill is shared.

Before you start

Run this once per machine and fix what it reports:

python3 <skill>/scripts/doctor.py

It needs Python 3, ffmpeg, Node (for npx hyperframes) and eyes. Installing eyes is covered in the eyes skill, or uv tool install git+https://github.com/moritzkremb/claude-eyes then eyes setup --fix. Load the hyperframes and eyes skills if they are available: their rules on composition format and video evidence apply here too.

<skill> is this skill's directory.

Choose the job

The user wantsDo
A brand, or has only a logo or referencesBrand guide, below
X reels from one long videoBrand guide if missing, then references/reels-from-long-video.md
A raw video made more watchableBrand guide if missing, then references/edit-raw-video.md
To pick or compare a lookreferences/animation-styles.md

Keep each client or channel in its own folder:

<project>/
  brand/brand.json  BRAND.md  assets/
  source/words.json
  videos/<NN-name>/cut.json  spec.json  ...
  renders/
  COPY.md

Brand guide

Reuse a brand.json if the project has one. Otherwise read references/brand-guidelines.md and build it from whatever the user gives you: logo, photos, a website, reference videos. If they have nothing, ask for the brand name and the feel they want, then propose. Show the result and get a yes before making videos, because every video inherits these choices.

Watch before you decide

Never plan from the transcript alone. A strong line over a dark shot is a weak reel, and a quiet stretch may hold the best footage.

python3 <skill>/scripts/transcribe.py source.mp4 source/words.json --lang en --glossary "Names, Terms"
eyes frames source.mp4 --range 1:00-1:30 --fps 1

Read the overview.md that eyes index prints and view its contact sheets. Note strong moments, b-roll, burned-in text and music. If eyes cannot transcribe a long file, set WHISPER_MODEL so transcribe.py falls back to whisper-cli.

Build a video

  1. Write videos/<NN-name>/cut.json and spec.json. references/spec.md has every field.
  2. Assemble it:
    python3 <skill>/scripts/make_video.py videos/NN-name --brand brand/brand.json --words source/words.json
    
  3. Re-sync captions to the clip, because timings measured on a long source drift by up to 3 seconds. Do this before timing any layer to the voice:
    eyes transcript videos/NN-name/assets/clip.mp4 --words --json > videos/NN-name/compositions/clip_words.json
    python3 <skill>/scripts/make_video.py videos/NN-name --brand brand/brand.json --words source/words.json
    
  4. Check, look, render, level the audio:
    cd videos/NN-name
    npx --yes hyperframes check --json
    npx --yes hyperframes snapshot --at 0.3,8
    npx --yes hyperframes render -q delivery -o ../../renders/NN-name.mp4 --quiet
    ffmpeg -i in.mp4 -c:v copy -af loudnorm=I=-14:TP=-1.5:LRA=11 out.mp4
    
  5. Watch the render with eyes index and work through references/review-checklist.md. Fix and re-render. Do this for every video: a clean check says the file is valid, not that it is good.

Render only after the user has seen the plan. Rendering is slow, and a wrong hook wastes it.

Finish

Write COPY.md with a title, caption and hashtags for each video, in the user's language, using the brand's voice from BRAND.md. references/reels-from-long-video.md covers the format and a posting calendar.

Leave posting to the user unless they ask you to do it, and confirm before anything goes public.

Related Skills