UI はローカライズ済みです。スキルの紹介と説明文書は選択した言語へ AI が自動翻訳し、コード・コマンド・パス・専門用語は原文のままです。原作者の文書が優先されます。
スキルを探す
生産性・共同作業 · SKILL.md

video-minutes

video-minutes

智能视频纪要生成器:从视频音频生成结构化纪要 —— 提取语音、生成字幕、自动分类(会议/课程/访谈/演讲/播客/教程/备忘),输出核心要点、行动项与 @tags 任务分发,支持 Markdown/Obsidian/Notion/飞书。支持本地视频 (.mp4/.mov/.mkv/.avi)、Zoom/腾讯会议录制、YouTube/B站链接。触发词:处理视频、生成视频纪要、视频纪要、视频转文字、视频总结、提取视频字幕、视频转笔记、总结这个视频、会议录像整理、网课笔记、视频内容提取、录屏整理、直播回放分析、培训视频归档。Do NOT use when:仅需视频转文字无总结(直接用 whisper)、视频无音频轨道或音频质量极差、需要实时视频流处理(须先录制)、视频时长超过 4 小时(建议先分段)。

Independent GitHub snapshot · Automated classification · Original documentation governs

スキルの説明

GitHub

name: video-minutes description: "智能视频纪要生成器:从视频音频生成结构化纪要 —— 提取语音、生成字幕、自动分类(会议/课程/访谈/演讲/播客/教程/备忘),输出核心要点、行动项与 @tags 任务分发,支持 Markdown/Obsidian/Notion/飞书。支持本地视频 (.mp4/.mov/.mkv/.avi)、Zoom/腾讯会议录制、YouTube/B站链接。触发词:处理视频、生成视频纪要、视频纪要、视频转文字、视频总结、提取视频字幕、视频转笔记、总结这个视频、会议录像整理、网课笔记、视频内容提取、录屏整理、直播回放分析、培训视频归档。Do NOT use when:仅需视频转文字无总结(直接用 whisper)、视频无音频轨道或音频质量极差、需要实时视频流处理(须先录制)、视频时长超过 4 小时(建议先分段)。"

video-minutes: 智能视频纪要生成器

Purpose

把一段视频转成一份可直接使用的结构化纪要:提取音轨、ASR 转录、按视频类型套用模板, 产出要点、时间线与行动项,并把行动项按 @tags 派发给对应 skill。技能的价值在于 分类正确、模板选对、行动项可追踪,而不是把语音原样抄成文字。

When to Use

  • 用户给出视频/录屏/录音文件,或会议录像、网课、访谈、播客、直播回放,要求整理成笔记或纪要。
  • 用户要"总结这个视频""提取字幕""视频转笔记""会议纪要""网课笔记"。
  • 需要从视频里抽出待办事项、决议、负责人,并希望后续自动跟进。
  • 触发词:视频纪要、视频总结、视频转文字、提取视频字幕、录屏整理、培训视频归档、 meeting minutes、video summary、transcribe video。

When NOT to Use

  • 只想把语音转成文字、不需要总结或分类 -> 直接用 whisper,不必走本技能。
  • 需要把视频翻译并配上配音/双语字幕 -> 交给 video-dubbing。
  • 需要给视频生成封面或配图 -> 交给 image-design / mckinsey-cover。
  • 视频无音轨、或音轨损坏到无法识别。
  • 需要实时/流式转写(本技能是离线批处理,须先录制)。
  • 时长超过 4 小时的视频,先分段再处理。

