Home / All Skills / Content & Media Creation / product-launch-video
Content & Media Creation · heygen-com/hyperframes

product-launch-video

Turn a product or marketing URL, pasted script, or brief into a product launch / promo video — SaaS promos, feature reveals, product demos, app and company launches. Use when the user wants to market, launch, promote, or reveal a product; the default for any commercial URL. Site tours / showcases of a website route here too — the brief carries the show-it-as-is intent. Unclear → /hyperframes.

L4 High-Privilege · Graded auth & full auditV1 Commit-PinnedExecute CommandNetwork AccessWrite FileDual-pass Audit
Author heygen-comGitHub heygen-com/hyperframes ↗Stars 44283License Apache-2.0(仓库根 LICENSE 为 Apache License Version 2.0;池内值亦为 Apache-2.0)Commit b8328f9573
Control levels describe skill capabilities and suggested control measures; they do not represent quality or safety certifications, nor do they dictate usability. Usage decisions rest entirely with users and administrators. Different agent hosts apply varying constraints; do not assume hosts provide automatic protection. Third-party skill copyrights belong to their original authors. Use at your own risk.

1How It Works & Mechanism

Six-step orchestration with step-by-step gating: Setup → Capture → Design System → Storyboard/Script → Audio → Visual Design → Frames → Finalize, where each step has explicit 'what not to do in this step' rules and pass criteria, strictly forbidding skipping steps.

skills/product-launch-video/SKILL.md
You are the orchestrator. Work in `videos/<project>/`. Run steps in order and pass each gate before continuing. User-gated steps are Step 0, Step 3, and Step 6.
What is happening here: Deconstructing the process of 'creating a long video in one shot' into verifiable stages. Each Gate section specifies required output artifacts (e.g., Step 1 requires capture JSON ok:true, BLOCKED.md absent, and tokens.json/visible-text.txt/asset-descriptions.md along with assets/ to be present). The orchestrator handles all steps except Step 5; Step 5 assigns one sub-agent per frame.

Asset acquisition relies on local repo CLI site scraping: `npx hyperframes capture "<URL>" -o ./capture --json`; the script self-describes as scraping the page and assets; scraping failure triggers a hard stop, with no synthetic degradation permitted.

skills/product-launch-video/SKILL.md
A non-zero exit, JSON `ok: false`, or `capture/BLOCKED.md` is a **hard stop** for the capture path: report the recorded reason and do not consume partial screenshots, DOM, tokens, or assets. Do not manufacture a synthetic no-capture fallback after a failed URL capture.
What is happening here: Preventing typical hallucinated fallbacks like 'fabricating a page if scraping fails'. The no-capture route is allowed only if the original brief provides assets or the user explicitly switches to providing screenshots/copy. Warnings like 'very little text content' are forbidden from being treated as evidence of a usable page.

Optional visual capabilities are determined by keys in the environment: when GEMINI_API_KEY / GOOGLE_API_KEY / OpenRouter key is detected, the capture phase automatically writes asset descriptions into asset-descriptions.md; without a key, it proceeds using DOM context.

skills/product-launch-video/SKILL.md
If `GEMINI_API_KEY`, `GOOGLE_API_KEY`, or an OpenRouter key exists, capture auto-captions assets into `capture/extracted/asset-descriptions.md`. This is not a review gate. Without a vision key, use DOM context and continue.
What is happening here: Turning 'whether a vision model is available' into capability tiering rather than a failure point—having a key provides a more accurate asset manifest, but a video can still be produced without one. Note that this is **environment credential probing** (checking env variables to determine capabilities), neither writing to disk nor exfiltrating the key itself.

No manual modification of the design system: only selecting a shipped frame preset is permitted, followed by build-frame.mjs deterministically performing role-based color remapping and font replacement between the preset's FRAME.md and brand tokens, complete with self-validation.

skills/product-launch-video/scripts/build-frame.mjs
// Remix rule — ONLY `colors:` values and `typography:` fontFamily change; keys, // structure, geometry, and components are untouched: // colors — map brand tokens onto the preset's keys BY ROLE: the ink-role key takes // the brand ink (darkest/ink-named), the canvas-role key takes the brand // canvas (lightest), and every other color is repainted with the nearest // brand accent's hue+saturation while KEEPING its own lightness
What is happening here: The author's comments explicitly state the rationale—'Strict on brand is deterministic, so it should be a script rather than LLM manual edits (manual edits copy hex values incorrectly or corrupt keys)'. When brand colors/fonts are empty, the preset's own palette is retained (which is already a complete deliverable design).

Voiceover/BGM uses HeyGen (logged-in state) or local engines: an exit code of 1 from `auth status` carries the normal semantic of 'not logged in'; the skill explicitly instructs not to treat this as a failure to retry or chain with &&; credentials reside in ~/.heygen.

