Communitygithub.com

AGHEORONO/video-dna

基于真实素材制作故事驱动型视频,包含大量动态图形;每次采用全新主题,从不复用模板。

video-dna 是什么?

这是一个面向 Claude Code 和 Claude app 的 AI 技能,用于将素材文件夹中的视频、照片和音乐编辑成故事驱动型视频。它强调“视频 DNA”,即每次编辑都基于素材本身生成独一无二的主题、字体、颜色、动画和音效,而非复用模板。工作流程包括收集需求、清点素材、转录对话、撰写故事、提出主题、选择音乐、预渲染样片、质量检查以及最终交付。该技能提供了一套完整的 Python 脚本工具链,用于生成联系表、转录、字幕、节拍检测、音效生成、音乐制作、场景检测、人脸识别、二维码解码、渲染和压缩等,确保所有图形和音效都源自素材的真实内容。平台支持上,Claude Code 用户可直接在本地文件夹中输出视频,而 Claude app 用户则通过聊天界面接收视频文件。关键理念是:所有图形必须承载真实笑话或事实,避免装饰性元素;节奏需与音乐节拍同步;所有语音均需逐词字幕;禁止虚构信息;交付附上诚实报告,说明已验证和待判断的内容。

兼容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/AGHEORONO/video-dna/tree/HEAD/video-dna

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

Video DNA

将素材文件夹中的视频编辑成仿佛亲历者剪辑的影片。保持 DNA,绝不复用模板:每个视频都拥有属于自己的主题,主题源于素材中真实发生的事情。

以用户语言回复。除非另有说明,字幕和屏幕文字使用素材的语言。

从这里开始

  1. 运行 python scripts/doctor.py 查看当前环境的能力。如果缺少任何东西,或者你在云端沙箱中,请阅读 references/environments.md。
  2. 查看工作文件夹,然后阅读 references/brief.md 并收集需求。只询问请求和素材尚未回答的问题。
  3. 阅读 references/formats.md 并使用最接近请求的配方。如果没有素材,请遵循 references/brief.md 中的“无素材”部分。
  4. 在构建时间线之前阅读 references/pipeline.md,当工作需要超出核心脚本的能力时阅读 references/tools.md。

工作流程

按顺序执行。在第 5 步之前不要渲染任何内容。

  1. 需求确认。 确定格式、方向、时长、节奏、动态强度、视觉形象和音频。参见 references/brief.md。在整个视频中使用其选择。
  2. 素材清点。 列出剪辑、照片、音乐和徽标(如果有)。使用 scripts/contact_sheet.py 生成联系表并查看。使用 scripts/transcribe.py 转录音频,优先处理最短和密度最高的剪辑。真实台词通常是最有趣的素材。
  3. 故事编排。 按顺序记录实际发生的事情,包含最佳真实台词及其说话者。如果未告知人物身份,请询问。
  4. 主题选择。 提出 2-3 个全新主题,每个主题包含 2 个基于真实时刻的具体笑点。推荐一个,优先选择素材已经暗示的主题。然后停下来让用户选择。参见 references/themes.md。
  5. 音乐选择。 为每个章节提议一首曲目,给出目标文件名,并要求用户将文件放入文件夹。诸如 2_chorus_0m45s.mp3 这样的名称表示“从 0:45 开始”。即使被要求,也绝不下载商业音乐。提供生成的声音和无音乐版本作为替代方案。
  6. 先出样片。 对于时长超过约 45 秒的视频,先渲染一个短章节,以便用户评判方向。然后构建其余部分。
  7. 质量检查。 运行 scripts/qa.py,查看提取的帧并逐项检查 references/qa-checklist.md。在交付前修复发现的问题。
  8. 交付。 参见下方“成品视频的存放位置”。在有用时包含无音乐版本、来自 references/copy.md 的即贴文本以及诚实报告。

成品视频的存放位置

scripts/doctor.py 报告环境。按以下方式完成每个视频:

  • Claude Code: 将完成的视频直接写入用户的文件夹,位于工作文件夹内的 output/ 中,除非用户指定了其他位置。提供完整路径。用户无需在 _work/ 中寻找。
  • Claude app: 直接在聊天中交付完成的视频,作为用户可以从对话中打开和下载的文件。将它们复制到输出文件夹(如果存在则为 /mnt/user-data/outputs),如果有可用的文件共享工具则使用它。不要停在沙箱路径,除非交付失败,否则不要缩小或拆分文件。

