video-watch 用于把视频转换成 GitHub Copilot 可检查的素材,包括字幕、帧联系表、帧索引、清单和提示包。它受 bradautomates/claude-video 启发,但面向 GitHub Copilot 工作流,不假设 Claude Code 的 Read 并行能力;应先生成文件,再只检查回答所需素材。
适用场景:用户要求观看、检查、总结、对比或诊断视频;输入是 yt-dlp 支持的视频 URL,或本地 .mp4、.mov、.mkv、.webm 文件;任务同时依赖语音内容和屏幕画面,例如缺陷复现、产品演示、发布视频、教程、网络研讨会、广告或屏幕录制。
不适用情形:不得绕过 DRM、付费墙、认证或站点条款;不得请求或存储 cookies、bearer token、签名 URL 或私有媒体凭据。如果官方 API 或已有转写稿能直接回答任务,应优先采用更轻量的路径。
核心流程:依赖不确定时先运行预检,例如 python <skill-dir>/scripts/preflight.py;URL 输入使用 python <skill-dir>/scripts/preflight.py --url-mode。生成素材可运行 python <skill-dir>/scripts/video_watch.py <url-or-path> --question "<what to answer>"。若其他工具、Azure Speech 或 Speech Translator Desktop Plus 已生成转写稿,可用 --transcript-file <path>。私有或需认证媒体建议使用 --detail transcript --metadata-only --transcript-file <path>,且不要传入 cookies、bearer token 或签名 URL 凭据。
素材阅读顺序:manifest.json → prompt.md → transcript.md → frame-index.md → contact-sheet.jpg → 必要时才读取 frames/ 中选定的文件。manifest.json 记录本地源字节的 SHA-256,或发生下载时记录下载 URL 视频字节的哈希;仅元数据的 URL 运行将哈希留为 null,而不获取媒体。回答时需说明结论是仅基于转写稿、仅基于帧,还是受稀疏采样限制。对于特定时间点,可用 --start / --end 重新运行以聚焦帧预算。
细节模式包括:transcript(仅字幕或附属转写稿,最快)、efficient(小规模视觉检查,用于快速分类)、balanced(默认联系表,适合多数屏幕录制和演示)、token-burner(用户明确需要广泛视觉覆盖时使用更大规模视觉检查)。
参考文档:详细工作流见 references/workflow.md,依赖与设置见 references/dependencies.md,帧预算与联系表见 references/frame-budget.md,可选 Scout/Whisper/Azure Speech 后端见 references/backends.md。