Communitygithub.com

pranav7/video-explainers

当用户要求制作解说视频、动画讲解、旁白视频、'3Blue1Brown风格'或'3b1b风格'视频,或任何主题的Manim动画时使用。

video-explainers 是什么?

这是一个用于生成3Blue1Brown风格解说视频的AI代理技能,视觉部分使用Manim Community Edition,旁白使用本地文本转语音模型Kokoro-82M(无需API密钥)。该技能的核心工作流程分为两部分:首先由用户或当前代理编写`script.md`文件,其中包含每行旁白文本及对应的屏幕画面描述;然后启动一个子代理,根据脚本构建视频——包括编写场景、渲染、检查布局并生成最终视频。子代理在后台运行,大约需要20个工具调用,但因其上下文较小,构建过程更便宜、更快,且不中断用户与当前代理的交互。该技能通过`explainer`命令完成剩余工作,支持macOS系统,并提供了`explainer doctor`命令来一键安装依赖(Homebrew包、字体、TinyTeX、Python环境等)。视频目录默认放在`~/Movies/explainers/<slug>/`或项目文档目录中,脚本格式要求每章对应一个场景,旁白文本必须可朗读(不使用LaTeX或符号),并提供调色板(如SKY、MINT、CORAL等)来统一视觉概念的颜色。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/pranav7/video-explainers/tree/HEAD/skills/explain-video

在你喜欢的 AI 中提问

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

文档

视频解说器

制作一个带旁白的、3Blue1Brown风格的解说视频,适用于任何主题。视觉效果使用 Manim(Community Edition)。旁白使用 Kokoro-82M,一个本地文本转语音模型。它在机器上运行,无需 API 密钥。每行旁白决定了与之匹配的动画时间。

工作分为两部分:

  1. 你编写 script.md:每行旁白以及播放时的屏幕内容。你拥有上下文,因此由你编写脚本。
  2. 一个子代理根据 script.md 构建视频。它编写场景、渲染场景、检查布局,并生成最终渲染视频。

构建过程大约需要 20 次工具调用,每次调用都会重新发送完整上下文。新的子代理上下文较小,因此构建过程更便宜、更快。子代理在后台运行,因此用户可以继续与你协作。

explainer 命令完成其余工作。它必须在 PATH 环境变量中。关于设置,请参阅 https://github.com/pranav7/video-explainers。运行 explainer -h 查看命令列表。

0. 设置(每台机器一次)

运行 explainer doctor。它会安装 Homebrew 包、字体、TinyTeX、Python 环境和图标,然后测试 Kokoro 和 LaTeX。重新运行是安全的。如果某个命令因缺少依赖而失败,请运行它。

1. 规划

  • 位置。 如果对话涉及的项目有其自己的文档文件夹,则将视频放在 videos/<slug>/ 文件夹中。否则,使用 ~/Movies/explainers/<slug>/。
  • 观众和时长。 仅当请求未明确说明时才询问。默认:对该主题没有背景知识的好奇成年人,2 到 4 分钟。
  • 脚本长度。 Kokoro 每分钟大约说 170 个单词,因此一个 3 分钟的视频大约需要 500 个单词的旁白。每 30 到 45 秒写一个章节。

根据主题选择合适的形式。

对于概念(算法、数学或科学中的想法):

  1. 以一个具体的问题或谜题开始,而不是定义。
  2. 用一个具体的例子建立直觉,让观众能看到。
  3. 进行概括,然后才展示公式。公式命名他们刚刚看到的内容。
  4. 以一张图呈现关键想法结束。

对于情况(失败的运行、事故、设计、工作进展):

  1. 以发生的事情开始,使用真实数据。
  2. 逐步展示导致问题的机制。
  3. 展示变化的内容:修复、决定或下一步。
  4. 以一张包含变化后的整个系统的图结束。

2. 编写 script.md

在视频目录中编写 script.md,格式如下:

# 为什么订单页面很慢

面向团队中的工程师。大约 3 分钟。

## 调色板

| 概念 | 颜色 |
| --- | --- |
| API 服务器 | SKY |
| 数据库 | VIOLET |
| 缓慢、浪费的工作 | CORAL |
| 修复 | MINT |

## 1. 钩子:五十个订单,五十次查询

- "订单页面加载五十个订单需要四秒钟。"
  - 一个浏览器卡片,带珊瑚色显示的 "4.1 s",以及一个包含 50 个订单标签的列表。
- "服务器为每个订单向数据库请求一次。"
  - 一个 API 服务器卡片和一个数据库卡片。数据包在它们之间传输,每个订单一个。

每个章节标题的格式为 ## <数字>. <场景名称>: <章节标题>。构建器会为每个章节创建一个场景类。章节标题会成为视频中的章节标记。

构建器无法看到当前对话。请将屏幕上的所有名称、数字、标签和值都写入脚本中。

旁白完全按照书面文本朗读:

  • 使用口语形式编写:"x 的平方","两 pi r","P O 号码","v 二"。
  • 不要在旁白中使用 LaTeX、符号或代码。
  • 每行写一个句子,最多两个。每一行对应一个视觉变化。
  • 如果 Kokoro 发音错误,请内联标注其音素:[Kokoro](/kˈOkəɹO/)。
  • 默认语音为 af_heart。如果用户关心语音,请运行 explainer voices 让他们试听(afplay voice-samples/<name>.wav)。

在每个行下,描述画面,而不是幻灯片。命名对象、它们显示的内容以及移动的部分。为每个概念分配调色板中的一种颜色。

调色板颜色取自工具包的强调色:SKY, MINT, AMBER, CORAL, VIOLET, AQUA, ROSE, PEACH, LIME。工具包还有用于非概念事物的中性色:SUBTLE, FAINT, INK。工具包包含卡片、标签、表格、代码窗口、管道、序列图、时间线、树、标注、图表、大数字和 Lucide 图标。描述使用这些工具的图片。

按原样显示每个数字。不要要求数字从零开始计数。

3. 移交构建

以子代理身份启动构建器。如果你的说明指定了用于构建工作的代理类型或模型,请使用它们。给出以下提示:

为 <directory>/script.md 构建解说视频。运行 `explainer guide` 并遵循其指示。报告视频路径、视频时长以及你保留的每个布局警告及其原因。

如果用户要求字幕,请在提示中添加 "使用 --captions 渲染。"。

告知用户视频正在制作中,然后继续其他工作。如果无法启动子代理,请运行 explainer guide 并自行完成其步骤。

4. 交付

当构建器报告时,打开 <directory>/video.mp4(在 macOS 上,使用 open)。告知用户:

  • 文件路径和时长。
  • 视频带有章节标记。
  • 构建器留下的任何未解决问题。

询问需要更改的内容。如果要进行修改,如果你的工具可以向同一构建器发送消息,则将修改发送给它,因为构建器保留其上下文。否则,使用新的构建器进行修改。如果修改影响旁白,请先编辑 script.md。

相关技能