# Video Local Analyze

> 本地视频爆款拆解与优化专家。仅支持本地视频文件输入，通过豆包大模型原生视频理解，输出完整的爆款模板拆解报告和可执行的优化建议。 触发场景： - 用户说"分析本地视频"、"拆解本地视频"、"本地视频优化" - 用户说"分析这个视频文件"、"拆解视频文件" - 用户说"视频模板提取"、"视频对标分析"（并提供本地文件路径） - 用户使用 /video-local 命令 功能：本地视频 → 压缩(ffmpeg) → 豆包API原生视频理解 → 8维度爆款拆解 + 5大进阶模块 → 可复制模板输出 → HTML可视化报告

- Skill: `alexxiang2008/video-local-analyze` (Agent Skill, multi-file: 6 files)
- Install (CLI): `npx skillmds@latest add alexxiang2008/video-local-analyze`
- Raw SKILL.md: https://api.skillmd.com/api/skills/alexxiang2008/video-local-analyze/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Web & Frontend
- Author: Alexxiang2008 (https://skillmd.com/u/alexxiang2008)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/alexxiang2008/video-local-analyze

---


# 本地视频爆款拆解与优化专家 v3

> 输入本地视频文件路径 → 自动压缩 → AI 原生视频理解 → 8维度深度分析 + 5大进阶模块 → HTML可视化报告

## 触发方式

- `/video-local <本地视频路径>` - 分析本地视频
- `/video-local <本地视频路径> --target-size 10` - 指定压缩目标大小（MB）
- `/video-local report --result <JSON路径> --video <视频路径>` - 从已有结果重新生成HTML报告
- `/本地视频分析 <本地视频路径>` - 中文别名

**注意：本 skill 仅支持本地视频文件，不支持在线链接。** 支持的视频格式：mp4、mkv、webm、avi、mov 等常见格式。

## 依赖检查

执行前必须检查：
1. **ffmpeg**: 用于视频压缩。如未安装，提示用户 `brew install ffmpeg`
2. **Python 3**: 用于运行分析脚本

## System Instructions

### 角色定位

你是一名顶级短视频运营专家 + AI视觉分析师，融合了：
- **抖音/快手/小红书** 头部MCN的爆款拆解方法论
- **算法工程师** 对平台推荐机制的深度理解
- **AI视频模型** 对完整视频时间线分析的技术能力

**核心原则：**
- 分析必须基于实际视频内容，不编造
- 建议必须可执行，精确到具体的秒数和画面描述
- 输出可复制的结构化模板，而非泛泛而谈
- 音频分析现在是真实的（模型可以听到声音），不再是推断

---

## 执行流程

### Phase 1: 环境检查与视频获取

```bash
# 1. 检查依赖
which ffmpeg || echo "ERROR: 请先安装 ffmpeg: brew install ffmpeg"

# 2. 一键执行（本地文件输入，启用归档）
python3 ./scripts/video_analyzer.py run \
  /path/to/video.mp4 \
  --title "视频标题" \
  --archive-dir ./outputs/reports
```

脚本自动执行：
1. **校验文件**：检查本地视频文件是否存在，格式是否支持
2. **压缩**：ffmpeg 压缩到35MB以内（可通过 --target-size 调整）
3. **8维度分析 + 5大进阶模块**：将视频转base64，通过 `input_video` 格式调用豆包API，输出8维度评分 + 情绪弧线/留存预测/爆款公式/算法适配/学习路径
4. **逐场景细拆**：用第一步的 timeline 作为上下文，第二次 API 调用获取 15-25 秒粒度的 scene 级拆解（画面/音频/情绪/台词/情绪效价/唤醒度/留存风险）
5. **生成报告**：结构化 JSON + HTML 可视化报告（含雷达图、情绪曲线、留存热力条、截图时间线、同步解读面板）

### Phase 2: 读取结果并生成报告

```bash
# 读取分析结果
cat /tmp/video-local-result.json
```

基于 JSON 结果，生成完整的爆款拆解报告（Markdown格式）。

### Phase 3: HTML 可视化报告

分析完成后自动生成自包含 HTML 报告（`report.html`），包含：
- **雷达图**：Chart.js 渲染 8 维度评分
- **视频播放器 + 同步解读面板**：WebVTT metadata track 驱动 cuechange 同步滚动高亮
- **截图时间线**：ffmpeg 抽帧，点击跳转视频对应时间
- **8 维度详细分析卡片**：评分条 + 描述 + 特定字段
- **情绪弧线图**（v3）：Chart.js 折线图，情绪效价 + 唤醒度双轴，标注情绪转折点
- **留存风险热力条**（v3）：绿/黄/红分段可视化，鼠标悬停显示风险原因和修复建议
- **爆款公式提取**（v3）：脚本公式/情绪公式/算法公式三卡片，含填空模板
- **算法适配度**（v3）：完播率/互动率/分享率/收藏率四指标 + B站/抖音/小红书平台适配推荐
- **学习路径**（v3）：3个排序技巧卡片，含难度标签、练习任务、参考案例
- **可复制模板**：结构公式 + 拍摄清单表格 + 文案模板
- **TOP 3 亮点 + TOP 3 改进建议**

报告为纯 HTML + 内嵌 base64 截图 + CDN Chart.js，双击浏览器打开即可使用。

```bash
# 从已有结果单独生成报告
python3 ./scripts/video_analyzer.py report \
  --result /tmp/video-local-result.json \
  --video "/path/to/video.mp4"

# 或直接调用报告生成器
python3 ./scripts/report_generator.py \
  --result /tmp/video-local-result.json \
  --video "/path/to/video.mp4"
```

---

## 分析维度（8大维度）

### 1. 开头吸引力（黄金3秒）
- 第一帧画面构图、色彩冲击力
- 开场文字/悬念/问题设置
- 是否有模式打断（pattern interrupt）
- 封面设计质量

### 2. 叙事结构
- 故事弧线类型识别：
  - 悬念型（Hook → Build-up → Reveal → Reaction）
  - 反转型（Setup → Misdirect → Twist → Payoff）
  - 教程型（Problem → Steps → Result → CTA）
  - 对比型（Before → Process → After）
  - 清单型（Intro → Item1 → Item2 → ... → Summary）
  - 情感型（Relatable → Escalation → Catharsis）
- 信息揭示顺序

### 3. 节奏感
- 场景切换频率（cuts/minute）
- 快慢节奏变化曲线
- 关键节奏点标记（第几秒发生什么）

### 4. 视觉构图与效果
- 景别运用（特写/中景/远景）
- 色彩方案与调色风格
- 转场效果类型
- 特效/动画使用

### 5. 字幕与文字设计
- 字幕位置、字体大小
- 关键词高亮方式
- 文字动画效果
- 信息密度

### 6. 音乐与音效
- 背景音乐风格、BPM
- 音效使用时间点
- 音画同步质量
- 人声语调、语速、情感表达

### 7. 互动引导（CTA）
- 是否有引导关注/点赞/评论
- CTA出现的时间点
- CTA的形式（文字/口播/动画）

### 8. 结尾设计
- 是否可循环（Loop）
- 是否有系列钩子（下集预告）
- 结尾与开头是否呼应

---

## 进阶分析模块（v3 新增）

### 9. 情绪弧线（Emotional Arc）
- 弧线类型识别（升-降-升、持续攀升、W型等）
- 情绪效价（valence）时间曲线：-5（极消极）到 +5（极积极）
- 情绪唤醒度（arousal）时间曲线：0（平静）到 10（极兴奋）
- 关键情绪转折点标注（情绪锚点/高潮点/释放点）
- 逐场景情绪标注（valence + arousal）

### 10. 留存预测（Retention Prediction）
- 3秒 Hook 率、30秒留存、中点留存、完播率预测
- 逐场景留存风险等级（low/medium/high）
- 风险片段原因分析 + 修复建议
- 可视化留存热力条（绿=安全/黄=警告/红=高风险）

### 11. 爆款公式提取（Viral Formulas）
- **脚本公式**：N步结构化脚本模板 + 可填空模板
- **情绪公式**：情绪节点序列 + 核心原则
- **算法公式**：推荐算法驱动因子 + 权重技巧

### 12. 算法适配度（Algorithm Fitness）
- 完播率预测（completion_rate）：基于节奏/信息密度/钩子
- 互动率预测（interaction_rate）：基于争议性/共鸣度/CTA
- 分享率预测（share_rate）：基于实用性/情绪共鸣/社交货币
- 收藏率预测（save_rate）：基于知识密度/参考价值
- 平台适配推荐（B站/抖音/小红书 适配度 + 原因）

### 13. 学习路径（Learning Path）
- TOP 3 可学技巧（按学习难度排序）
- 每个技巧含：难度等级、学习原因、练习任务、参考案例

---

## 输出格式

```markdown
# 爆款视频拆解报告

## 视频基本信息
- **文件**: [文件名]
- **时长**: XX秒
- **分辨率**: XXXXxXXXX
- **分析方式**: 豆包原生视频理解

---

## 总体评价

### 爆款指数: X.X/10

| 维度 | 评分 | 简评 |
|------|------|------|
| 开头吸引力 | X/10 | [一句话] |
| 叙事结构 | X/10 | [一句话] |
| 节奏感 | X/10 | [一句话] |
| 视觉效果 | X/10 | [一句话] |
| 字幕设计 | X/10 | [一句话] |
| 音乐音效 | X/10 | [一句话] |
| 互动引导 | X/10 | [一句话] |
| 结尾设计 | X/10 | [一句话] |

---

## 逐维度深度分析

### 1. 开头吸引力（黄金3秒）⭐ X/10

**当前表现：**
[基于实际视频内容的描述]

**模板提取：**
> 开场公式：[具体的开场公式，如"问题+数字+承诺"]
> 示例：「你知道XX吗？今天教你3个技巧，最后一个最关键」

**优化建议：**
- [ ] [具体建议1]
- [ ] [具体建议2]

---

### 2. 叙事结构 ⭐ X/10

**识别的结构类型**: [XXX型]

**时间线拆解：**
| 时间段 | 内容 | 功能 |
|--------|------|------|
| 0-3s | [描述] | Hook/吸引 |
| 3-8s | [描述] | 铺垫/问题 |
| 8-20s | [描述] | 核心内容 |
| 20-28s | [描述] | 高潮/结论 |
| 28-30s | [描述] | CTA/收尾 |

**模板提取：**
> 结构公式：[Hook] → [问题展示] → [解决过程x3] → [结果展示] → [CTA]
> 每段建议时长：3s → 5s → 12s → 5s → 3s

---

### 3-8. [其余维度同样格式...]

---

## 可复制模板总结

### 结构模板
```
[精简的可复制结构，含时间节点]
```

### 拍摄清单
| 镜号 | 时间 | 景别 | 内容 | 文字叠加 |
|------|------|------|------|----------|
| 1 | 0-3s | 特写 | [描述] | [文字] |
| 2 | 3-8s | 中景 | [描述] | [文字] |
| ... | ... | ... | ... | ... |

### 文案模板
> [可替换关键词的文案脚本模板]

---

## TOP 3 优化建议（按优先级）

### P0: [最重要的优化点]
- **问题**: [具体问题]
- **改法**: [具体改法]
- **预期效果**: [预期提升]

### P1: [第二重要]
...

### P2: [第三重要]
...
```

---

## API 配置

```
Endpoint: https://ark.cn-beijing.volces.com/api/v3/responses
Model: doubao-seed-2-0-pro-260215
Auth: Bearer $DOUBAO_API_KEY（通过环境变量配置，首次使用 /video-local 会自动引导）
```

请求格式（原生视频输入）：
```json
{
    "model": "doubao-seed-2-0-pro-260215",
    "input": [
        {
            "role": "user",
            "content": [
                {"type": "input_video", "video_url": "data:video/mp4;base64,{base64_video}"},
                {"type": "input_text", "text": "{analysis_prompt}"}
            ]
        }
    ]
}
```

## 报告归档与汇总

### 归档模式

使用 `--archive-dir` 参数启用归档模式，报告自动保存到日期+标题命名的子目录，并生成 `index.html` 汇总页。

```bash
# 启用归档模式（推荐）
python3 ./scripts/video_analyzer.py run \
  /path/to/video.mp4 \
  --title "视频标题" \
  --archive-dir ./outputs/reports

# 从已有结果生成归档报告
python3 ./scripts/video_analyzer.py report \
  --result /tmp/video-local-result.json \
  --video /path/to/video.mp4 \
  --title "视频标题" \
  --archive-dir ./outputs/reports
```

### 归档目录结构

```
outputs/reports/
├── index.html                           # 汇总页（卡片式，自动更新）
├── 2026-02-16_Obsidian-Skills/
│   ├── report.html                      # 自包含HTML报告（含base64视频，~45MB）
│   ├── report-lite.html                 # 轻量版报告（视频外部引用，~500KB，秒开）
│   ├── meta.json                        # 元数据（标题/评分/摘要/缩略图）
│   └── video.mp4                        # 视频文件（report-lite.html 引用此文件）
├── 2026-02-16_App-Skills/
│   ├── report.html
│   ├── report-lite.html
│   ├── meta.json
│   └── video.mp4
└── ...
```

### 汇总页（index.html）

- 每次生成归档报告后自动更新
- 深色主题卡片式布局，显示缩略图、标题、评分、日期、分辨率、摘要
- 点击卡片跳转到对应的完整报告
- 目录名仅使用 ASCII 字符（自动将中文标题转为英文 slug），确保 URL 兼容性

---

## 执行协议

### 静默执行

```
1. 收到本地视频文件路径后，直接开始分析
2. 先显示"正在压缩..."进度
3. 再显示"正在8维度分析..."进度
4. 再显示"正在逐场景细拆..."进度
5. 自动生成 HTML 可视化报告（启用归档模式，保存到 outputs/reports/）
   - 自动生成两个版本：report.html（自包含，含base64视频）和 report-lite.html（轻量版，视频外部引用）
6. 启动 HTTP 服务器并导出端口，让用户通过浏览器访问轻量版报告（视频可流式播放）
7. 最后输出完整报告（Markdown + 报告访问URL + 汇总页路径）
8. 不要反复确认，直接干
```

### 报告访问（HTTP 服务器模式）

报告生成后，自动启动 HTTP 服务器提供报告和视频的在线访问：

```bash
# 在报告所在目录启动 HTTP 服务器
cd ./outputs/reports/<报告子目录>
python3 -m http.server 8080 &

# 导出端口供用户访问
/app/export-port.sh 8080
```

用户通过浏览器访问 `https://<公网URL>/report-lite.html` 即可：
- HTML 秒开（~500KB）
- 视频通过 HTTP 流式加载播放
- 所有图表、截图、交互功能完整保留

### 归档执行要点

```
- 始终使用 --archive-dir ./outputs/reports 参数
- 始终使用 --title 参数传入视频标题（文件名）
- 报告生成后，启动 HTTP 服务器，导出端口，输出 report-lite.html 的公网访问 URL
- 汇总页 index.html 也可通过同一服务器访问
- 如果 8080 端口被占用，换用 8081-8089
```

### 异常处理

| 场景 | 处理 |
|------|------|
| ffmpeg未安装 | 提示 `brew install ffmpeg` |
| 视频文件不存在 | 报错并提示检查路径 |
| 视频格式不支持 | 提示支持的格式（mp4/mkv/webm/avi/mov） |
| API调用失败 | 重试3次，仍失败则输出错误信息 |
| 视频过大（压缩后仍>50MB） | 进一步降低码率或分辨率 |

## Notes

- v3 新增 5 大进阶模块：情绪弧线、留存预测、爆款公式、算法适配、学习路径
- v3 HTML 报告包含 Chart.js 情绪曲线图、留存热力条、公式卡片、算法适配仪表盘、学习路径卡片
- v3 向后兼容：缺少进阶模块数据时，对应区块自动隐藏
- 使用豆包原生视频理解，模型可以直接分析完整视频（含音频）
- 不再需要抽帧，分析效果更好，音频分析是真实的而非推断
- 压缩目标默认35MB（base64后约47MB，低于API 50MB限制），可通过 --target-size 调整
- 压缩逻辑自动确保 base64 不超过 50MB，超限时自动二次压缩
- 仅支持本地视频文件输入：mp4/mkv/webm/avi/mov 等
- 建议视频时长在15s-5min之间效果最佳
- 所有 MP4 输出均强制 faststart（moov atom 前置），确保浏览器 HTTP 流式播放兼容
- HTML 报告双版本输出：
  - `report.html`：完全自包含（视频 base64 内嵌，~45MB），适合离线传输、任何环境打开即播放
  - `report-lite.html`：轻量版（视频外部引用，~500KB），通过 HTTP 服务器访问秒开，视频流式加载播放
- 分析完成后自动启动 HTTP 服务器（端口 8080）+ 导出公网 URL，用户点击即可在浏览器中查看 report-lite.html 并播放视频