Workflow

  1. 检测配置(阻塞):按 scripts/config_manager.py 的优先级查找 ./.opencode/skills/video-minutes/config.yaml -> ~/.opencode/skills/video-minutes/config.yaml -> legacy ~/.video-minutes-config.json。命中则读取;命中 legacy 则迁移;全部未命中时 必须先完成首次设置向导并等待用户回答,否则不得继续。详见 references/config/first-time-setup.md。
  2. 确定视频类型:用户指定了 --type 就用它;否则运行分类器,把检测到的类型和置信度 明确告知用户,再继续。
  3. 执行处理:运行主入口脚本,传入视频路径与所需参数(见 ## Scripts)。
  4. 读取并核对输出:从返回的 output_path 打开纪要,确认要点、时间线、行动项非空且 与字幕一致;缺项时回退到类型模板补齐,不要编造视频中不存在的内容。
  5. 行动项分发:把提取到的行动项与 @tags 展示给用户,等确认后再派发;目标 skill 不可用时 降级为本地 TODO 清单(见 references/task-dispatch.md)。
  6. 交付:用 present_files 展示生成的纪要文件,并附一句类型、时长与输出路径说明。

Decision Rules

视频类型路由(--type auto 时由分类器判定,模板位于 references/templates/):

类型识别特征输出重点模板
meeting多人、任务分配、决策决议 + 行动项负责人 + 时间节点meeting.md
lecture单/双主讲、知识点密集知识图谱 + 章节 + 重点摘录lecture.md
interview问答、双方观点Q&A 整理 + 观点对比interview.md
presentationPPT、数据展示金字塔论点 + 关键数据presentation.md
podcast轻松对话、话题跳跃话题索引 + 金句 + 高光片段podcast.md
tutorial步骤演示、屏幕录制步骤清单 + 截图提示 + 踩坑点tutorial.md
note自言自语、碎片想法格式化文本 + 标签 + 待办note.md

其余分流:

  • 分类置信度低于阈值,或分类结果为空 -> 回退 note,并向用户说明可手动指定 --type。
  • 只想要字幕、不要纪要 -> 加 --transcript-only,产出 <视频名>-transcript.txt。
  • 精度不够/专有名词识别差 -> 提升 --model(如 small/medium/large)。
  • 时长 > 4 小时或处理频繁超时 -> 加 --segment-duration 1800 分段。
  • 不确定是否需要完整流水线 -> 短视频(<= 2h)可考虑多模态直接理解,见 references/background.md。
  • 用户指定输出格式 -> --format markdown|obsidian|notion|lark,落盘细节见 references/output-formats.md。

Constraints

  • 配置未就绪不得继续:未检测到配置文件时,首次设置是阻塞步骤,禁止跳过或臆造默认值。
  • 不得编造内容:要点、时间戳、决议、行动项必须可追溯到 ASR 字幕;不确定就标注不确定。
  • 不臆造分发目标:content-publisher/cron/gcal/calendar/image-gen/agent-swarm 等兄弟技能多数环境未安装,缺失时只输出本地 TODO,不得声称已派发。
  • 分发前必须确认:除非 tag 命中 dispatch.auto_dispatch_tags(默认 @reminder) 或用户显式 --skip-confirm,否则先征求确认。
  • 隐私:原始视频与字幕默认不出本机,除非用户明确要求上传或同步到 Notion/飞书。
  • 模板路径由代码约定:模板固定放在 references/templates/<type>.md,不要散落到别处。

Priority

  1. 首次设置阻塞 > 一切处理动作:配置未就绪时,任何转写请求都先被向导拦住。
  2. 类型准确性 > 处理速度:分类不确定时宁可问用户或降级到 note,不要套错模板。
  3. 用户确认 > 自动分发:确认机制永远优先于自动派发,除非标签在自动白名单内。
  4. 内容忠实 > 输出完整度:宁可缺项并标注,也不要补写视频里没有的内容。

Verification

交付前逐项确认:

  • 配置已加载,或首次设置向导已完成(未命中配置时)。
  • 视频类型与置信度已向用户说明,或已按 --type 显式指定。
  • output_path 存在且可打开;类型、时长与文件名一致。
  • 行动项已展示,分发前已获得确认(或命中自动白名单)。
  • 未安装的兄弟技能没有被谎报为"已分发",降级路径为本地 TODO。
  • 长视频未一次性硬跑,已按需分段。

Output

  • Outcome:一份结构化 Markdown 纪要(默认落到 output.directory,默认 ~/Documents/video-minutes),含摘要、要点、时间线、行动项与可选折叠字幕。
  • Done when:纪要文件已生成并可读、类型判定有依据、行动项已展示、分发(如需)已确认。
  • Evidence:output_path 实际存在;内容可回溯到 ASR 字幕;文首记录类型与置信度; 未分发项以本地 TODO 形式列出。

References

按需加载,不要预先全读:

  • references/video-types.md — 需要理解或调整分类结果、查看分类维度与时长区间时读。
  • references/task-dispatch.md — 要把行动项派发出去、或判断某数据源是否被支持时读。
  • references/output-formats.md — 用户切换 Markdown/Obsidian/Notion/飞书,或要确认落盘路径与命名时读。
  • references/transcription-engine.md — 需要换模型、调精度、排转录失败、装依赖时读。
  • references/background.md — 用户问版本差异、能力边界,或要评估是否值得走完整流水线时读。
  • references/config/config-schema.md — 要逐项修改 config.yaml、确认字段默认值时读。
  • references/config/first-time-setup.md — 命中"未检测到配置"分支、需要执行设置向导时读。
  • references/templates/meeting.md、references/templates/lecture.md、references/templates/interview.md、references/templates/presentation.md、references/templates/podcast.md、references/templates/tutorial.md、references/templates/note.md — 生成对应类型纪要时由脚本按 video_type 取用;仅在查看或修改某类型版式时人工打开。

Scripts

  • <skill>/scripts/generate_minutes.py — 主入口。用法 python3 <skill>/scripts/generate_minutes.py <视频路径> [--type T] [--language zh] [--model medium] [--format obsidian] [--transcript-only] [--batch] [--segment-duration 1800] [-o 输出] [--no-dispatch|--skip-confirm] [-v]; 返回处理结果字典,含 output_path、transcript、action_items。
  • <skill>/scripts/video_processor.py — 被主入口调用的流水线协调器(抽音轨 -> 转录 -> 分类 -> 套模板 -> 存盘 -> 提行动项);一般不由人直接运行。
  • <skill>/scripts/insanely_fast_transcriber.py — faster-whisper 封装; python3 <skill>/scripts/insanely_fast_transcriber.py <音频文件> 可独立转录并打印结果。
  • <skill>/scripts/classifier.py — 启发式类型分类器,返回 {type, confidence, reasoning, scores}。
  • <skill>/scripts/config_manager.py — 配置加载/保存/校验与录制目录探测;被主入口自动调用。
  • <skill>/scripts/dispatcher.py — 行动项解析与 @tag 分发;dispatch_batch() 批量派发, 未实现的目标返回 success: false。

Troubleshooting

  • 模型下载失败 -> 设 HF_ENDPOINT=https://hf-mirror.com 后重试。
  • 视频无音频 -> 用 ffprobe 检查音轨;确认 ffmpeg 已安装。
  • 分类不准 -> 手动 --type,或调整 classification.confidence_threshold。
  • 处理超时 -> --segment-duration 1800。
  • 更多失败模式与参数细节见 references/transcription-engine.md。

Related Skills

  • video-dubbing — 视频翻译 + 配音 + 双语字幕,本技能不做配音。
  • transcribe — 纯转录、无总结;只需文字时优先它。
  • mlx-tts — 本机 TTS,可为纪要生成语音摘要。
  • content-publisher / cron / gcal / agent-swarm — 可选分发目标,缺失时降级为本地 TODO。
保存したスキル