# wikipedia2video-plus
从维基百科页面自动提取内容，生成多集视频系列的工具。支持 AI 驱动的脚本生成、并行视频渲染与自动合并，可快速将百科知识转化为可视化视频内容。

仓库地址：[https://github.com/XiaomingX/wikipedia2video-plus](https://github.com/XiaomingX/wikipedia2video-plus)


## 🌟 功能特性
- **自动内容提取**：通过维基百科 API 抓取页面标题与摘要，无需手动整理文本。
- **AI 脚本生成**：基于 OpenAI 模型（如 GPT-4o-mini），将百科内容转化为结构化视频脚本（支持多集分割）。
- **并行视频渲染**：借助 Replicate 平台调用视频生成模型（如 Pixverse），多集视频并行生成，提升效率。
- **自动视频合并**：生成多集视频后，自动拼接为完整视频文件，无需额外剪辑工具。
- **灵活配置**：支持自定义视频集数、AI 模型、输出路径等参数，适配不同使用场景。


## 🚀 快速开始
### 1. 环境准备
- **Python 版本**：3.8 及以上
- **必要 API 密钥**：
  - OpenAI API Key（用于生成视频脚本）
  - Replicate API Token（用于生成视频）
- **依赖工具**：FFmpeg（MoviePy 视频处理依赖，需提前安装）


### 2. 安装步骤
#### 步骤 1：克隆仓库
```bash
git clone https://github.com/XiaomingX/wikipedia2video-plus.git
cd wikipedia2video-plus
```

#### 步骤 2：配置环境变量
1. 在项目根目录创建 `.env` 文件，填入 API 密钥：
   ```env
   # .env 文件内容
   OPENAI_API_KEY=your-openai-api-key
   REPLICATE_API_TOKEN=your-replicate-api-token
   ```

#### 步骤 3：安装依赖包
```bash
pip install -r requirements.txt
```
- **依赖列表说明**（`requirements.txt` 内容）：
  ```txt
  openai>=1.0.0
  replicate>=0.20.0
  aiohttp>=3.9.0
  aiofiles>=23.2.0
  python-dotenv>=1.0.0
  moviepy>=1.0.3
  argparse>=1.4.0
  ```

#### 步骤 4：安装 FFmpeg
- **Windows**：下载 [FFmpeg 安装包](https://ffmpeg.org/download.html#build-windows)，添加安装路径到系统环境变量 `PATH`。
- **macOS**：通过 Homebrew 安装：`brew install ffmpeg`
- **Linux**：通过包管理器安装：`sudo apt install ffmpeg`（Ubuntu/Debian）或 `sudo dnf install ffmpeg`（CentOS/Fedora）


### 3. 使用指南
#### 步骤 1：准备主提示词模板
1. 在项目根目录创建 `inputs` 文件夹（用于存放提示词模板）。
2. 在 `inputs` 中创建提示词文件（如 `master_prompt.txt`），示例内容：
   ```txt
   你需要将维基百科内容转化为分集视频脚本，要求如下：
   1. 每集脚本包含「场景描述」和「旁白文本」，语言简洁易懂，符合视频可视化逻辑；
   2. 按「Episode X:」格式分割每集（X 为集数序号），共生成 {episodes} 集；
   3. 内容严格基于给定的维基百科标题和摘要，不添加无关信息。
   ```

#### 步骤 2：运行工具
通过命令行执行主脚本（假设主脚本名为 `wikipedia2video.py`），示例：
```bash
# 生成 3 集关于「Python 编程语言」的视频
python wikipedia2video.py \
  --urls "https://en.wikipedia.org/wiki/Python_(programming_language)" \
  --master-prompt "master_prompt.txt" \
  --episodes 3 \
  --prompt-model "gpt-4o-mini" \
  --video-model "pixverse/pixverse-v4.5"
```

#### 步骤 3：查看输出结果
- 生成的视频、脚本文件会保存在 `output/[维基百科标题]/` 目录下：
  - 单集视频：`output/Python_(programming_language)/Python_(programming_language)_episode_0.mp4`
  - 完整合并视频：`output/Python_(programming_language)/Python_(programming_language)_complete.mp4`
  - 生成的脚本：`output/Python_(programming_language)/Python_(programming_language)_prompt.txt`


## ⚙️ 配置说明
### 命令行参数详解
| 参数名          | 默认值                          | 说明                                                                 |
|-----------------|---------------------------------|----------------------------------------------------------------------|
| `--urls`        | 无（必填）                      | 维基百科页面 URL 列表，支持同时处理多个 URL（如 `--urls "url1" "url2"`） |
| `--master-prompt` | "master_prompt.txt"            | 主提示词模板文件名（存放于 `inputs` 目录下）                         |
| `--prompt-model` | "gpt-4o-mini"                  | 生成脚本使用的 OpenAI 模型（如 `gpt-3.5-turbo`、`gpt-4o`）           |
| `--video-model`  | "pixverse/pixverse-v4.5"        | 生成视频使用的 Replicate 模型（如 `runwayml/stable-diffusion-v1-5-video`） |
| `--episodes`     | 3                               | 生成的视频集数（需与提示词模板中的分集逻辑匹配）                     |


### 目录结构说明
```
wikipedia2video-plus/
├── inputs/                # 存放提示词模板
│   └── master_prompt.txt  # 主提示词模板（示例）
├── output/                # 存放输出文件
│   └── [页面标题]/        # 按维基百科页面标题分目录
│       ├── [标题]_prompt.txt  # 生成的视频脚本
│       ├── [标题]_episode_0.mp4  # 单集视频1
│       └── [标题]_complete.mp4  # 合并后的完整视频
├── .env                   # 环境变量配置（API密钥等）
├── .gitignore             # Git 忽略文件配置
├── LICENSE                # Apache-2.0 许可证文件
├── README.md              # 项目说明文档（本文档）
├── requirements.txt       # 项目依赖列表
└── wikipedia2video.py     # 主程序脚本
```


## 📄 许可证
本项目基于 **Apache License 2.0** 开源，详见 [LICENSE](LICENSE) 文件。


## 🤝 贡献指南
1. Fork 本仓库（点击 GitHub 页面右上角「Fork」按钮）。
2. 创建特性分支：`git checkout -b feature/your-feature`。
3. 提交修改：`git commit -m "Add your feature"`。
4. 推送分支：`git push origin feature/your-feature`。
5. 提交 Pull Request（PR），描述你的修改内容与用途。