首页 / 全部技能 / 内容创作 / changelog-video
内容创作 · heygen-com/hyperframes

changelog-video

Turn a weekly changelog .md into a finished branded changelog video (square 1080, ~45-60s, Annie VO, animated brand background, mock-UI visualizations, lowkey captions). Use when the user provides a changelog/digest markdown and wants the weekly video, or says "changelog video". Self-contained — fonts, background, lexicon, and scripts ship in this skill.

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

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

输入是一份 changelog markdown(主题+条目,形如每周 HyperFrames digest),输出是 projects/active/weekly-changelog-<range>/ 下一个 lint-clean、seam-gate-green 的 HyperFrames 工程;只在被要求时才渲染。

.claude/skills/changelog-video/SKILL.md
Input: a changelog .md (themes + items, like the weekly HyperFrames digest). Output: a lint-clean, seam-gate-green HyperFrames project in `projects/active/weekly-changelog-<range>/`. Render only when asked.
注:这里在做什么:把交付物定义清楚(工程 ≠ 视频,渲染是后置动作),并预告验收口径(两个 gate 必须绿)。

加载顺序被写成不可谈判:本 skill 之前必须先加载 motion-doctrine(有光标则加 cut-the-curve / oversized-cursor / seam-craft)与 captions-overlay;本 skill 只提供 changelog 专用流水线,运动法由教义提供。

.claude/skills/changelog-video/SKILL.md
**Load first, non-negotiable:** `motion-doctrine` (+ `cut-the-curve`, `oversized-cursor` if a cursor appears, `seam-craft`) and `captions-overlay`. This skill supplies the changelog-specific pipeline; the doctrine supplies the motion law.
注:这里在做什么:在文档层面钉死依赖图的加载方向——changelog-video 是流水线,动效规则不在此处重复。

首要指令是「可视化,不是罗列」:每个主题必须由一个真实 UI 的动画 mock 或忠实的 analog 演出这次变更的体验,绝不用文字 bullet;并且在写脚本之前先过 references/visualization-registry.md 路由(它决定用 ui-recreate / ui-analog / terminal / checklist)。文字 checklist 是最后手段,只留给确实非视觉的条目。

.claude/skills/changelog-video/SKILL.md
Every theme is illustrated by an **animated mock of the actual UI or a faithful analog** acting out the change in experience — never text bullets. Route every theme/item through `references/visualization-registry.md` BEFORE writing the script; the registry decides ui-recreate / ui-analog / terminal / checklist. Text checklist is the LAST resort, reserved for genuinely non-visual items (reliability fix lists).
注:这里在做什么:把「怎么把 changelog 变成画面」外包给一张分级表(越靠前越强:ui-recreate > ui-analog > terminal > checklist),并要求先路由后写稿——顺序写死是为了防止模型先写漂亮旁白再硬凑画面。

Step 0 是品牌引导(bootstrap),非可选:必须先拷贝本 skill 自己的字体、bgm 与骨架,把 bundled bg-pattern.mp4 用 ffmpeg 循环编码到影片精确时长并压暗,再读 build-spec.md 全文,然后才动笔。文中给出自查与回退语:若发现自己去 cp 上一支片的 index.html、自己写 @font-face、或设计 WebGL 背景,STOP,删掉当前 index.html 从骨架重来。

.claude/skills/changelog-video/SKILL.md
**Do this before writing any composition HTML. Skipping it always produces a video that looks like a similar project you built before, NOT this skill's brand — that's the single most common way this skill goes off-brand.**
注:这里在做什么:本 skill 的「品牌」不在提示词里而在资产里(5 个 woff2 字体 + bg-pattern.mp4 + bgm.mp3 + master-skeleton.html),所以第一步被设计成复制资产;这也是它宣称 Self-contained 的根据。

