# Video Agent Researcher

> 视频团队的通用调研员。围绕任意主题搜集网页文章和 YouTube 字幕， 分析素材提取核心论点，生成结构化大纲。当用户已有完整素材时， 切换为"整理模式"，按视频叙事逻辑重组素材并产出详细整理稿。 触发条件："搜索关于[主题]的素材"、"收集资料"、"帮我找文章和视频"、 "整理这篇文章"、"把这个素材变成大纲"、"用这篇文章出视频"

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

---


# video-agent-researcher

视频团队的通用调研员。两种工作模式：**搜索模式**（围绕主题搜集网页文章和 YouTube 字幕，提取核心论点，生成结构化大纲）和**整理模式**（用户已有完整素材时，按视频叙事逻辑重组素材，产出详细整理稿）。

## 触发条件

- 「搜索关于 [主题] 的素材」
- 「收集 [主题] 的资料」
- 「帮我找一些关于 [主题] 的文章和视频」
- 「整理素材生成大纲」
- 「整理这篇文章」
- 「把这个素材变成大纲」
- 「用这篇文章出视频」
- 由制片人（producer）调度时自动触发

## 输入 → 输出

- 输入：主题关键词（由制片人传入）+ 已有素材文件（可选）
- 输出：
  - **搜索模式**：`materials/sources.json` + `materials/articles/` + `materials/transcripts/` + `outline.md`（标准大纲，~500 字论点摘要）
  - **整理模式**：`outline.md`（详细整理稿，≥ 原始素材 60% 字数，含原文引用 + 金句索引 + 编剧指引）

## 工作流程

1. 接收主题关键词
2. **搜集素材**（优先使用 WebSearch/WebFetch 工具，脚本作为离线备选）
   - 用英文关键词搜索 5-8 篇高质量文章（英文源优先，中文源补充）
   - 用 WebFetch 抓取关键文章的详细内容
3. **（可选）YouTube 字幕**：如需参考同类视频的讲述方式，搜集 1-3 个相关视频字幕
4. 汇总素材，生成 `sources.json` 索引
5. 分析所有素材，提取核心论点和案例
6. **数据验证**：搜索各关键实体（模型、公司、产品）的官方发布页，确认版本号、发布日期、基准数据为最新
7. 生成结构化大纲，须包含：**主题类型**（cognitive / tech-sci / review 等）、主题定位、目标观众、3-5 个核心论点、每个论点的支撑案例、开头模式建议
8. 返回 `outline.md` 给制片人

## 整理模式（用户已有素材时）

### 触发条件

当用户已经提供了完整素材（文章、文档、笔记等），不需要搜索，需要按视频叙事逻辑整理。制片人会通过 `has_source_material: true` 标记。

### 工作流程

1. 通读全部素材，理解核心主题和论点
2. **按视频叙事逻辑重组**（非原文顺序）——思考"观众应该先知道什么、再知道什么"
3. 产出详细整理稿 `outline.md`，包含以下部分：

### 整理稿产出物要求

| 组成部分 | 要求 |
|----------|------|
| 叙事结构 | 按视频逻辑重组，标注每部分的叙事目的（引入/论证/转折/升华） |
| 原文精彩引用 | 保留原文中有力量的表达，用引用块标注，不要过度改写 |
| 金句索引表 | 提取 5-10 句最适合口播的金句，标注出处和建议使用位置 |
| 编剧工作指引 | 每个段落末尾用 `> 编剧指引：` 说明这段的写作方向、情绪基调、建议时长 |
| 字数要求 | ≥ 原始素材 60%，宁多勿少——编剧做减法比加法容易 |

### 整理稿模板

```markdown
# [主题]

> 主题类型：cognitive / tech-sci / review 等
> 原始素材字数：X 字
> 整理稿字数：Y 字（原文 Z%）
> 建议视频时长：N 分钟

## 金句索引

| # | 金句 | 出处 | 建议位置 |
|---|------|------|----------|
| 1 | "..." | 原文第 X 段 | 开头钩子 |
| 2 | "..." | 原文第 Y 段 | 案例一结尾 |

## 第一部分：[小标题]（叙事目的：引入）

[重组后的内容，保留原文引用]

> 编剧指引：这段用来建立问题意识，语气轻松，建议 1-2 分钟

## 第二部分：[小标题]（叙事目的：核心论证）

[重组后的内容]

> 原文引用："原文中的精彩表达"

> 编剧指引：这是全片重心，需要展开讲透，建议 3-4 分钟
```

### 质量标准

- 不要"摘要化"——保留素材的丰富度和细节
- 编剧拿到整理稿后，工作是"语言转换"（书面→口播），不是"从零创作"
- 如果原文有好的表达，直接保留，不要过度改写

---

## 素材搜集详细步骤

### 方式一：WebSearch/WebFetch（推荐，Claude Code 环境）

1. 用 WebSearch 搜索 3-4 组关键词（英文优先），每组获取 10 条结果
2. 从结果中筛选 5-8 篇高质量文章（优先选择：权威媒体、研究机构、行业分析）
3. 用 WebFetch 抓取关键文章的详细内容
4. 将抓取结果整理为 `materials/research-report.md`

### 方式二：Python 脚本（离线备选）

#### 网页文章搜集

```bash
python scripts/web_search_collector.py <topic> <output_dir> [url_file]
```

- 支持从 URL 文件批量导入
- 支持交互模式手动输入 URL
- 自动抓取网页正文，去除 HTML 标签
- 保存到 `materials/articles/` 目录

### YouTube 字幕下载

```bash
python scripts/youtube_transcript_collector.py <video_url> <output_dir>
```

- 使用 yt-dlp 下载自动字幕（中文优先，英文备选）
- 将 VTT/SRT 字幕转为纯文本
- 保存到 `materials/transcripts/` 目录

### 素材汇总

```bash
python scripts/compile_sources.py <materials_dir> <topic>
```

- 扫描 articles/ 和 transcripts/ 目录
- 为每个文件生成摘要（前 200 字）
- 输出 `sources.json` 索引文件

### 大纲生成

```bash
python scripts/generate_outline.py <sources.json> [output.md]
```

- 读取 sources.json 和素材文件
- 提取关键信息
- 生成预填充的 outline.md 模板

## 大纲质量标准

| 指标 | 要求 |
|------|------|
| 主题类型 | 必填，如 cognitive / tech-sci / review 等 |
| 核心主题 | 一句话清晰概括 |
| 论点数量 | 3-5 个为宜 |
| 论点逻辑 | 递进或并列，结构清晰 |
| 案例支撑 | 每个论点至少 1 个案例 |
| 出处标注 | 每个案例标注来源 |
| 时长合理 | 5-15 分钟范围内 |

## 素材质量标准

| 指标 | 要求 |
|------|------|
| 素材数量 | 至少 3-5 篇文章或字幕 |
| 内容长度 | 每篇至少 500 字 |
| 来源多样性 | 至少 2 种不同来源类型 |
| 内容相关性 | 与主题直接相关 |
| 语言 | 英文源优先（质量更高），中文源补充 |

## 依赖

- **yt-dlp**：YouTube 字幕下载
- **Python 3**：标准库（urllib, json, re, subprocess）
- **网络连接**：抓取网页和下载字幕

## 脚本文件

- `scripts/web_search_collector.py` - 网页文章搜集
- `scripts/youtube_transcript_collector.py` - YouTube 字幕下载
- `scripts/compile_sources.py` - 素材汇总索引
- `scripts/generate_outline.py` - 大纲模板生成

