Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

launch-video — a Claude skill for product launch & walkthrough videos

A Claude Code skill that takes a product, feature, or page and produces a polished ~45–60s launch/walkthrough video end to end — then publishes it:

  1. Real screenshots — Playwright captures your actual product UI
  2. Motion video — a Remotion composition (1080p / 30fps)
  3. Emotive voice-over — OpenAI gpt-4o-mini-tts, scene-synced and loudness-normalized
  4. YouTube publish — youtubeuploader + the Data API, unlisted → approve → public
  5. Page embed — a click-to-play facade (the iframe only loads on click)
  6. Announce — drops the link in your team channel

It exists because doing this by hand means rediscovering the same non-obvious details every time: OAuth redirect quirks, voice-over sync math, loudness targets, the lazy-iframe embed, upload quotas.

Install

Drop the launch-video/ folder into your project's skills directory:

cp -r launch-video /path/to/your/project/.claude/skills/

Claude Code discovers it automatically. It triggers on requests like "make a launch/demo/walkthrough video", "add a voice-over", "ship this to YouTube", or "add videos to our top pages".

Configure

Fill in launch-video/config.md with a few IDs (YouTube channel, OAuth client secret path, GCP project number, announcement channel, brand colors). The skill reads those instead of hardcoded values, so it works for any product.

What's inside

launch-video/
├── SKILL.md                     # the 7-step pipeline + guardrails
├── config.md                    # per-project settings you fill in
├── references/
│   ├── youtube-publishing.md    # auth setup, OAuth redirect gotcha, quota, metadata
│   ├── video-production.md      # screenshot capture, render/mux/encode
│   └── embed-and-announce.md    # the click-to-play embed + announcement
├── scripts/
│   ├── tts_voiceover.py         # scene-synced, loudness-normalized voice-over track
│   ├── youtube.py               # OAuth exchange/refresh + status/privacy/metadata
│   └── scenes.example.json      # example VO scene list
└── remotion-scaffold/           # a reusable Remotion project to copy per video
    └── src/{theme,components,scenes,Root,index}.tsx

Requirements

  • Claude Code
  • ffmpeg, Node.js, youtubeuploader (brew install youtubeuploader)
  • An OpenAI API key (voice-over) and a Google OAuth client with YouTube Data API v3 enabled

Notes & guardrails

  • Unlisted → approve → public, every time. The video goes public only after a human watches it.
  • The Google OAuth consent is the user's to give — the skill never auto-approves it.
  • YouTube API quota is ~6 uploads / 24h; larger batches span days.
  • The YouTube CLI can't set a thumbnail — add one in Studio.

License

MIT — see LICENSE.


Built with Claude Code. Not affiliated with or endorsed by Google, OpenAI, or Remotion.

About

Claude Code skill: produce a product launch/walkthrough video end-to-end — screenshots, Remotion motion, AI voice-over, YouTube publish, page embed.

Topics

Resources

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages