关于 watch-video
watch-video 是用于生成带时间戳视频分析的 Skill,区分画面观察、口述内容和推断,并通过抽帧与证据检查分析本地视频或可访问的公开视频。
主要功能
- 01生成带时间戳的发现
- 02区分画面与语音证据
- 03粗略及密集抽帧
- 04处理字幕与文字稿
- 05验证结构化报告
适用场景
- 01核实画面是否支持口述主张
- 02按时间戳审查视频演示
- 03对照字幕与可见事件
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ tomgranot/ watch-video --skill watch-video安装后在 Claude Code 中输入/watch-video确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
LICENSErequirements-url.txtrequirements.txtTHIRD_PARTY_NOTICES.mdagents/openai.yamlreferences/analysis-protocol.mdscripts/acquire.pynormalize_transcript.pypackage_skill.pyrun.pysample_frames.pysetup_runtime.pysmoke_test.pyvalidate_report.pytests/test_regressions.py详细介绍
观看视频
按时间戳记录视频展示、讲述和支持的内容。将观察到的情况、口头陈述和推断分开。
要求
本地文件需要 ffmpeg、ffprobe、Python 3.10+ 和 Pillow。公共 URL 还需要 yt-dlp。将 SKILL_DIR 解析为此文件所在的目录。通过 $SKILL_DIR/scripts/run.py 运行命令,以便在 .venv 存在时使用其中的环境。如果缺少运行时环境且允许安装本地依赖,请运行 python3 "$SKILL_DIR/scripts/setup_runtime.py"。切勿登录、加载浏览器 Cookie、绕过 DRM 或付费墙,或规避访问控制。
工作流
-
创建专用分析目录。切勿修改源视频。
-
获取源文件和平台字幕:
python3 "$SKILL_DIR/scripts/run.py" acquire <video-path-or-url> \ --output-dir <analysis-dir> [--language en]优先使用本地文件。只有当
yt-dlp无需登录、Cookie、付费墙、DRM 或浏览器自动化即可直接检查并下载时,才接受公共 URL。如果无法直接获取,请索要经授权的本地副本。对于 URL,优先使用平台手动字幕,其次使用自动字幕。如果两者都没有,记录transcript unavailable并继续进行视觉分析;不要生成转录文本。对于本地文件,检测同名的.vtt、.srt、.json或.json3旁置文件。 -
如存在
<analysis-dir>/source.json和<analysis-dir>/transcript.md,请读取。将字幕视为语音证据,而非视觉证据。 -
构建粗略的视觉索引:
python3 "$SKILL_DIR/scripts/run.py" sample-frames <video-path-from-source.json> \ --output-dir <analysis-dir>/visual-overview --mode overview --scene-threshold 0.32 -
打开
visual-overview/index.md中列出的每张联系表。记录可见事件、演示、幻灯片变更、屏幕文字,以及与转录文本显著不符之处。 -
在重要或含糊的时间戳附近进行有针对性的高密度分析:
python3 "$SKILL_DIR/scripts/run.py" sample-frames <video> \ --output-dir <analysis-dir>/window-<start> \ --mode dense --start <seconds> --end <seconds> --fps 4仅在较短的取证窗口中使用
--mode every-frame。它会按照报告的源帧率使用 FFmpeg 采样,因此可变帧率素材可能会出现重复或遗漏的采样。脚本默认会限制输出数量。只有当用户需要尽可能密集的检查时,才提高上限。 -
综合带时间戳的发现。对于每项实质性陈述,标注其依据:
observed:在采样帧中可见spoken:出现在字幕或提供的转录文本中inferred:根据观察到的或口头证据推理得出
-
将支持状态标记为
supported、conflicted或not_found。置信度较低时,说明缺少哪些证据。 -
对于详细分析,请按照 references/analysis-protocol.md 中的架构保存
report.json,然后进行验证:python3 "$SKILL_DIR/scripts/run.py" validate-report <analysis-dir>/report.json \ --manifest <analysis-dir>/visual-overview/manifest.json对报告中引用的每个高密度窗口,重复使用
--manifest <path>。
分析规则
- 先进行粗略分析,再以更高的时间密度检查重要窗口。
- 切勿将转录文本中的陈述描述为视频在视觉上证明的内容。
- 少量引用字幕;默认使用转述。
- 为章节、发现、差异和用户指定的时刻附上时间戳。
- 当幻灯片、代码、图表或较小的界面文字很重要时,请以更高分辨率检查帧。
- 说明字幕是自动生成、缺失、不完整还是不同步。
- 如果问题涉及许多分散的事实,请分多个有针对性的步骤作答,而不是进行一次宽泛扫描。
- 没有证据时,不要推断身份、意图、因果关系或画外事件。
请阅读 references/analysis-protocol.md,了解采样模式、证据架构、长视频处理方式和失败情形。