Install any skill in seconds. Free to start, no credit card required.
Get Started Free →火山视频理解 - 使用火山方舟视频理解 API 分析视频内容。通过 Files API 上传视频(推荐),支持大文件(最大512MB),可用于视频内容分析、物体识别、动作理解等。当用户需要分析视频、理解视频内容、提取视频信息时激活此技能。
.claude/skills/freestylefly-volcengine-video-understanding/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-02 | ✗→✓ | ▲ Improved | 63% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 79% | 0% |
| case-06 | ✗→✓ | ▲ Improved | -13% | 0% |
| case-07 | ✗→✓ | ▲ Improved | -13% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 35% | 0% |
使用字节跳动火山方舟视频理解 API(doubao-seed-2-0-pro-260215 等模型)对视频进行深度理解和分析。
推荐方式:Files API 上传 + Responses API 分析
需要设置 ARK_API_KEY 环境变量。
bashcp .canghe-skills/.env.example .canghe-skills/.env
.canghe-skills/.env 文件,填写你的 API Key:ARK_API_KEY=your-actual-api-key-herebashexport ARK_API_KEY="your-api-key"
process.env).canghe-skills/.env~/.canghe-skills/.envbashcd ~/.openclaw/workspace/skills/volcengine-video-understanding python3 scripts/video_understand.py /path/to/video.mp4 "描述这个视频的内容"
bashpython3 scripts/video_understand.py /path/to/video.mp4 "视频中出现了哪些人物?"
bashpython3 scripts/video_understand.py /path/to/video.mp4 "分析视频中人物的情感变化"
bashpython3 scripts/video_understand.py /path/to/video.mp4 "总结视频要点" \ --model doubao-seed-2-0-pro-260215 \ --fps 2
bashpython3 scripts/video_understand.py /path/to/video.mp4 "描述视频" --output result.json
| 参数 | 默认值 | 说明 | |------|--------|------| | video_path | 必填 | 视频文件路径 | | instruction | 必填 | 分析指令/问题 | | --model | doubao-seed-2-0-pro-260215 | 模型 ID | | --fps | 1 | 视频采样帧率(预处理) | | --output | - | 结果输出文件路径 |
doubao-seed-2-0-pro-260215 (默认)doubao-seed-2-0-lite-250728doubao-seed-1-6-251015bashpython3 scripts/video_understand.py ~/Desktop/video.mp4 "详细描述这个视频的内容,包括场景、人物和动作"
bashpython3 scripts/video_understand.py ~/Desktop/video.mp4 "用3句话总结这个视频的要点"
bashpython3 scripts/video_understand.py ~/Desktop/video.mp4 "视频中的人物在做什么动作?按时间顺序描述"
bashpython3 scripts/video_understand.py ~/Desktop/video.mp4 "分析视频中的场景变化和环境特征"
Files API 上传:
bashcurl https://ark.cn-beijing.volces.com/api/v3/files \ -H "Authorization: Bearer $ARK_API_KEY" \ -F 'purpose=user_data' \ -F 'file=@video.mp4' \ -F 'preprocess_configs[video][fps]=1'
Responses API 分析:
json{ "model": "doubao-seed-2-0-pro-260215", "input": [ { "role": "user", "content": [ { "type": "input_video", "file_id": "file-xxxx" }, { "type": "input_text", "text": "用户指令" } ] } ] }
| FPS | 适用场景 | |-----|----------| | 0.3-0.5 | 慢节奏视频、静态场景、节省token | | 1 | 一般视频分析(默认) | | 2-3 | 快速动作、细节分析 |
pythonfrom scripts.video_understand import analyze_video result = analyze_video( file_path="/path/to/video.mp4", instruction="描述视频内容", model="doubao-seed-2-0-pro-260215", fps=1 ) # 提取回答 text = "" for item in result.get("output", []): if item.get("type") == "message": for content in item.get("content", []): if content.get("type") == "output_text": text = content.get("text", "") break print(text)
常见错误及解决方案:
| 错误 | 原因 | 解决方案 | |------|------|----------| | API Key 错误 | 未设置或错误 | 检查 ARK_API_KEY 环境变量 | | 文件不存在 | 路径错误 | 检查文件路径 | | 上传失败 | 文件过大或格式不支持 | 检查文件大小(<512MB)和格式 | | 处理超时 | 视频过长或复杂 | 缩短视频或降低 FPS |
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | pass→pass | 13,222 | 12,016 | -9% | 1 | 1 | 0% | 2,288 | 4,068 | +78% | 0 | 0 | — |
case-02 | fail→pass | 14,159 | 10,700 | -24% | 1 | 1 | 0% | 2,318 | 3,770 | +63% | 0 | 0 | — |
case-03 | pass→pass | 10,700 | 7,830 | -27% | 1 | 1 | 0% | 1,830 | 3,190 | +74% | 0 | 0 | — |
case-04 | fail→fail | 8,494 | 7,039 | -17% | 1 | 1 | 0% | 1,160 | 2,108 | +82% | 0 | 0 | — |
case-05 | fail→pass | 10,347 | 9,931 | -4% | 1 | 1 | 0% | 1,484 | 2,661 | +79% | 0 | 0 | — |
case-06 | fail→pass | 18,640 | 4,895 | -74% | 1 | 1 | 0% | 2,517 | 2,197 | -13% | 0 | 0 | — |
case-07 | fail→pass | 14,675 | 2,173 | -85% | 1 | 1 | 0% | 2,394 | 2,072 | -13% | 0 | 0 | — |
case-08 | fail→pass | 10,542 | 3,531 | -67% | 1 | 1 | 0% | 1,821 | 2,456 | +35% | 0 | 0 | — |
case-09 | pass→pass | 10,322 | 2,405 | -77% | 1 | 1 | 0% | 1,613 | 2,172 | +35% | 0 | 0 | — |
case-10 | fail→pass | 10,055 | 4,416 | -56% | 1 | 1 | 0% | 1,598 | 2,586 | +62% | 0 | 0 | — |
case-11 | fail→pass | 11,698 | 4,110 | -65% | 1 | 1 | 0% | 1,736 | 2,345 | +35% | 0 | 0 | — |
case-12 | fail→pass | 22,546 | 8,070 | -64% | 1 | 1 | 0% | 1,146 | 2,981 | +160% | 0 | 0 | — |
case-13 | fail→pass | 13,323 | 3,514 | -74% | 1 | 1 | 0% | 2,387 | 2,416 | +1% | 0 | 0 | — |
case-14 | fail→pass | 11,831 | 1,847 | -84% | 1 | 1 | 0% | 2,179 | 2,031 | -7% | 0 | 0 | — |
case-15 | fail→pass | 4,105 | 1,779 | -57% | 1 | 1 | 0% | 572 | 2,009 | +251% | 0 | 0 | — |
case-16 | fail→pass | 7,692 | 3,303 | -57% | 1 | 1 | 0% | 1,170 | 2,286 | +95% | 0 | 0 | — |
case-17 | fail→pass | 4,573 | 1,452 | -68% | 1 | 1 | 0% | 626 | 1,952 | +212% | 0 | 0 | — |
case-18 | fail→pass | 18,411 | 1,748 | -91% | 1 | 1 | 0% | 2,941 | 2,031 | -31% | 0 | 0 | — |
case-19 | pass→pass | 4,834 | 1,998 | -59% | 1 | 1 | 0% | 760 | 2,007 | +164% | 0 | 0 | — |
case-20 | fail→pass | 13,625 | 10,217 | -25% | 1 | 1 | 0% | 2,294 | 3,571 | +56% | 0 | 0 | — |
case-21 | fail→fail | 10,218 | 3,541 | -65% | 1 | 1 | 0% | 2,048 | 2,373 | +16% | 0 | 0 | — |
case-22 | pass→pass | 5,869 | 2,249 | -62% | 1 | 1 | 0% | 952 | 2,115 | +122% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 20 counted toward the lift figure. The other 2 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +68 percentage points is the difference between those two pass rates over the 20 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.