用途:把公开的 YouTube 视频、播放列表或搜索主题,先转成本地上下文包,再作为编码、设计、QA 或产品上下文使用。该技能强调证据导向:智能体应优先阅读生成的 codex_context.md,仅在需要时间戳支持某个结论时,才检查字幕、清单或采样帧。
主要能力:解析来源为单个视频、播放列表或有界搜索;在可用时用 yt-dlp 抓取元数据;下载字幕(除非要求用 --skip-captions 做更快的 Gemini 优先运行);在设置 GEMINI_API_KEY 或 GOOGLE_API_KEY 后,让 Gemini 分析公开的 YouTube URL;在需要本地视觉证据时,可选下载媒体并采样帧;在 .codex/video-context/ 下写出可移植的上下文包。
使用方式:先运行设置检查:python scripts/setup_youtube_context.py;如需将 yt-dlp 安装到当前 Python 用户环境:python scripts/setup_youtube_context.py --install-yt-dlp。进行视觉/音频分析前设置密钥,如 export GEMINI_API_KEY="...",PowerShell 用 $env:GEMINI_API_KEY = "..."。不要把 API 密钥粘贴进提示、SKILL.md、生成的上下文包、源文件或 issue/PR 评论。
常用调用示例:单视频用 python scripts/ingest_youtube_video.py "https://www.youtube.com/watch?v=VIDEO_ID" --focus "...";播放列表加 --max-videos 8;搜索主题加 --source-type search --max-videos 5;快速 Gemini 优先加 --skip-captions --json;本地帧证据加 --download-video --sample-interval 3。
主要参数:source 为公开 YouTube URL、播放列表 URL 或搜索主题;--source-type auto|video|playlist|search;--max-videos N 默认 5;--focus TEXT 指定下游任务所需证据;--model MODEL 默认取 GEMINI_MODEL 或 gemini-flash-latest;--no-gemini;--skip-captions;--download-video;--sample-interval N;--json。
输出:单视频包位于 .codex/video-context/<video-id>/,含 metadata.json、captions/、gemini_video_analysis.md、codex_context.md、run_manifest.json;播放列表与搜索运行还会写 .codex/video-context/_collections/<collection-slug>/ 下的 collection_manifest.json 与 codex_context.md。
限制与排错:yt-dlp 是播放列表扩展与搜索发现的必需项;缺 ffmpeg 时无法抽帧,但普通元数据、字幕与 Gemini 摄取仍可继续;Gemini 报 HTTP 400、401 或 403 时需更换或新建 Google AI Studio 密钥后重跑;没有产生时间戳时不要编造精确时间,应检查字幕或用更窄的 --focus 重跑。向用户报告时,给出上下文包路径、优先阅读的 codex_context.md、是否捕获字幕/Gemini/帧,以及缺失依赖或被拒密钥的警告。