全部技能 / 内容创作 / product-launch-video
内容创作 · 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.

风险提醒:橙色 · 评估后使用AI 侦查报告
作者 heygen-comGitHub heygen-com/hyperframes ↗Stars 44283许可 Apache-2.0(仓库根 LICENSE 为 Apache License Version 2.0;池内值亦为 Apache-2.0)commit b8328f9573
agent 宿主通常会约束 skill 执行权限;风险提醒为 AI 侦查观点,不构成质量或安全保证。第三方 skill 仅作拆解与展示,安装使用风险自负,版权归原作者。

1实现原理 · 为什么它能做到

六步编排 + 逐 step 门禁:Setup → Capture → Design System → Storyboard/Script → Audio → Visual Design → Frames → Finalize,每步都有明确的「本步不许做什么」与通过条件,不许跳步继续。

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.
注:这里在做什么:把「一次做出长视频」拆成可验证的阶段,每个 Gate 段写明产物必须存在(例如 Step 1 要求 capture JSON ok:true、BLOCKED.md 不存在、tokens.json/visible-text.txt/asset-descriptions.md 与 assets/ 都在)。编排者自己做除 Step 5 以外的全部步骤;Step 5 一帧一个子代理。

素材获取靠本仓 CLI 抓站:`npx hyperframes capture "<URL>" -o ./capture --json`,脚本自述是抓页面+资产;抓取失败是硬停,不许造假降级。

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.
注:这里在做什么:防「抓不到就编一个页面」这种典型幻觉式兜底。只有原始 brief 自带素材、或用户明确改为提供截图/文案时,才允许走 no-capture 路径。同时禁止把 'very little text content' 之类的警告当作页面可用的证据。

可选视觉能力由环境里的 key 决定:检测到 GEMINI_API_KEY / GOOGLE_API_KEY / OpenRouter key 时,抓取阶段会把资产自动描述写进 asset-descriptions.md;没有 key 就用 DOM 上下文继续。

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.
注:这里在做什么:把「有没有视觉模型」变成能力分级而不是失败点——有 key 资产清单更准,无 key 仍能出片。注意这是**环境凭证探测**(读 env 判断能力),不落盘、不外发 key 本身。

设计系统不手改:只允许选定一个 shipped frame preset,然后由 build-frame.mjs 确定性地把 preset 的 FRAME.md 与 brand tokens 做「按角色的颜色重映射 + 字体替换」并自校验。

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
注:这里在做什么:作者注释直说了动机——『Strict on brand 是确定性的,所以它该是脚本而不是 LLM 手改(手改会抄错 hex / 改坏 key)』。空品牌色/字体时保留 preset 自己的调色板(本身已是完整可交付设计)。

配音/BGM 走 HeyGen(登录态)或本地引擎:`auth status` 的 exit 1 是「未登录」的正常语义,skill 明确要求不要当失败重试或 && 串联;凭证是 ~/.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.
注:这里在做什么:把 CLI 的非零退出码语义写进流程,避免 agent 把「未登录」当故障而反复重试或中断。音频步骤用的是 HeyGen Audio API 做**检索**(音乐库/BGM 查找),与 TTS 共用同一份 ~/.heygen 凭证。

跨帧连续性用数值交接契约(handoff_out / handoff_in)而不是靠 worker 互相猜:每个字段都要写全,常量也要显式写出。

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.
注:这里在做什么:并行 worker 各自写一段 HTML,接缝最容易崩;本 skill 用「切点上的数值握手」把接缝前移到 STORYBOARD.md 的设计阶段,并配 Step 6 的 snapshot 切点前后对比(cut 前 0.1s / 后 0.2s)做验收。

验证与审批链收尾:inject/verify 转场 → lint → check → 接触表快照 → 人工/自动审批 → preview → render;渲染后不再重复跑检查。

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.
注:这里在做什么:把「改了就重跑全部门禁」的浪费显式禁掉,并要求失败时先 surface stderr 再就地修一行最便宜的改动、重跑失败的那一项('don't pile on recovery commands')。

2核心能力

01从 URL / 贴入脚本 / brief 生成产品推广片(SaaS promo、功能发布、产品演示、App 与公司发布、站点导览)
02网站抓取与资产清点(含可选视觉模型自动资产描述、full-page.png 1x 底板用于滚动镜头)
03品牌设计系统落位:preset 选择 + 品牌色/字体按角色重映射 + caption skin 拷贝(一个脚本完成并自校验)
04TTS 配音 / BGM 检索 / SFX / 时长同步(provider 与 voice 由用户诉求决定,含 provider 选择与 voice 列表查询)
05逐帧子代理构建:packet 构建器(场景块 + blueprint 正文 + 引用规则 + _role.md)→ 一帧一 worker 并行派发
06素材暂存到项目 assets/(stage-assets.mjs,按 storyboard 命名的资产)
07装配与转场:captions(含 caption-skin)→ assemble-index → transitions inject/verify
08音乐与画面的匹配复核:对比开头与后段 5 秒,必要时从更强的段落裁切并加淡入淡出

3外部依赖

类型依赖
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)

4风险提醒 风险提醒:橙色 · 评估后使用