时长与条目预算是硬数字:全片 45-60s,片头 ≤2s、片尾 ≤3.5s、4 个主题每个约 9-12s;每主题只保留 ONE 主角可视化 + 至多 3 个口播条目,其余只作为片尾「完整 digest」的指引;30 条的 changelog 也要裁到 ≤14 个口播 beat;主题按故事排序(头条功能→产品面→性能→可靠性)。

.claude/skills/changelog-video/SKILL.md
- **Budget: 45-60s total.** Title ≤2s, outro ≤3.5s, 4 themes ≈ 9-12s each. - Per theme keep ONE hero visualization + at most 3 spoken items. Everything else exists only as the outro's "full digest" pointer.
注:这里在做什么:把「剪辑」明确成主要工作(Cutting is the job),并给出可直接核对的预算表,避免每次都超时。

脚本是两层契约(token 行):口播读 spoken 层、字幕渲染 display 层;每个技术词都要带 spoken 读音(来自 references/lexicon.json),凡不在词条里的词必须停下来问用户发音并补进词典,绝不猜。

.claude/skills/changelog-video/SKILL.md
conversational register, every technical term carrying a `spoken` phonetic form from `references/lexicon.json` while `display` keeps standard spelling. Captions show `display`; the VO reads `spoken`. Any term not in the lexicon: STOP and ask the user how it's pronounced, then add it to the lexicon.
注:这里在做什么:用「display/spoken 双轨 + 词典」把 TTS 误读(JSON→「juh-son」)与字幕误拼(「jay-sawn」)两类失败一起挡掉;lexicon.json 现有 60+ 条(CLI→C L I、JSON→jay-sawn、GSAP→jee-sap、ffmpeg→ff-mpeg 等),token 行格式为 {lines:[{id,tokens:["…"|{display,spoken}]}]}。

配音锁定 Annie 一个音色 id(330290724a1b470fb63153f34d4c0183,注明 do not substitute),经 heygen CLI(≥0.3.0,OAuth 登录)调 TTS,并必须产出 vo-words.json(spoken 文本的词级时间戳);随后用 align-captions.mjs 把 spoken 时间戳对回 display token 生成 captions.json(caption-rail 的输入:display 拼写 + spoken 计时)。

.claude/skills/changelog-video/SKILL.md
node skills/hyperframes-media/scripts/heygen-tts.mjs ./vo-spoken.txt \ -o voiceover.mp3 --words vo-words.json \ --voice 330290724a1b470fb63153f34d4c0183 # Annie — lifelike (do not substitute)
注:这里在做什么:把「配音+字幕对齐」整条链路固化(固定音色 + 固定对齐器);对齐器的设计是:一个 display token 可能对应多个 spoken 词(「C L I」是三个),display 词取其首个 spoken 词的起点时间。

词级时间戳是硬门禁:进第 5 步前必须确认 vo-words.json 非空且含 words[] 数组、每词有 start/end;若为空或缺数组(作者标注为已知失败模式:TTS 返回了音频但没有时间戳载荷),不许在无时间戳的情况下继续;回退方案是用本地 whisper 对已生成音频做强制对齐(uvx --from openai-whisper),再把它喂给 align-captions.mjs。

.claude/skills/changelog-video/SKILL.md
**Word-timings are a hard gate.** Before moving on to step 5, verify `vo-words.json` is non-empty and has a `words: [...]` array with `start`/`end` per word. If it's empty (0 bytes) or missing the array — a known failure mode when the TTS provider returns audio but no timestamp payload — DO NOT proceed without them.
注:这里在做什么:把一个真实的静默失败(音频有、时间戳无)识别为门禁并给出唯一回退路径;并提醒 whisper 会听错 TTS 造词(「gee-sap」→「gsap」),字幕仍必须用 display 拼写,whisper 只供时间戳。

字幕非可选:骨架自带一个读 LINES 数组的字幕轨 IIFE,数组留空是「已交付的 bug」而不是风格选择;第 4 步必须产出 captions.json,第 5 步必须把它贴进 IIFE,第 6 步的第 5 道闸必须确认渲染帧上真的有字。

