Skip to content
Back to skills

Launch Video

ASecurity

Produce a polished launch or walkthrough video for a product, feature, or page and publish it end-to-end: real product screenshots, a Remotion motion video, an emotive AI voice-over, a YouTube upload, a click-to-play embed on the page, and a team announcement. Use this whenever the user wants a launch video, feature video, demo video, walkthrough, product video, screen-recording, or "make a video" for a page/tool/feature — and whenever they want to publish/ship/upload a video to YouTube or ad...

  • 3 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 6, 2026
ai-agentsgorailsgcpapi

Works with

  • cli
  • api

Security analysis

A100/100

Pro scans all 15 files and shows the line behind each finding

Scanned September 6, 2026

npx -y skills add vood/claude-launch-video-skill --skill launch-video --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Launch Video?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Launch Video
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/vood-launch-video/badge)](https://www.skillsdirectory.com/skills/vood-launch-video)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: launch-video
description: >-
  Produce a polished launch or walkthrough video for a product, feature, or page and publish it
  end-to-end: real product screenshots, a Remotion motion video, an emotive AI voice-over, a YouTube
  upload, a click-to-play embed on the page, and a team announcement. Use this whenever the user wants
  a launch video, feature video, demo video, walkthrough, product video, screen-recording, or "make a
  video" for a page/tool/feature — and whenever they want to publish/ship/upload a video to YouTube or
  add narration/voice-over to one. Also use it to add videos to top-traffic pages (from analytics) at
  scale. Covers the whole pipeline, not just editing.
---

# Launch / Walkthrough Video

A repeatable pipeline for turning a product, feature, or page into a short motion video with
narration, then publishing it to YouTube, embedding it on the page, and announcing it. It exists
because doing this by hand means rediscovering a dozen non-obvious details every time (OAuth quirks,
voice-over sync math, the click-to-play embed, loudness targets).

Default output: a **1080p / 30fps** video, ~45–60s, with an emotive voice-over, uploaded **unlisted
first for the user to approve**, then flipped public. Never publish a video publicly without the
user hearing/seeing it — voices and pacing are subjective.

## Configure this for your project

Before first use, fill in `config.md` (a few IDs and paths). The skill reads those instead of
hardcoded values, so it works for any product. The values you need:

- Your YouTube **channel** (the OAuth account must have it selected)
- Your OAuth **client secret** path and **GCP project number** (YouTube Data API v3 enabled)
- Where finished-video announcements go (Slack channel, Discord, etc.)
- Your brand colors and the product URL pattern

## When to use it

Building any video for a page/feature/tool, adding a voice-over, or shipping a video to YouTube.
For a broad "add videos to our best pages" request, pull the top pages first (from your analytics),
then run this pipeline once per page — **pilot one, get approval on the format, then batch** the rest.

## The pipeline (7 steps)

Work top to bottom. Each step has detail in the referenced file or script.

1. **Understand the subject.** Read the implementation / docs so the steps shown match real behavior.
   For a tool walkthrough, drive the live tool (Playwright) to see the actual input→output flow —
   that IS the walkthrough.

2. **Capture real screenshots.** Playwright against production, 1920×1080. Hide any promo banners /
   cookie bars first. See `references/video-production.md` → "Capturing screenshots".

3. **Build the Remotion video.** Copy the `remotion-scaffold/` structure. Scenes are frame-counted at
   30fps in `src/theme.ts`. Size each scene to its narration length (step 4). Full scene/animation
   patterns in `references/video-production.md`.

4. **Generate the voice-over.** `scripts/tts_voiceover.py` — OpenAI `gpt-4o-mini-tts`, voice `ash`,
   with an **`instructions` prompt for emotion** (without it the read is flat and robotic — this is
   the single most important VO detail). It generates per-scene clips, syncs them to each scene's
   start frame, and loudness-normalizes the mixed track. Re-time scenes in `theme.ts` if a clip
   overflows its scene, then re-render.

5. **Render + mux + encode.** `npx remotion render`, mux the VO track on with ffmpeg (`-c:v copy`),
   then encode a `< 10 MB` upload cut (`libx264 -crf 25 -movflags +faststart`). Commands in
   `references/video-production.md` → "Render, mux, encode".

6. **Publish to YouTube.** `scripts/youtube.py` (wraps `youtubeuploader` for the upload, uses the
   Data API for everything else). Upload **unlisted**, get the user's OK, then set **public**. Read
   `references/youtube-publishing.md` first — it has the auth setup, the OAuth redirect gotcha, the
   API-not-enabled failure, quota limits, and the metadata template.

7. **Embed + announce.** Add a click-to-play facade section to the page (poster + play button; the
   YouTube iframe only mounts on click — keeps it off initial load). Then post the link to your team
   channel. Both patterns in `references/embed-and-announce.md`.

## Guardrails

- **Unlisted → approve → public**, every time. Uploading to the user's own channel needs their sign-off.
- The Google **OAuth consent is the user's to give** — you cannot click "Allow" for them. If auth
  isn't set up, walk them through it (see `references/youtube-publishing.md`), don't try to bypass it.
- Keep the master render; only the upload cut is size-constrained.
- YouTube API quota ≈ **6 uploads / 24h**. A batch bigger than that must be spread across days —
  say so instead of silently failing partway.
- CLI can't set a **thumbnail** — flag that the user should add one in Studio (or set via API separately).

Files in this skill

  • SKILL.md4.8 KB
  • config.md1.2 KB
  • references/embed-and-announce.md2.8 KB
  • references/video-production.md2.8 KB
  • references/youtube-publishing.md4.2 KB
  • remotion-scaffold/package.json451 B
  • remotion-scaffold/public/.gitkeep27 B
  • remotion-scaffold/src/Root.tsx1.4 KB
  • remotion-scaffold/src/components.tsx5.9 KB
  • remotion-scaffold/src/index.ts109 B
  • remotion-scaffold/src/scenes.tsx9.3 KB
  • remotion-scaffold/src/theme.ts792 B
  • remotion-scaffold/tsconfig.json225 B
  • scripts/tts_voiceover.py5 KB
  • scripts/youtube.py5.4 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…