skills/product-launch-video/SKILL.md
Note the exit code contract: `auth status` **exits 1 when not signed in** (and when the stored credential is rejected) — that non-zero exit is the normal signed-out state, not a command failure, so don't treat it as an error, don't retry it, and don't chain it with `&&`/`set -e` in a way that would abort the workflow.
What is happening here: Incorporating non-zero CLI exit code semantics into the workflow prevents the agent from mistaking 'not logged in' for a crash and repeatedly retrying or aborting. The audio step uses HeyGen Audio API for **retrieval** (music library/BGM search), sharing the same ~/.heygen credentials with TTS.

Cross-frame continuity relies on numerical handoff contracts (handoff_out / handoff_in) rather than workers guessing each other's state: every field must be fully defined, and constants must also be explicitly written.

skills/product-launch-video/SKILL.md
When an element visibly continues across a frame boundary, give both workers the same numerical handoff in `STORYBOARD.md`: add `handoff_out:` to the outgoing frame and a matching `handoff_in:` to the incoming frame. Name the element and its exact x/y position, scale, opacity, and motion direction/speed at the cut — state every field even when it does not change, because a constant is `opacity: 1`, not an omission.
What is happening here: Parallel workers write independent HTML snippets, making seam transitions the most error-prone point. This skill uses 'numerical handshakes at cut points' to shift seam alignment forward to the STORYBOARD.md design phase, supplemented by Step 6 snapshot cut-point before/after comparisons (0.1s before cut / 0.2s after cut) for acceptance verification.

Verification and approval chain wrap-up: inject/verify transitions → lint → check → contact sheet snapshot → human/automated approval → preview → render; checks are not rerun after rendering.

