This pulls frames from video files or URLs and sends them to vision models for analysis. You can point it at local files, direct video URLs, or even YouTube and Bilibili links (uses yt-dlp under the hood). It supports models like Doubao and OpenAI's vision APIs, with configurable frame extraction (default 10 frames, max dimension 720px). The workflow is straightforward: confirm the video source, clarify what the user wants to know, run the analyze.py script with your prompt, and show the results. Useful when you need to understand video content without watching it yourself, though keep in mind more frames mean better analysis but higher API costs.
npx -y skills add zrong/skills --skill video-analyzer --agent claude-codeInstalls into .claude/skills of the current project.
通过视觉/视频大模型分析视频内容,支持本地视频文件和互联网视频。
根据使用的模型设置对应的 API Key 环境变量:
# 火山引擎(豆包)
export ARK_API_KEY="your-api-key"
# OpenAI
export OPENAI_API_KEY="your-api-key"
编辑项目根目录的 agent_config.toml,在 [video-analyzer] 分区中配置模型:
[video-analyzer]
default_model = "doubao-vision"
[video-analyzer.models.doubao-vision]
base_url = "https://ark.cn-beijing.volces.com/api/v3"
api_key = "your-api-key" # 直接填写(优先)
api_key_env = "ARK_API_KEY" # 或从环境变量读取(api_key 为空时生效)
model = "doubao-seed-1-6-vision-250815"
api_type = "responses"
supports_video = false
每个模型需要:
base_url — API 地址api_key — API Key(直接填写,优先读取)api_key_env — 环境变量名(api_key 为空时 fallback)model — 模型 IDapi_type — responses 或 chat_completionssupports_video — 是否支持原生视频输入API Key 读取优先级:CLI --api-key > 配置文件 api_key > 环境变量 api_key_env
配置文件查找优先级:CWD → Skill 目录 → Git 根目录。可参考 agent_config.example.toml。
$ARGUMENTS 非空,将其作为分析提示词。models.json 中的 default_model,用户也可指定。scripts/ 目录下执行):
uv run analyze.py --video <视频路径或URL> --prompt "<分析提示词>"
可选参数:
--model <名称> — 指定模型(对应 models.json 中的 key)--frames <数量> — 抽帧数量(默认 10)--max-size <像素> — 帧最大边长(默认 720)--json — 要求模型返回 JSON 并解析(自动附加视频帧数/帧率/时长到 prompt,便于返回帧序号);解析失败时降级打印原文# 本地视频
uv run analyze.py --video /path/to/video.mp4 --prompt "描述视频内容"
# 互联网直接视频 URL
uv run analyze.py --video https://example.com/video.mp4 --prompt "分析视频"
# 视频站点 URL(YouTube、Bilibili 等)
uv run analyze.py --video https://www.youtube.com/watch?v=xxxxx --prompt "总结视频"
# 指定模型和抽帧数
uv run analyze.py --video video.mp4 --model doubao-vision --frames 20 --prompt "分析"
# 结构化输出(要求 JSON,自动附视频帧数/帧率/时长,便于返回帧序号)
uv run analyze.py --video video.mp4 --prompt "用 JSON 描述视频的关键时刻" --json
# 典型用例:为 spritesheet 分析循环动画区间(prompt 模板见 references/loop-analysis.md)
uv run analyze.py --video animation.mp4 --prompt "<循环分析模板>" --json
yt-dlp,已作为 Python 依赖自动安装juliusbrussee/caveman
mattpocock/skills
shadcn/improve
obra/superpowers
forrestchang/andrej-karpathy-skills
vercel-labs/skills