Communitygithub.com

视频笔记

将带旁白的屏幕录制、产品演示或用户指向的任何视频,转化为带时间戳和截图的编号操作清单,所有处理均在本地完成。当用户说“检查视频文件”、“我以视频形式留下反馈”、“我录制了反馈”、“观看此视频”、“分析此演示”,或提供 .mov、.mp4、.webm 文件路径时使用。

视频笔记 是什么?

“视频笔记”技能专为 AI 编码代理(如 Claude Code、Codex 等)设计,用于处理包含口述反馈的屏幕录制视频。它利用本地运行的 Whisper(语音转文本)和 ffmpeg(视频处理)工具,确保所有数据保留在用户的机器上,绝不将视频或音频发送到云端 API。该技能会自动生成一个结构化的工作目录,包含带时间戳的文本转录和从视频中提取的关键帧截图,然后使用这些素材构建一个组织有序的“操作清单”,其中包含指向特定屏幕区域的引用、时间码和截图文件名。它支持多种工作场景:修正待办项、竞争产品分析(输出“他们做了什么”)、以及需要用户澄清的模糊点。关键工作流包括运行辅助 Python 脚本、审阅转录和截图,然后以标准化的 Markdown 格式编写最终笔记,这份笔记可以直接供后续的编码会话使用,而无需重看视频。

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

在你喜欢的 AI 中提问

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

文档

视频笔记 是做什么的?

用户将反馈录制成屏幕录制,边操作边讲解:一次通过,持续几分钟,常常在光标滞后时重复某个要点。交付物是一份操作清单,其他会话无需观看视频即可执行。Whisper 和 ffmpeg 在本地运行;不会将任何视频或音频发送到云端语音或视觉 API。

步骤

  1. 运行辅助脚本(它位于本文件旁边)。
    python3 "<该技能所在文件夹>/video-notes.py" "<视频路径>"
    
    它会复用与视频文件同目录下的 <视频文件名>.srt(如果存在),否则在 CPU 上运行 whisper --model base.en(在 Apple Silicon 笔记本上,每 5 分钟视频约需 2.5 分钟)。输出内容写入 <视频主文件名>.notes/ 文件夹:transcript.md(每行对应一个合并后的片段,附带帧名称)以及 1600px 宽的截图。当 <视频主文件名>.notes/ 的修改时间晚于视频文件时,结果会被直接复用;--force 强制重建,--model turbo 在基础转录效果不佳时使用,--every 10 用于无旁白的演示,--sheet 生成 2x2 缩略图集,--max-row 5 在说话和屏幕操作快速变化时捕获更多帧(每行最多 8 秒,每行一帧),--max-frames 40 为默认值。
  2. 阅读 transcript.md,然后查看截图。 如果使用了 --sheet,先快速浏览 sheet_NN.jpg(每张缩略图集包含四帧,按从左到右、从上到下的帧顺序排列,因此 sheet 01 包含第 1 到第 4 帧,其左上角为最早的那一帧),然后对每一行中指向屏幕(如“这个区域”、“这里”、“这两个图标”)或文本需要精读的帧,单独查看其单帧截图。缩略图集用于定位;只有单帧截图才能作为标注或尺寸的证据。
  3. 在视频文件旁边写入 <视频主文件名>.notes.md,使用绝对路径,无论当前工作目录是什么。格式如下:
    # <视频名称> · <录制日期> · <时长> · <帧中可见的应用名称或网址>
    
    ## 操作清单
    ### <屏幕区域,按屏幕上显示的名称命名:左侧栏、标题、设置面板>
    1. [mm:ss] <一句话的强制性修复指令>。用户原话:“<简短的原话>”。截图:frame_mmss.jpg
    2. ...
    
    ## 待定
    <标记为“稍后”、“最终”、“现在不做”的项目,格式同上>
    
    ## 不明确
    <每行一个需要用户回答的问题>
    
    编号贯穿整个清单,因此用户可以回复“3 和 7”。区域按访问顺序排列。重复的备注合并为一项,并在重复是关键信息时附加“说了 3 次”。
  4. 回复:提供文件路径、区域标题及每个区域中的条目数量,以及前三个条目。除非“不明确”部分有内容,否则不要提问。
  5. 当负责渲染屏幕的仓库已打开时,添加 ## 代码位置:条目编号 -> 文件路径,通过搜索帧中可见的组件名称和标签找到。如果没有仓库,则跳过该部分;切勿猜测路径。

规则

  • 如果截图中有无法辨认的文字,必须重新捕获,不可推测:使用 --width 2400,或使用 ffmpeg 裁剪该区域。
  • .notes/ 文件夹和 .notes.md 文件必须保持在视频文件旁边。在仓库内部,该文件夹必须被忽略(通过 .git/info/exclude),以确保大型录制文件不会进入 git。
  • 竞争产品分析或产品演示:步骤相同,但清单读作“他们做了什么”而非“修复”。
  • 转录使用位于 ~/.cache/whisper 的本地 Whisper 模型。不使用云端语音 API 或视觉 API;会话模型负责阅读截图。

完成检查清单

  • 已生成 transcript.md,并且在编写任何条目之前已阅读每一帧截图
  • 已写入 <视频主文件名>.notes.md:全局编号、区域按访问顺序排列、每个条目都包含时间戳和截图名称
  • 已合并重复项,已分离“待定”和“不明确”部分与“操作清单”
  • 未将任何视频或音频发送到本机之外

相关技能