# Markdown To Video Script

> 将 Markdown 文章自动转换成视频，包括口播稿生成、TTS 语音合成、Manim 文本动画、配图时间轴控制和 FFmpeg 视频合成

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

---


# Markdown 自动转视频

将 Markdown 文章自动转换成完整视频，支持从脚本生成到视频合成的全流程自动化。

## 功能特点

- **智能压缩**：将长文章压缩成 500 字左右的口播稿
- **保持风格**：保留原文的核心观点和表达风格
- **口语化**：自动转换成适合口播的表达方式
- **提取配图**：自动识别并整理文章中的所有图片
- **时间轴建议**：为每段口播内容匹配对应的配图
- **TTS 语音合成**：使用 TTSMaker API 生成语音（支持声音克隆）
- **文本动画**：使用 Manim 生成文字动画效果
- **自动合成**：使用 FFmpeg 合成最终视频

## 技术栈

- **TTS 语音合成**：[TTSMaker API](https://github.com/chen20250312/tts) - 支持声音克隆和多语言
- **文本动画**：Manim - Python 数学动画引擎，用于生成文字动画
- **字幕时间轴**：基于 TTS 返回的音频时长自动计算
- **视频合成**：FFmpeg - 合成语音、配图、字幕和动画

## 使用方法

### 模式 1：仅生成脚本（默认）

```bash
# 生成口播稿和视频脚本（短视频风格）
@markdown-to-video-script <文章路径>
```

输出：
- 口播稿（300 字左右，短视频风格）
- 配图列表
- 视频脚本时间轴
- 预计时长约 1 分钟

### 模式 2：自动生成视频（完整流程）

```bash
# 自动生成完整视频
@markdown-to-video-script <文章路径> --auto-generate
```

自动执行：
1. 生成口播稿
2. 调用 TTS API 生成语音
3. 使用 Manim 生成文字动画
4. 下载/处理配图
5. 使用 FFmpeg 合成视频

### 模式 3：分步执行

```bash
# 步骤 1：生成脚本
@markdown-to-video-script <文章路径> --step script

# 步骤 2：生成语音
@markdown-to-video-script <文章路径> --step tts

# 步骤 3：生成动画
@markdown-to-video-script <文章路径> --step animation

# 步骤 4：合成视频
@markdown-to-video-script <文章路径> --step compose
```

## 输出内容

### 脚本模式输出

1. **口播稿**（500 字左右）
   - 开场白（吸引注意力）
   - 核心内容（2-3 个要点）
   - 结尾（行动号召）

2. **配图列表**
   - 图片序号
   - 图片路径
   - 图片描述

3. **视频脚本**
   - 口播内容分段
   - 每段对应的配图编号
   - 建议停留时长

### 自动生成模式输出

1. **音频文件**：`output/audio.mp3`
2. **字幕文件**：`output/subtitles.srt`
3. **动画文件**：`output/animations/*.mp4`
4. **最终视频**：`output/final_video.mp4`
5. **项目文件**：`output/project.json`（包含所有元数据）

## 口播稿风格指南

**V3 短视频风格（默认）**：

### 特点
- 节奏快，每句话简短有力
- 口语化表达，接地气
- 开头直接引导关注
- 结尾强力号召行动
- 总字数 300 字左右
- 视频时长约 1 分钟

### 结构
1. **开头引导**："如需网址，关注后查看后台私信即可！"
2. **热点引入**：直接说重点，制造紧迫感
3. **痛点共鸣**：1-2 句话点出用户痛点
4. **技巧讲解**：简洁明了，不拖泥带水
5. **价值强化**：为什么选择这个方案
6. **行动号召**："话不多说，一键三连，评论区见！"

### 语言特点
- 多用短句，避免长句
- 使用"直接"、"立刻"等紧迫词汇
- 适当使用感叹号表达情绪
- 保留核心"金句"和亮点

## 配图匹配规则

1. **开场白**：使用第一张配图或封面图
2. **核心内容**：按顺序匹配文章中的配图
3. **结尾**：使用总结性配图或二维码
4. **停留时长**：根据口播内容长度建议 3-8 秒

## 环境配置

### 必需依赖

```bash
# Python 依赖
pip install fastapi uvicorn selenium requests manim ffmpeg-python

# 系统依赖
# macOS
brew install ffmpeg

# Ubuntu/Debian
sudo apt-get install ffmpeg

# Windows
# 下载 FFmpeg 并添加到 PATH
```

### TTS API 配置

1. 克隆 TTS 项目：
```bash
git clone https://github.com/chen20250312/tts.git
cd tts
```

2. 启动 TTS 服务：
```bash
docker-compose up -d
```

3. 验证服务：
```bash
curl http://localhost:8000/docs
```

### 配置文件

在 skill 目录创建 `config.json`：

```json
{
  "tts": {
    "api_url": "http://localhost:8000/api/tts",
    "voice": "default",
    "speed": 1.0,
    "pitch": 1.0
  },
  "manim": {
    "quality": "high",
    "fps": 60,
    "background_color": "#FFFFFF"
  },
  "ffmpeg": {
    "video_codec": "libx264",
    "audio_codec": "aac",
    "resolution": "1920x1080",
    "fps": 60
  },
  "output": {
    "dir": "./output",
    "keep_temp": false
  }
}
```

## 脚本目录

所有脚本位于 `scripts/` 子目录：

| 脚本 | 功能 |
|------|------|
| `generate_script.py` | 生成口播稿和视频脚本 |
| `generate_tts.py` | 调用 TTS API 生成语音 |
| `generate_animation.py` | 使用 Manim 生成文字动画 |
| `download_images.py` | 下载并处理配图 |
| `compose_video.py` | 使用 FFmpeg 合成最终视频 |
| `auto_generate.py` | 自动执行完整流程 |

## 示例

### 输入
```
用Gemini看YouTube效率提升10倍这2个技巧我藏了半年.md
```

### 输出

#### 1. 口播稿（498 字）

大家好！今天分享两个我藏了半年的技巧，用Gemini看YouTube，效率直接提升10倍。

你有没有遇到过这种情况？YouTube上看到一个超棒的技术分享，2小时长，全英文，没字幕。想看，但一想到要花2小时还要边听边记笔记，就直接放弃了。

我之前也是这样，直到发现了这两个技巧。现在一个2小时的视频，我5分钟就能"读"完，还不会错过任何重点。

**第一个技巧：一键提取完整字幕**

不需要下载视频，也不需要安装插件。打开Gemini，直接把YouTube链接粘贴进去，然后输入："请生成这个视频的完整字幕，不需要时间戳，整理成段落格式，并翻译成中文。"

点击运行，等一会就能看到完整字幕。我实测过中英文混杂的视频，Gemini都能精准识别。

**第二个技巧：个性化输出核心内容**

面对2小时的长视频，我们往往只想知道某个特定问题的看法。这时候可以用一段更强大的提示词，让Gemini像课代表一样帮你划重点。

它会输出视频标题、带时间戳的目录、核心摘要、关键要点，还有完整的按章节分段的转录文本。你可以快速浏览目录，直接跳到感兴趣的章节观看。

**为什么选Gemini？**

三个原因：第一，原生支持视频分析，不用下载转录；第二，100万Token上下文，可以处理超长视频；第三，国内免费可用，无需魔法。

在信息爆炸的时代，我们缺的不是信息，而是有效筛选和吸收信息的方法。善用AI，可以把我们从低效的信息处理中解放出来，把精力真正投入到思考和创造上。

好了，今天的分享就到这里。如果觉得有用，记得点赞转发！

---

#### 2. 配图列表

1. 互联网信息排泄链图
2. 字幕提取效果截图
3. 中英文混杂识别截图
4. 输出效果截图
5. 保存Gem截图
6. 快速体验通道二维码

---

#### 3. 视频脚本时间轴

| 时间段 | 口播内容 | 配图 | 停留时长 |
|--------|---------|------|---------|
| 0:00-0:15 | 开场白 + 问题引入 | 封面图 | 5秒 |
| 0:15-0:30 | 场景描述 | 配图1（信息排泄链） | 5秒 |
| 0:30-1:00 | 第一个技巧介绍 | 配图2（字幕提取） | 8秒 |
| 1:00-1:20 | 实测效果展示 | 配图3（识别效果） | 6秒 |
| 1:20-1:50 | 第二个技巧介绍 | 配图4（输出效果） | 8秒 |
| 1:50-2:10 | 进阶技巧 | 配图5（保存Gem） | 6秒 |
| 2:10-2:30 | 总结 + 行动号召 | 配图6（二维码） | 5秒 |

**总时长**：约 2 分 30 秒

---

## 使用建议

1. **先生成口播稿**：检查是否保留了核心观点
2. **调整配图顺序**：确保视觉逻辑流畅
3. **录制口播**：可以根据实际情况微调文字
4. **导入剪映**：使用时间轴建议快速剪辑

## 注意事项

- 口播稿字数会根据内容复杂度在 450-550 字之间浮动
- 如果原文配图较少，会建议补充哪些类型的配图
- 时间轴仅供参考，实际剪辑时可根据节奏调整
- 保持原文的"金句"和核心观点不变

## 适用场景

- 公众号文章转短视频
- 技术教程转讲解视频
- 产品介绍转宣传视频
- 个人经验分享转 Vlog

---

**让文章秒变视频脚本，从此告别手动整理！**