视频 DNA

  • 一个主题,完全贯彻。 从头到尾使用相同的字体、颜色、动画和声音。每个图形都属于该主题的世界。
  • 每个图形都承载来自该素材的真实笑话或真实事实。 没有装饰性内容,没有通用内容。一个显示实际设备上真实值的标签胜过任何库存字幕。
  • 前后呼应。 开头埋下伏笔,结尾收尾。开头的一句话在结尾再次出现。
  • 前 2-3 秒抓人眼球,使用最强时刻开场,然后以符合主题的方式回到开头。
  • 节奏。 在节拍上剪辑,在笑点上使用推拉变焦,使用动态过渡,在冲击时抖动,加快枯燥段落。保留完整的口语台词。
  • 字幕 覆盖所有语音,逐词显示,风格与主题一致。只在屏幕上对脏话进行消音。
  • 音效设计。 每个图形都有自己专属的音效。音乐按章节变化,曲目中的最强音符落在关键瞬间,音乐在语音时降低音量。
  • 清晰胜于密集。 如果一个笑话需要观众不具备的背景信息,就删掉它。对于首次观看的观众,必须清楚发生了什么、在哪里、何时以及多少。

真实规则

  • 绝不捏造事实。任何推断、近似或说明性的内容都必须列出来供确认:日期、角色、数字、奖项、身高、谁说了什么。
  • 列出不确信的转录行供用户确认。transcribe.py 会标记低置信度的词语。
  • 可能被视为真实结果的说明性数字必须标记或移除。
  • 不要将话语塞给真实人物作为引用。当以字幕形式呈现时,书面笑话没问题。
  • 在包含令人们尴尬的时刻之前,以及在展示陌生人未经模糊处理的面孔之前,先征求许可。
  • 逐字保留赞助商和资助者的官方文本。如果与其徽标不符,请询问而非编辑。
  • 检查二维码的链接目标,如果指向一个公开可编辑的文档,则警告用户。

处理修正

精确应用反馈,保持其他所有内容不变。将时间线保留为数据,这样一处更改只重新渲染受影响的片段。当必须删除某些内容以保持在长度限制内时,说明删除了什么。

诚实报告

你无法听到音频或实时观看。每次都明确说明这一点:

  • 你已验证的内容(提取的帧、时长、电平、二维码解码);
  • 用户必须通过耳朵和眼睛判断的内容(节拍同步、字幕时机、混音平衡);
  • 你删除了什么,以及哪些内容未能按请求执行;
  • 平台是否可能因商业音乐而静音视频。

捆绑文件

文件用途
scripts/doctor.py检查工具和依赖项
scripts/contact_sheet.py生成带时间戳的帧网格,用于查看素材和渲染结果
scripts/transcribe.py逐词转录,附带低置信度标记
scripts/captions.py逐词 ASS 字幕,映射到时间线
scripts/beats.py检测曲目的速度、节拍时间和最强音符
scripts/sfx.py生成无版权音效
scripts/music.py生成简单的原创芯片音乐或脉冲音乐背景,可循环
scripts/setup_tools.py按配置文件检查和安装可选工具,并保存 Whisper 模型
scripts/toolbox.py场景检测、抠图、人脸识别、二维码、字体、HTML 场景、分离、配音、响度、时间线导出
scripts/render.py将时间线 JSON 渲染为最终 MP4,附带可选的无音乐版本
scripts/qa.py检查时长、格式、大小、响度、ASS 和二维码
scripts/fit_size.py压缩到目标大小,或为传输进行分割
references/brief.md开始时需要询问的问题,以及空文件夹的处理方法
references/formats.md每种视频类型的配方
references/themes.md如何找到主题,附有示例
references/pipeline.md时间线格式、渲染规则、ASS 动画配方
references/tools.md哪个工具用于哪种需求,包括 Whisper 后端
references/environments.mdClaude Code 和 Claude app 的区别
references/qa-checklist.md交付前的检查清单
references/copy.md帖子字幕和可分享的消息

相关技能