.claude/skills/changelog-video/SKILL.md
**Captions are non-optional.** The master-skeleton ships a caption-rail IIFE that reads a `LINES` array — leaving that array empty is a shipped bug, not a style choice.
注:这里在做什么:作者把一次真实事故(Jul 13-20 v4 build 发了无字幕版)转成规则 + 三道连锁校验(产出 → 贴入 → 帧检),是本 skill 最「事故驱动」的一处。

第 6 步的闸门是硬性的:① 用仓库内 CLI(明确禁止 npx hyperframes@latest,理由是仓库内 CLI 才是该 composition 契约的事实来源)跑 check 并带 caption-zone 采样 26 个时间点、0 error;② seam-gate verify 0 fail;③ 重启预览服务(它缓存 bundle)再用 __player.seek 抽查 3-4 个 beat;④ 未被要求不渲染,渲染后抽帧核验(字幕在、背景视频不是黑的、无冻结/极小帧);⑤ 字幕存在性硬闸:在旁白区间跨采样 3-4 帧,任一帧缺字幕即视为红闸并回查第 5 步的 LINES 填充。

.claude/skills/changelog-video/SKILL.md
5. **Caption presence gate — hard fail.** Sample 3-4 frames spread across the VO's spoken window (e.g. `t=3`, `t=15`, `t=30`, `t=42` for a 48s VO) and confirm the caption rail at `top: 990` renders visible text on each.
注:这里在做什么:把「字幕在不在」从人工印象变成抽帧断言,并直接点名历史上失败的那次构建;check 的 caption-zone 参数本身就是对比度/遮挡闸(x0=0;y0=.90;x1=1;y1=1;severity=error,seek 列 26 个时间点)。