skills/product-launch-video/SKILL.md
Render only after user approval (autonomous mode: after the preview-or-render question): `npx hyperframes render --skill=product-launch-video --quality high --output renders/video.mp4` Do not rerun `lint`, `check`, or `snapshot` after rendering unless the user asks.
What is happening here: Explicitly banning the waste of 'rerunning all gates on every edit', and requiring that failures first surface stderr, apply the cheapest one-line fix locally, and rerun only the failed item ('don't pile on recovery commands').

2Core Capabilities

01Generate product promo videos from a URL, pasted script, or brief (SaaS promos, feature reveals, product demos, app/company launches, site tours)
02Website scraping and asset inventory (including optional vision model automated asset descriptions, full-page.png 1x baseplate for scrolling shots)
03Brand design system onboarding: preset selection + role-based color/font remapping + caption skin copying (completed and self-validated via a single script)
04TTS voiceover / BGM retrieval / SFX / duration sync (provider and voice determined by user requirements, including provider selection and voice catalog querying)
05Per-frame sub-agent construction: packet builder (scene block + blueprint body + reference rules + _role.md) → parallel dispatch of one worker per frame
06Asset staging to project assets/ (stage-assets.mjs, assets named according to storyboard)
07Assembly and transitions: captions (including caption-skin) → assemble-index → transitions inject/verify
08Music-to-visual match review: compare the beginning against the subsequent 5 seconds, trimming from stronger sections with fade in/out when necessary

3External Dependencies

KindDependency / Endpoint
clihyperframes CLI:capture(抓站)/ init / lint / check / snapshot / preview / render / auth status / skills update
network被抓取的目标网站(任意用户给定 URL;含抓取期的页面导航与资产下载)
apiHeyGen Audio API(TTS 与音乐库检索)/ 凭证文件 ~/.heygen
api视觉模型 key(仅探测是否可用,用于抓取期资产描述)
cliffprobe / ffmpeg(BGM 时长探测与循环补齐,缺失时降级为警告)
networkGSAP CDN(写进装配后的 index.html / caption 皮肤,带 SRI 完整性校验)
climedia-use 侧脚本(prefs.mjs 记录偏好、recipe.mjs 应用配方、audio/scripts/heygen-tts.mjs 列语音)
package兄弟 skill 依赖(/hyperframes 路由、/hyperframes-core、/hyperframes-creative、/hyperframes-animation、/media-use、/figma)

4Recommended Governance & Evidence

Suggested Controls for Safe Operation
For Agent Runtime
Graded/per-use authorization, sandbox recommended
For Administrators
Approval workflow, rollback support, full audit
Evidence & Triggers (File Paths & Excerpts)
  • scripts/: Local script or command execution: node scripts/build-frame.mjs --preset <name> --hyperframes . (copies preset FRAM
  • 网络端点: Declared external network access: npx hyperframes capture "<URL>" (scrapes user-provided product websites: screenshots, DOM, tokens, assets)
  • 本地工作目录: File I/O and artifact output: videos/<project>/BRIEF.md, hyperframes.json, STORYBOARD.md, SCRIPT.md, audio_me
Audit Notes: What triggers the orange rating is the **credential and environment variable surface**: the workflow reads ~/.heygen login credentials (shared across TTS/BGM retrieval) and probes for GEMINI_API_KEY / GOOGLE_API_KEY / OpenRouter key presence to decide whether to run automated asset descriptions; it also connects to the network to scrape the user-supplied product website (saving full page content, screenshots, DOM, and tokens to disk). These are by-design capabilities rather than malicious actions, but they imply: 1. The user's HeyGen account will be invoked by the audio step in this workflow; 2. When vision keys are present, scraped page assets will be sent to that vision model; 3. Scraping targets and output directories remain local, but page content enters model contexts. No TLS downgrades, anti-scraping bypasses, credential leakage (no writing keys into per-repo .env files, which SKILL.md explicitly forbids), or arbitrary code execution vectors were found (scripts invoke fixed CLI tools/binaries).

5Second-Pass Verification

  • [ok] 『外部资源』逐条回查调用点是否真实存在 — hyperframes capture 命令原文在 Step 1;~/.heygen 与 HeyGen Audio API 在 Step 3.1 原文;GEMINI/GOOGLE/OpenRouter key 探测在 Step 1 原文;ffprobe/ffmpeg 在 assemble-index.mjs 的 ensureBgmCovers 内真实 spawnSync;gsap CDN 在 assemble-index.mjs:727 与 captions.mjs:480;media-use 的 prefs.mjs/recipe.mjs/heygen-tts.mjs 在 Step 0/3.1 原文。无一条属于推测。
  • [ok] 凭证读取是否被夸大或漏报 — 脚本层(23 个 mjs)未发现任何读取 ~/.heygen 或 env key 的代码——凭证读取发生在 media-use / hyperframes CLI 侧,本 skill 只以文字指令调用它们。SKILL.md 同时明令不得把 key 写进 per-repo .env。判定为『授权链式凭证读取』而非本 skill 直读,橙色理由已按此措辞。
  • [ok] 抓取失败是否真的硬停(有无隐藏的合成兜底) — Step 1 原文 'Do not manufacture a synthetic no-capture fallback after a failed URL capture.';no-capture 路径被限定为『原始 brief 自带素材』或『用户在失败后明确改用提供的截图/brief』两种情形。未发现绕过路径。
  • [ok] 验证:抓取/装配脚本是否有未声明的网络调用 — 对 23 个 mjs 做 fetch/axios/http.request/urllib 扫描 → 0 命中;唯一的对外引用是 HTML 模板字符串里的 CDN URL(浏览器侧加载)。脚本自身不发起 HTTP 请求,网络行为全在 hyperframes CLI 与 media-use 侧。
  • [ok] 与同批 skill 的组内一致性(默认 provider/voice 与静音标记) — 本 skill 与 faceless-explainer 都用 'Marcia (female) on HeyGen / am_michael on Kokoro' 作默认声线、都用 `music: none` 作静音标记;本 skill 额外要求传 `--provider <provider>`(因为它需要在 Step 0 就确定 provider 并在 Step 0 展示登录态语义)。差异有据,未见矛盾。

6Verdict & Scenarios

  • Dense and actionable gates: every step features explicit pass criteria and artifact checklists; scraping failures or structural absences trigger hard stops instead of hallucinated fallbacks
  • Brand fidelity entrusted to deterministic scripts, preventing silent corruption caused by LLMs manually altering hex codes or key names
  • Cross-frame seams governed by numerical contracts (handoff_out/handoff_in), making the most fragile point across parallel workers explicit
  • Clear guidance on non-conventional CLI exit code semantics, reducing agent misjudgments and redundant retries
  • Comprehensive capability degradation paths: fallback to DOM without vision keys, local engines when HeyGen is unauthenticated, and warnings without hard failures when BGM toolchains are missing
  • Assembly artifacts load external GSAP using SRI, ensuring integrity verification for CDN dependencies
  • Best for: Ideal for scenarios requiring 'product/website' conversion into promotional videos: SaaS launches, feature reveals, product demos, app/company launches, and show-it-as-is requests like 'turn our website into a tour video' (the description specifies this as the default skill for any commercial URL). Teams with a HeyGen account gain voiceover and music library retrieval; teams without one can still produce videos using local engines. Also serves as an excellent reference for skill authors looking to structure long-video pipelines with gates and resumability.
    Not for: Not suitable for: 1. Ambiguous requirements lacking URLs, assets, or willingness to provide assets (scraping failure triggers a hard stop and will not fabricate pages); 2. Text-only explainers (no website to scrape) — use /faceless-explainer instead; 3. Short, voiceover-free motion graphics — use /motion-graphics instead; 4. Offline environments avoiding any external accounts/credentials (voiceover and BGM retrieval depend on HeyGen by default, with only partial capabilities supporting local fallback); 5. Scenarios with compliance restrictions on target site scraping or where network traffic must not touch the target site; 6. Expectations of one-click video generation without approval — Steps 0/3/6 enforce user gates that mandate sign-off prior to rendering.
    Install Agent-Ready
    ① Verified Mirror 2026-09-15
    Option A · Direct DownloadDownload product-launch-video.tar.gz
    sha256: 744e4c9d6dfc554d…
    Option B · Copy Guide for Agent
    install.json
    Agents automatically download and verify mirrors from this JSON guide.
    ② Upstream GitHub
    GitHub Repo ↗
    Pinned to commit b8328f9573.