# Video To Article

> 将 YouTube 视频链接转成文章，根据不同平台调性改写，输出为 Markdown 文件。使用 /video-to-article 触发。

- Skill: `xiaoyuan928/video-to-article` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add xiaoyuan928/video-to-article`
- Raw SKILL.md: https://api.skillmd.com/api/skills/xiaoyuan928/video-to-article/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Docs & Writing
- Author: xiaoYuan928 (https://skillmd.com/u/xiaoyuan928)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/xiaoyuan928/video-to-article

---


# 视频转文章 Skill

将 YouTube 视频的字幕/转录文本提取出来，根据目标平台的调性改写成文章，输出为 Markdown 文件。

## 使用方式

```
/video-to-article <YouTube链接> [平台名]
```

平台名可选：公众号（默认）、博客、推特、即刻

也可以一次生成多平台版本：
```
/video-to-article <YouTube链接> 公众号+博客
```

## 输出位置

默认输出为当前目录下的 Markdown 文件，文件名格式：`[平台]-文章标题.md`

如果你使用 Notion，可以自行配置 Notion MCP 并修改步骤 6 将输出写入 Notion 数据库。

## 执行流程

### 步骤 1：提取转录文本

运行脚本获取视频字幕：

```bash
python3 ~/.claude/skills/video-to-article/scripts/fetch_transcript.py "<YouTube链接>" --format json
```

脚本会：
1. 提取 video ID
2. 用 youtube-transcript-api 抓字幕（优先中文，fallback 英文）
3. 用 yt-dlp 获取视频元信息（标题、频道、时长等）
4. 输出 JSON 格式（含 segments + metadata）

**如果脚本失败**（无字幕的视频），用 yt-dlp 尝试下载自动字幕：
```bash
yt-dlp --write-auto-sub --sub-lang "zh-Hans,en" --skip-download --sub-format vtt -o "/tmp/yt-sub" "<YouTube链接>"
```

**依赖安装：**
```bash
pip install youtube-transcript-api yt-dlp
```

### 步骤 2：分析内容

从转录文本中提取：
- 核心主题和关键观点
- 内容结构（是教程？评测？分享？讨论？）
- 关键数据和事实
- 精彩引用

### 步骤 3：补充信息（可选）

如果视频涉及特定产品/技术/事件，用 WebSearch 补充：
- 官方信息和数据
- 背景知识
- 最新进展

搜索量控制：1-2 次即可，不要过度搜索。

### 步骤 4：翻译（如需）

如果视频语言不是中文：
- 先理解全文含义
- 用地道中文重新表达，不要翻译腔
- 专业术语保留英文或附注英文原文
- 人名、地名、产品名保留英文

### 步骤 5：按平台调性改写

根据目标平台风格改写文章。**核心原则：这是改写/重新创作，不是翻译或搬运。要用自己的视角重新组织内容。**

#### 公众号（默认）

- **字数**：1000-3000 字
- **风格**：深度解读，有个人观点和视角
- **结构**：
  1. 开头切入（一两句话说清楚这个视频讲了什么，为什么值得看）
  2. 核心内容展开（按主题重新组织，不是按视频时间线）
  3. 个人点评和延伸思考
  4. 原视频链接
- **语感**：
  - 短句为主，节奏快
  - 用"我"的视角：我觉得、我注意到、我的理解是
  - 说人话，不要学术腔
  - 可以加入自己的经验和思考
- **禁止**：
  - 不用"首先""其次""最后"
  - 不用"不是…而是…"
  - 不替读者总结意义
  - 不用标题党词汇（炸裂、颠覆、吊打）

#### 博客

- **字数**：1500-5000 字
- **风格**：结构化、技术向、可以更深入
- **结构**：
  1. 标题（SEO 友好）
  2. 一段话摘要
  3. 目录/关键要点
  4. 正文（按主题分节，带小标题）
  5. 总结
  6. 原视频链接
- **语感**：
  - 可以稍微正式一些，但不要太学术
  - 代码/命令/工具名用行内代码格式
  - 适合加列表、表格等结构化元素

#### 推特/X

- **字数**：单条 280 字符内（约 140 中文字），或 thread 3-7 条
- **风格**：精炼、有信息量、吸引互动
- **结构**（Thread）：
  1. Hook：一句话抓注意力
  2. 核心观点展开（每条讲一个点）
  3. 最后一条：总结 + 原视频链接
- **语感**：
  - 直接、口语化
  - 每条推特独立成句，自成一体
  - 中文为主，术语保留英文

#### 即刻

- **字数**：200-800 字
- **风格**：轻松、像跟朋友分享
- **结构**：
  1. 一句话推荐/引出
  2. 2-3 个核心要点
  3. 个人感想
  4. 原视频链接
- **语感**：
  - 最口语化
  - 可以用"哈哈""嗯""挺好的"这种语气词
  - 像在即刻动态里随手分享

### 步骤 6：输出文件

将文章保存为 Markdown 文件，内容结构：

```markdown
[改写后的文章正文]

---

## 原视频信息

标题：[视频原标题]
频道：[频道名]
时长：[XX分XX秒]
链接：[YouTube URL]

## 平台

[目标平台名称]
```

如果一次生成多个平台版本，每个版本保存为独立文件。

### 步骤 7：告知用户

输出：
- 文件保存路径
- 文章字数
- 原视频基本信息（标题、时长、语言）
- 是否做了翻译
- 提醒用户审核内容

## 质量检查

输出前自检：

- [ ] 内容准确，没有杜撰视频中没有的信息
- [ ] 是改写重组，不是逐句翻译/搬运
- [ ] 有个人视角和观点
- [ ] 语感符合目标平台
- [ ] 字数在目标范围内
- [ ] 文末带原视频链接