工程布局与接缝做法一并写死(build-spec.md 才是施工图):单文档 index.html(场景作 slide、接缝已盖章)+ ledger.json + script-tokens.json + vo-spoken.txt/voiceover.mp3/vo-words.json/captions.json + bgm.mp3 + assets/fonts 与 assets/bg-pattern-<dur>s.mp4;普通接缝一律 cut-the-curve LEFT,退出/入场选择器必须是内层 .swrap(#w-*)而不是 #s-* clip 元素(动 clip 元素是 error 级 lint 规则);内部 beat 必须落在 vo-words.json 的词时间戳上。

.claude/skills/changelog-video/references/build-spec.md
- `ledger.json`: every ordinary seam `cut-the-curve LEFT` (x, dir −1), exit and entry selectors = the inner `.swrap` wrappers (`#w-*`), NEVER the `#s-*` clip element — `gsap_animates_clip_element` is an error-severity lint rule and every stamped seam writes `autoAlpha`.
注:这里在做什么:SKILL.md 只做路由,真正的品牌 token(ink #f5f6f4 / green #5ef17c 每场一次 / bg #0a0c0b、玻璃卡、安全边距 x/y ∈ [76,1004]、场景解剖、背景编码、lint 陷阱)都在 build-spec.md;spec 还给出一个反直觉陷阱——片头入场必须 immediateRender:false,否则 stamped 的零时长 tl.set 会在构建期把起点捕获为 0 → 症状为 exit-visible op 0.00 而 exit-vector 却 PASS。

字幕轨的落地参数由 script-voice.md + build-spec.md 双写:1080 方画幅上 top:990 / height:52 / TT Norms Pro 500 32px / ink .94 / 柔和暗色 text-shadow;词按各自时间戳以 0.12s 淡入,短语整体换场;关键小字要避开底部 ~100px 中央带(对齐 captions-overlay 的软避让)。

.claude/skills/changelog-video/references/build-spec.md
Caption rail per `script-voice.md` (top: 990, font-size: 32px, height: 52). Mandatory — populate the master-skeleton's `LINES` array from `captions.json` before render; see SKILL.md step 5.
注:这里在做什么:字幕轨既是 overlay(不是预留带)又有固定像素位;骨架 HTML 里的 CSS(#cap-line top:990、z-index:7、text-shadow、.cap-w 逐词 span)与该 spec 一致。

可视化路由表的判级口径:四类按强弱排序(ui-recreate 最强、ui-analog、terminal、checklist 最后),并给出「已知表面」表(Studio 编辑器/时间线、Inspector、Canvas+元素、变体渲染、Storyboard、终端、渲染面板)与「proven choreography」;analog 必须演出行为(速度、批处理、缓存)而不是伪造不存在的产品页;片尾 checklist 说明新表要在第一次 mock 时补一行,供下次复用。

.claude/skills/changelog-video/references/visualization-registry.md
The routing table for "show, don't tell". Classes, strongest first: 1. **ui-recreate** — the change lives in a surface we can faithfully mock.
注:这里在做什么:把「可视化」从创意问题降级为查表问题——四类 + 已知表面 + proven choreography 三段式,保证同一变更每次都被同样地演出。

发布后动作:S3 替换后必须对固定的 CloudFront distribution 做 invalidation,否则 CDN 会继续缓存旧文件(该条写在反模式表的「Don't」列,即「交付却不做 invalidation」被定义为反模式)。

.claude/skills/changelog-video/SKILL.md
Run `aws cloudfront create-invalidation` on distribution `E2BSLVSZ7FG3U0` for the exact path after any S3 replace — CDN caches the old file otherwise
注:这里在做什么:把交付链路延伸到 CDN 刷新;这条也是判橙的凭据相关依据(该命令使用用户环境的 AWS 凭据)。

五道闸的语义与顺序被固定下来:check(0 error)→ seam-gate(0 fail)→ 预览抽查 →(可选)渲染抽帧 → 字幕存在性硬闸;且明确「重启预览服务」是因为它缓存 bundle,避免在陈旧构建上验证。

.claude/skills/changelog-video/SKILL.md
3. Restart the preview server (it caches the bundle), spot-check 3-4 beats via `__player.seek` on the raw comp page.
注:这里在做什么:把「验证的是哪一份构建」也写进流程(缓存陷阱),这是纯文档流程里少见的运行期细节。

2核心能力

01changelog markdown → 品牌化方形(1080×1080)周更视频的完整流水线(parse → route → script → VO → build → gates)
02可视化路由(registry 四类 + 已知表面与 proven choreography 表 + 8 类 ui-analog)
03两层脚本(display/spoken)+ 60+ 条发音词典 + 未知词必须问用户的强约束
04Annie 固定音色 TTS + 词级时间戳门禁 + align-captions.mjs 对齐(MISMATCH 必须清零)
05品牌骨架与资产引导(字体/bgm/bg-pattern 编码 + master-skeleton.html 占位符填充)
06字幕轨落地(overlay 定位 top:990 / 32px / 52 高,逐词 0.12s 淡入,短语换场)
07五道发布闸(caption-zone check 0 error / seam-gate 0 fail / 预览抽查 / 渲染抽帧 / 字幕存在性硬闸)
08发布后动作:S3 替换后对固定 CloudFront distribution 做 invalidation

3外部依赖

类型依赖
cliheygen CLI ≥0.3.0(OAuth 登录,用于 TTS;SKILL.md 以仓库内 heygen-tts.mjs 为调用封装)
cliffmpeg(背景 pattern 循环编码 + 时长压暗;渲染后抽帧核验)
cli仓库内 hyperframes CLI(check --caption-zone 与 preview;SKILL.md 明确禁止用 npx hyperframes@latest 代替)
cliseam-stamp.mjs / seam-gate.mjs(来自 motion-doctrine,作为构建与验证闸门)
cliaws CLI(交付后对固定 CloudFront distribution 做 invalidation)
packageuvx / openai-whisper(备用强制对齐:下载包与模型,仅当 TTS 未返回词级时间戳时)
network产物期 CDN 引用:骨架 HTML 引 jsdelivr 的 GSAP(浏览器端拉取,执行期不外发)
package上游/兄弟 skill 依赖(被指名加载):motion-doctrine / cut-the-curve / oversized-cursor / seam-craft / captions-overlay

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

风险提醒:橙色 · 评估后使用
  • 外部服务与账号额度是硬依赖 — 配音必须走 heygen CLI(OAuth + 消耗额度);交付还要求对固定 CloudFront distribution 做 invalidation(走用户 AWS 凭据)。想完全离线或不愿授权云凭据的人无法完整跑完。
  • Step 4 点名的仓库内 TTS 路径在 pin 上不存在 — skills/hyperframes-media/scripts/heygen-tts.mjs 已不存在(实际在 skills/media-use/audio/scripts/)。README 也是同一过期路径,照抄会 ENOENT;需自行改路径。
  • 自带媒体资产是 Git LFS 指针 — bg-pattern.mp4(12.8MB)与 bgm.mp3(5.3MB)在未拉 LFS 的检出里只有 133/132 字节的指针,Step 0 的 cp 与 ffmpeg 编码会失败或产出坏文件;必须先 git lfs pull。而这两支资产是「品牌」本身,缺了就回到「看起来像你自己上次那支片」的失败模式。
  • 关键常量硬编码到具体发行版与分布 — Annie 音色 id 与 CloudFront distribution E2BSLVSZ7FG3U0 都是 HeyGen 内部常量;换团队/换账号即失效,且没有配置化入口。
  • 内容注入面:用户 changelog 文本会流进旁白与字幕 — 外部 markdown 的文本会成为 TTS 输入与屏幕文字;虽无代码执行面,但指令式文本理论上可影响生成内容,且成品是对外发布物。
  • 备用对齐路径引入第三方包与模型下载 — vo-words.json 为空时的回退是 uvx --from openai-whisper(PyPI + 模型下载);whisper 会听错 TTS 造词,作者把 MISMATCH 列为必须清零,但清零工作仍是人工判断。
  • 平台前提与仓库绑定 — 流程默认在 hyperframes 仓库根运行(仓库内 CLI 为 composition contract 的事实来源,明确禁止 npx hyperframes@latest),复制到别处需自行替换多个路径。
风险提醒:橙色,评估后使用。触发橙档的两条都成立:① 为自身声明用途调用外部生成后端并消耗账号额度——配音必须经 heygen CLI(OAuth 登录,Annie 固定音色)把口播文本送往 HeyGen 服务换回音频与时间戳,这是本流水线不可跳过的步骤(先例:点名生成后端判橙);② 交付期触碰用户云凭据——反模式表要求 S3 替换后执行 `aws cloudfront create-invalidation`(固定 distribution E2BSLVSZ7FG3U0),该命令走用户 AWS 凭据(凭据由 aws CLI 读取,skill 自身脚本不读)。另有备用路径 uvx 从 PyPI 拉 openai-whisper 与模型(第三方远程包)。不升红:无沙箱关闭、无 TLS 降级、无反自动化/反爬绕过、无任意代码执行面;本 skill 自有脚本(align-captions.mjs)是纯本地读写,ffmpeg/CLI 的子进程参数均由固定模板与数值构成。产物期 cdn.jsdelivr.net 的 GSAP 引用按口径不判级,仅在 reason 中列明。

5第二遍独立确认

  • [discrepancy] SKILL.md Step 4 点名的仓库内 TTS 封装路径在 pin 上是否存在(照抄会不会立刻失败) — 不存在。SKILL.md 写 `node skills/hyperframes-media/scripts/heygen-tts.mjs`,并在注释里说明「the changelog-video skill runs from the hyperframes repo root, so it uses the tracked hyperframes-media TTS helper directly」;但 pin 内 skills/ 下没有 hyperframes-media 目录,全仓 heygen-tts* 唯一命中是 `skills/media-use/audio/scripts/heygen-tts.mjs`。同一过期路径还出现在 `.claude/skills/README.md`(TTS uses the tracked …)。结论:Step 4 命令按字面执行会 ENOENT,需改用 media-use 侧脚本(SKILL.md 自己留了 swap in your own path 的余地,故不算虚假声明)。
  • [discrepancy] 自带 bg-pattern.mp4 / bgm.mp3 是否真的可用(Step 0 的 cp 与 ffmpeg 是否拿到媒体) — 在未拉 LFS 的检出里是 LFS 指针,不是媒体。实检:assets/bg-pattern.mp4 = 133 字节、assets/bgm.mp3 = 132 字节,内容为 `version https://git-lfs.github.com/spec/v1 / oid sha256:… / size 12817182`(mp4)与 `size 5318438`(mp3);仓库 .gitattributes 明写 `.claude/skills/**/*.mp4|*.mp3 filter=lfs`;`git cat-file -s HEAD:<path>` 亦返回 133(blob 即指针)。因此 Step 0 的 cp 与 `ffmpeg -i <SKILL_DIR>/assets/bg-pattern.mp4` 在未 git lfs pull / 未装 git-lfs 的环境会失败或产出坏文件(本工作副本的 git 甚至没有 lfs 子命令)。这是 pin 检出相关的真实差异,不是文档错误——但照本文档流程跑的人必须先确保 LFS 已拉取。
  • [ok] 「字幕非可选」是否真有连锁校验(是否只是口号) — 三处闭环可查:① 骨架 HTML 里确有读 LINES 的字幕 IIFE(`const LINES = /* paste captions.json lines … */ [];` 与 #cap-line 容器、tl.set/tl.to 逐词淡入);② SKILL.md Step 5 给出把 captions.json 贴进 IIFE 的具体写法;③ Step 6 第 5 道闸要求跨旁白采样 3-4 帧确认字幕可见,并点名 Jul 13-20 v4 的失败。口号有实现支撑。
  • [ok] align-captions.mjs 的行为是否与 script-voice.md 的描述一致 — 脚本注释与实现一致:tokens {lines:[{id,tokens:[str|{display,spoken}]}]} + words [{text,start,end}] → captions.json {lines:[{id,end,w:[[display,start],…]}]};贪婪 consume 支持「一个 display token 覆盖多个 spoken 词」;用 norm(去非字母数字)+ Levenshtein close 做模糊匹配;有 MISMATCH 计数并 `process.exit(mismatches ? 1 : 0)`。无网络、无子进程,只 readFileSync ×2 + writeFileSync ×1。
  • [ok] check 的 --caption-zone 与 preview 缓存提醒是否自洽(是否存在互相矛盾的验收) — Step 6 第 1 条用仓库内 CLI 跑 caption-zone(x0=0;y0=.90;x1=1;y1=1;severity=error,26 个 seek 点)拿 0 error;第 3 条要求重启预览服务后再用 __player.seek 抽查——两处不冲突(前者静态闸、后者运行期抽查),且都与 build-spec 的「字幕轨 top:990(=1080×0.9167,落在 .90–1 带内)」一致。
  • [discrepancy] Stage ground 与本 skill 骨架是否一致(跨 skill 一致性) — seam-craft / cut-the-curve 教义要求把不透明底色刷在 #root(`#root { background: var(--canvas-deep, var(--canvas, #000)) }`)。本 skill 的 master-skeleton.html 实测把底色放在 `html, body { background: #0a0c0b }`,#root 只有 data-* 属性、没有 background 声明;#root 内首个子元素是满幅 bg-video(track0)+ scrim。对本骨架而言白闪仍被 body 底色挡住(body 也是不透明深色),观感风险低;但与教义字面要求的形式不一致,且未用 --canvas-deep/--canvas 变量(该变量在 pin 内零命中)。记录为形式差异,不改档位。
  • [ok] CloudFront invalidation 是否只是可选建议(影响档位判断) — 它写在 Anti-patterns 表的「Don't」列:`Delivered without CloudFront invalidation` → `Run aws cloudfront create-invalidation on distribution E2BSLVSZ7FG3U0 …`。即「交付却不做 invalidation」被定义为反模式,属交付流程的必需步骤而非可选花絮——这是判橙(触碰用户云凭据)的依据。
  • [ok] 是否存在被忽略的其他外发(例如字体/CDN 在构建期拉取) — 字体是本地 woff2(5 个文件实检非 LFS 指针,约 488KB),build-spec 明确要求 `local @font-face with format('woff2') embeds at render`;唯一 CDN 引用是 master-skeleton 的 jsdelivr GSAP(产物期,浏览器端)。未发现构建期遥测、上报或未知端点。

6结论

  • 把「周更视频」做成可复现流水线:品牌资产/骨架/词典/施工图全在 skill 内,SKILL.md 只做路由,换个人跑也出同款
  • 「可视化,不是罗列」有分级路由表兜底(ui-recreate > ui-analog > terminal > checklist),并要求先路由后写稿
  • 字幕链路有硬门禁与三道连锁校验,直接针对一次真实事故(发出无字幕版本)
  • 两层脚本 + 发音词典 + 未知词必须问用户,把 TTS 误读与字幕误拼的失败面同时堵住
  • 对「抄近路」有明确的 STOP 与重启指令,而不是委婉建议
  • 交付定义保守(不要求不渲染),但一旦渲染就抽帧核验,验收不靠印象
  • 适合:适合:HeyGen/HyperFrames 团队自己的周更 changelog 视频生产(方形 1080、约 45-60s、Annie 配音、共享品牌背景、mock-UI 可视化、低调字幕轨);也适合任何想要一份「平台更新 → 品牌化短视频」的完整可复制流水线(含可视化路由表、发音词典、字幕对齐器与抽帧级验收)作为范本。前提是能接受 HeyGen TTS 与 AWS 交付链路。
    不适合:不适合:① 不愿把口播文本送往 HeyGen 或不愿消耗账号额度的人(配音无本地替代);② 不愿授权 AWS 凭据做 CDN invalidation 的交付流程;③ 非方形/非 45-60s 的通用视频需求——版式、预算、字体、背景全是 1080×1080 周报专用;④ 想跑离线的人(LFS 资产 + TTS + 校验链多处依赖网络);⑤ 需要多语言或非英语配音的场景(词典与音色都锁定英语 Annie);⑥ 把本 skill 当通用「markdown 转视频」工具——它高度绑定 HyperFrames 仓库与自家品牌资产。
    安装 agent 直装可复制
    ① 本站镜像 更新 2026-09-28
    方式 A · 人下载镜像包下载 changelog-video.tar.gz
    sha256: f474b43e1565756e…
    方式 B · JSON 格式安装指南,复制给 agent
    安装指南
    agent 读 JSON 指南后会自动从本站下载安装,无需更多说明。
    ② 上游 GitHub · 原始来源
    能访问 GitHub?直接去上游安装(实时版,可能已更新)GitHub 原始 ↗
    本页镜像锁定 commit d2f0bc7f34;上游为实时仓库。
    来源信息 GitHub 原始
    作者 / 仓库heygen-com / heygen-com/hyperframes
    Stars44283
    最近推送2026-09-06
    本 skill commitd2f0bc7f34
    许可Apache-2.0(仓库根 LICENSE 为 Apache License Version 2.0)
    本站信息
    收录日期2026-09-06
    分类内容创作
    侦查报告AI 侦查 · 2 遍 · 2026-09-06
    本站镜像与 GitHub 原始是不同来源:本站锁定 commit 快照经 /r2 分发;GitHub 为实时上游,内容可能已更新。
    同分类邻近