风险提醒:橙色 · 评估后使用
  • 涉及凭证:~/.heygen 会被音频步骤使用,视觉 key 会被探测 — 本流程会用使用者的 HeyGen 账号做 TTS/BGM 检索(可能计费);若环境里存在 GEMINI/GOOGLE/OpenRouter key,抓取到的页面资产会被送往该视觉模型做自动描述。使用前应确认账号额度、key 归属与数据出境预期。
  • 抓取任意 URL 并把页面内容灌入模型上下文 — 用户给定 URL 后,DOM 文本/截图/资产成为故事与素材来源;恶意或含指令式文案的页面理论上可影响后续生成(提示注入面)。同时抓取本身会给目标站带来流量,需遵守目标站条款与 robots 约定。
  • 抓取失败即停 → 流程可能空转 — 硬停纪律避免了造假,但对动态渲染/需登录的站点,capture 失败会成为常见终点;此时只能改走 no-capture 路径(要求用户自带素材),没有中间方案。
  • 依赖树庞大:需要整套 HyperFrames 生态 + media-use + 可选 HeyGen 凭证 — 缺任一硬依赖时 skill 要求 STOP 询问用户;另外 auth status 的 exit 1 语义若宿主用 `set -e` 包裹会中断流程(SKILL.md 已警告,但仍属易踩的坑)。
  • 产出 HTML 依赖外部 CDN([email protected]) — 装配结果在播放/渲染时需要联网加载 jsdelivr 上的 GSAP(虽有 SRI);离线渲染环境需自行内联,否则可能出现脚本未加载的静默退化。
风险提醒:橙色,评估后使用。触发橙档的是**凭证与环境变量面**:流程会读取 ~/.heygen 登录凭证(TTS/BGM 检索共用),并探测 GEMINI_API_KEY / GOOGLE_API_KEY / OpenRouter key 的存在以决定是否做资产自动描述;同时会联网抓取用户给定的产品网站(页面内容、截图、DOM、token 全量落盘)。这些都是设计使然的能力,不是恶意行为,但意味着:① 使用者的 HeyGen 账号会被本流程的音频步骤调用;② 视觉 key 存在时,抓取到的页面资产会被送往该视觉模型;③ 抓取对象与产出目录都是本地的,但页面内容会进入模型上下文。未发现 TLS 降级、反爬绕过、凭证外泄(无把 key 写入 per-repo .env 的行为,SKILL.md 反而明确禁止)或任意代码执行面(脚本调用的是固定 CLI/二进制)。

5第二遍独立确认

  • [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 展示登录态语义)。差异有据,未见矛盾。

6结论

  • 门禁密度高且可执行:每步都有明确的通过条件与产物清单,抓取失败/结构缺失一律硬停而非编造
  • 品牌保真交给确定性脚本,避免 LLM 手改 hex/键名造成的静默损坏
  • 跨帧接缝有数值契约(handoff_out/handoff_in),把并行 worker 最容易崩的地方显式化
  • 对 CLI 的非常规退出码语义有明确指引,减少 agent 误判与重试
  • 能力降级路径完整:无视觉 key 用 DOM 继续、无 HeyGen 登录走本地引擎、无 BGM 工具链只告警不硬失败
  • 装配产物带 SRI 加载外部 GSAP,CDN 依赖有完整性校验
  • 适合:适合要把「产品/网站」变成推广片的场景:SaaS 发布、功能揭示、产品演示、App/公司上线,以及「把我们网站做成导览视频」这类 show-it-as-is 需求(description 说这是任何商业 URL 的默认技能)。团队若有 HeyGen 账号即可获得配音与音乐库检索;没有也能走本地引擎出片。也适合想看「如何把长视频流水线做成有门禁、可续做」的 skill 作者参考。
    不适合:不适合:① 无 URL、无素材、也不接受自带素材的模糊需求(抓取失败即硬停,不会替你编页面);② 纯文本解说(无网站可抓)——应走 /faceless-explainer;③ 短无旁白动效——应走 /motion-graphics;④ 不想使用任何外部账号/凭证的离线场景(配音与 BGM 检索默认依赖 HeyGen,只有部分能力有本地降级);⑤ 对抓取目标站有合规限制或不希望流量触及目标站的场景;⑥ 期望一键出片无需审批的场景——Step 0/3/6 有用户门禁,渲染前必须获批。
    安装 agent 直装可复制
    ① 本站镜像 更新 2026-09-15
    方式 A · 人下载镜像包下载 product-launch-video.tar.gz
    sha256: 744e4c9d6dfc554d…
    方式 B · JSON 格式安装指南,复制给 agent
    安装指南
    agent 读 JSON 指南后会自动从本站下载安装,无需更多说明。
    ② 上游 GitHub · 原始来源
    能访问 GitHub?直接去上游安装(实时版,可能已更新)GitHub 原始 ↗
    本页镜像锁定 commit b8328f9573;上游为实时仓库。
    来源信息 GitHub 原始
    作者 / 仓库heygen-com / heygen-com/hyperframes
    Stars44283
    最近推送2026-09-06
    本 skill commitb8328f9573
    许可Apache-2.0(仓库根 LICENSE 为 Apache License Version 2.0;池内值亦为 Apache-2.0)
    本站信息
    收录日期2026-09-06
    分类内容创作
    侦查报告AI 侦查 · 2 遍 · 2026-09-06
    本站镜像与 GitHub 原始是不同来源:本站锁定 commit 快照经 /r2 分发;GitHub 为实时上游,内容可能已更新。
    同分类邻近