catalog/repos/agents365-ai--video-podcast-maker.md

316 lines
14 KiB
Markdown
Raw Permalink Normal View History

2026-04-07 11:44:56 +08:00
# AI视频播客自动生成
`视频制作` `TTS语音` `Remotion` `多平台发布` `AI工具`
# 视频播客制作器
[中文文档](README_CN.md)
自动化流水线,从一个主题出发,创作专业视频播客。**支持哔哩哔哩、YouTube、小红书、抖音和微信视频号**并可输出多语言内容zh-CN、en-US。集成了研究调查、脚本生成、多引擎 TTSEdge/Azure/豆包/CosyVoice、Remotion 视频渲染与 FFmpeg 音频混合等能力。
**兼容:** [Claude Code](https://claude.ai/code) · [OpenClaw](https://openclaw.ai/)ClawHub· [OpenCode](https://opencode.ai/) · [Codex](https://openai.com/index/introducing-codex/) —— 任何支持 SKILL.md 的编程智能体
**发布至:** 哔哩哔哩 · YouTube · 小红书 · 抖音 · 微信视频号
> **无需编程!** 用自然语言描述你的主题,编程智能体会逐步引导你完成每个环节。你负责创意决策,智能体处理所有技术细节。制作第一个视频播客比你想象的更简单。
> **注意:** 本项目仍在积极开发中,可能尚未完全成熟。我们持续迭代改进,非常欢迎你的反馈和建议——随时[提交 Issue](https://github.com/Agents365-ai/video-podcast-maker/issues) 或联系我们!
## 功能特性
- **主题调研** - 网络搜索与内容收集
- **脚本撰写** - 带章节标记的结构化解说词
- **多引擎 TTS** - Edge TTS免费、Azure Speech、火山引擎豆包、CosyVoice、ElevenLabs、Google Cloud TTS、OpenAI TTS
- **Remotion 视频** - 基于 React 的视频合成与动画
- **视觉风格编辑** - 在 Remotion Studio 界面调整颜色、字体与布局
- **实时预览** - 渲染前通过 Remotion Studio 即时调试
- **自动对齐时间** - 通过 `timing.json` 实现音画同步
- **BGM 混音** - 用 FFmpeg 叠加背景音乐
- **字幕烧录** - 可选嵌入 SRT 字幕
- **4K 输出** - 3840x2160 分辨率,画质清晰
- **章节进度条** - 播放时显示当前章节的可视化时间轴
- **中英双语 TTS** - 使用 Azure Speech 或 CosyVoice 进行中英混合解说
- **发音纠正** - 全局与项目级多音字词典,修正中文多音字
- **哔哩哔哩模板** - 开箱即用的 Remotion 模板(`Video.tsx``Root.tsx``Thumbnail.tsx``podcast.txt`),快速搭建项目
- **组件库** - 可复用的视觉构建块对比卡片、时间轴、代码块、引用块、特性网格、数据条、数字统计、流程图、图标卡、图示揭示、音频波形、Lottie 动画、媒体区块、章节布局、动态背景),用于组合丰富的章节页面
- **偏好学习** - 自动学习用户风格偏好(颜色、字体、语速),并应用于后续视频
- **多平台** - 哔哩哔哩、YouTube、小红书、抖音、微信视频号各平台与语言设置独立
- **多语言** - 支持中文zh-CN和英文en-US脚本模板、TTS 声音与字幕字体
- **字幕偏好** - 自定义字体、大小、颜色、描边;可开关字幕烧录
- **可配置 CTA** - 自动B站一键三连 / YouTube 订阅)、动画、文字或自定义
### 各平台优化
**哔哩哔哩:**
- **脚本结构** - 欢迎开场 + 一键三连结尾引导
- **章节时间戳** - 自动生成 `MM:SS` 格式的 B 站章节
- **封面生成** - AIimagen/imagenty或 Remotion自动生成 16:9 + 4:3 两种版本
- **视觉风格** - 粗体文字、减少留白、信息密度高
- **发布信息** - 标题公式、标签策略、简介模板
**YouTube**
- **SEO 优化** - 标题不超过 70 字符,关键词丰富的描述,标签与 Hashtag
- **章节** - 自动生成 YouTube 章节时间戳(首行固定为 0:00
- **CTA** - "点赞、订阅并分享"文字动画或自定义
**小红书:**
- **标题** - 最多 20 字,简洁有力,支持 emoji
- **简介** - 200-500 字,种草 / 知识分享风格,含 emoji
- **话题标签** - `#话题#` 格式双井号5-10 个标签
- **封面** - 3:41080x1440适配信息流展示
- **CTA** - "点赞收藏加关注"文字动画
**抖音:**
- **格式** - 仅支持竖版短视频9:16不支持横版长视频
- **简介** - 100-200 字,口语化、轻松风格,含 emoji
- **话题标签** - `#话题` 格式单井号3-8 个标签
- **CTA** - "点赞关注"纯文字(无动画)
**微信视频号:**
- **格式** - 仅支持竖版短视频9:16不支持横版长视频
- **简介** - 100-300 字,适合转发的知识分享风格
- **话题标签** - `#话题` 格式单井号3-8 个标签
- **CTA** - "点赞关注,转发给朋友"纯文字(无动画)
## 工作流程
![工作流程](assets/workflow.png)
## 相关技能
本技能依赖 **remotion-best-practices**,并可与其他可选技能配合使用:
- **remotion-best-practices** - 官方 Remotion 最佳实践(必需,提供核心 Remotion 模式与指南)
- **find-skills** - 官方技能发现工具(可选,帮助查找和安装其他技能)
- **ffmpeg** - 高级音视频处理(可选)
- **imagen / imagenty** - AI 封面生成(可选)
## 环境要求
### 系统要求
| 软件 | 版本 | 用途 |
|------|------|------|
| **macOS / Linux** | - | 已在 macOS 测试,兼容 Linux |
| **Python** | 3.8+ | TTS 脚本、自动化 |
| **Node.js** | 18+ | Remotion 视频渲染 |
| **FFmpeg** | 4.0+ | 音视频处理 |
### 安装
```bash
# macOS
brew install ffmpeg node python3
# Ubuntu/Debian
sudo apt install ffmpeg nodejs python3 python3-pip
# Python 依赖
pip install azure-cognitiveservices-speech dashscope edge-tts requests
```
### 项目设置(必需)
> **重要:** 本技能需要以 Remotion 项目作为基础。
**组件说明:**
| 组件 | 来源 | 用途 |
|------|------|------|
| **Remotion 项目** | `npx create-video` | 基础框架,包含 `src/``public/``package.json` |
| **video-podcast-maker** | Claude Code 技能 | 工作流编排(本技能) |
```bash
# 第一步:创建新的 Remotion 项目(基础框架)
npx create-video@latest my-video-project
cd my-video-project
npm i # 安装 Remotion 依赖
# 第二步:验证安装
npx remotion studio # 应在浏览器中打开预览
```
如果你已有 Remotion 项目:
```bash
cd your-existing-project
npm install remotion @remotion/cli @remotion/player zod
```
### 所需 API 密钥
| 服务 | 用途 | 获取密钥 |
|------|------|----------|
| **Azure Speech** | TTS 音频生成(高质量) | [Azure 门户](https://portal.azure.com/) → 语音服务 |
| **火山引擎豆包语音** | TTS 音频生成(备用后端) | [火山引擎控制台](https://console.volcengine.com/speech/service/8) |
| **阿里云 CosyVoice** | TTS 音频生成(备用后端) | [阿里云百炼](https://bailian.console.aliyun.com/) |
| **Edge TTS** | TTS 音频生成(默认,免费,无需密钥) | `pip install edge-tts` |
| **ElevenLabs** | TTS 音频生成(英文最高质量) | [ElevenLabs](https://elevenlabs.io/) |
| **Google Cloud TTS** | TTS 音频生成(多语言支持广泛) | [Google Cloud 控制台](https://console.cloud.google.com/) |
| **OpenAI** | TTS 音频生成(简单 API | [OpenAI 平台](https://platform.openai.com/) |
| **Google Gemini** | AI 封面生成(可选) | [AI Studio](https://aistudio.google.com/) |
| **阿里云 Dashscope** | AI 封面 - 中文优化(可选) | [阿里云百炼](https://bailian.console.aliyun.com/) |
### 环境变量
添加至 `~/.zshrc``~/.bashrc`
```bash
# TTS 后端edge默认免费、azure、doubao、cosyvoice、elevenlabs、google、openai
export TTS_BACKEND="edge" # 默认(免费),或 "azure" / "doubao" / "cosyvoice" / "elevenlabs" / "google" / "openai"
# Azure TTS高质量
export AZURE_SPEECH_KEY="your-azure-speech-key"
export AZURE_SPEECH_REGION="eastasia"
# 火山引擎豆包 TTS备用后端
export VOLCENGINE_APPID="your-volcengine-appid"
export VOLCENGINE_ACCESS_TOKEN="your-volcengine-access-token"
export VOLCENGINE_CLUSTER="volcano_tts" # 默认集群,根据控制台配置调整
export VOLCENGINE_VOICE_TYPE="BV001_streaming" # 根据控制台音色选项调整
# 阿里云 CosyVoice TTS备用后端+ AI 封面
export DASHSCOPE_API_KEY="your-dashscope-api-key"
# 可选Edge TTS 声音覆盖
export EDGE_TTS_VOICE="zh-CN-XiaoxiaoNeural"
# ElevenLabs TTS
export ELEVENLABS_API_KEY="your-elevenlabs-api-key"
# Google Cloud TTS
export GOOGLE_TTS_API_KEY="your-google-tts-api-key"
# OpenAI TTS
export OPENAI_API_KEY="your-openai-api-key"
# 可选Google Gemini AI 封面生成
export GEMINI_API_KEY="your-gemini-api-key"
```
然后重新加载:`source ~/.zshrc`
## 快速开始
### 使用方法
本技能设计用于 [Claude Code](https://claude.ai/claude-code) 或 [Opencode](https://github.com/opencode-ai/opencode)。只需告诉 Claude
> "帮我制作一个关于[你的主题]的视频播客"
Claude 会自动引导你完成整个工作流程。
> **提示:** 首次生成的质量很大程度上取决于模型的智能程度——模型越先进效果越好。经过测试Codex 和 Claude Code 均能一次生成优质视频OpenCode 搭配 GLM-5 也能产出不错的结果。如果初始输出不够理想,可以在 Remotion Studio 中预览,并要求编程智能体持续优化,直到满意为止。
### 使用 Remotion Studio 预览与视觉编辑
在渲染最终视频之前,使用 Remotion Studio 进行预览和视觉样式调整:
```bash
npx remotion studio src/remotion/index.ts
```
这将打开基于浏览器的编辑器,你可以:
- **视觉风格编辑** - 在右侧面板调整颜色、字体和大小
- 逐帧拖动时间轴
- 编辑组件后实时查看更新
- 即时调试时间与动画
#### 可编辑属性
| 类别 | 属性 |
|------|------|
| **颜色** | 主色、背景色、文字颜色、强调色 |
| **排版** | 标题大小72-120、副标题大小、正文大小 |
| **进度条** | 显示/隐藏、高度、字体大小、激活颜色 |
| **音频** | BGM 音量0-0.3 |
| **动画** | 开启/关闭入场动画 |
## 配置文件
| 文件 | 作用范围 | 用途 |
|------|----------|------|
| `phonemes.json` | 全局 | 所有项目共享的中文多音字词典。可编辑以添加或修正发音(如:行 háng vs xíng。项目级覆盖放置于 `videos/{name}/phonemes.json` |
| `user_prefs.template.json` | 全局 | 默认偏好模板。首次运行时复制为 `user_prefs.json`,随技能学习风格后自动演进 |
| `prefs_schema.json` | 全局 | 偏好验证的 JSON Schema请勿手动编辑 |
| `tsconfig.json` | 全局 | Remotion 模板的 TypeScript 配置 |
## 输出结构
```
videos/{video-name}/
├── topic_definition.md # 主题方向
├── topic_research.md # 调研笔记
├── podcast.txt # 解说词脚本
├── phonemes.json # (可选)项目级发音覆盖
├── podcast_audio.wav # TTS 音频
├── podcast_audio.srt # 字幕文件
├── timing.json # 章节时间用于同步
├── thumbnail_*.png # 视频封面
├── publish_info.md # 标题、标签、简介
├── part_*.wav # TTS 分段(临时文件,通过第 14 步清理)
├── output.mp4 # 原始渲染(临时文件)
├── video_with_bgm.mp4 # 含 BGM 版本(临时文件)
└── final_video.mp4 # 最终输出
```
## 背景音乐
`assets/` 目录中包含以下音轨:
- `perfect-beauty-191271.mp3` - 欢快、积极
- `snow-stevekaldes-piano-397491.mp3` - 平静钢琴曲
## 路线图
- [x] 竖版视频支持9:16适配 B 站移动端优先内容
- [x] Remotion 转场效果(@remotion/transitions),实现专业章节转场
- [x] 组件模板库(对比卡片、时间轴、代码块、引用块、特性网格、数据条、数字统计、流程图、图标卡)
- [x] 广播级质量升级(渐变背景、多层阴影、动态数字计数、质量检查清单)
- [x] 多 TTS 引擎支持7 个引擎Edge、Azure、豆包、CosyVoice、ElevenLabs、OpenAI、Google Cloud
- [x] Edge TTS 免费后端(无需 API 密钥)
- [x] 多平台支持B 站 + YouTube支持独立语言配置zh-CN、en-US
- [x] 断点续传(`--resume` 参数)
- [x] 试运行模式(`--dry-run` 估算时长)
- [x] 用户偏好自进化(自动学习视觉/TTS/内容风格偏好)
- [x] 重构至最新 Claude Code SKILL 规范(`references/` 分层文档、`${CLAUDE_SKILL_DIR}` 变量、`argument-hint`/`effort`/`allowed-tools` 前置字段)
- [x] 设计学习系统 —— 从参考视频/图片中学习设计风格,构建设计参考库和可复用风格配置文件
- [ ] Playwright 自动截图 —— 通过 URL 直接分析 B 站/YouTube 视频设计风格(第 4 阶段)
- [ ] 第 9 步智能推荐 —— 创建视频时自动匹配并推荐现有风格配置文件(第 5 阶段)
- [ ] 封面设计学习 —— 将学习到的封面风格应用于 Thumbnail.tsx 模板(第 5 阶段)
- [ ] YouTube 自动发布 —— 通过 YouTube Data API 上传,附带元数据、章节和封面
- [ ] Windows 兼容性WSL 验证 + 文档)
## 开源协议
MIT
## 支持作者
如果本项目对你有帮助,欢迎支持作者:
<table>
<tr>
<td align="center">
<img src="https://raw.githubusercontent.com/Agents365-ai/images_payment/main/qrcode/wechat-pay.png" width="180" alt="微信支付">
<br>
<b>微信支付</b>
</td>
<td align="center">
<img src="https://raw.githubusercontent.com/Agents365-ai/images_payment/main/qrcode/alipay.png" width="180" alt="支付宝">
<br>
<b>支付宝</b>
</td>
<td align="center">
<img src="https://raw.githubusercontent.com/Agents365-ai/images_payment/main/qrcode/buymeacoffee.png" width="180" alt="请我喝咖啡">
<br>
<b>请我喝咖啡</b>
</td>
</tr>
</table>
## 作者
**Agents365-ai**
- 哔哩哔哩https://space.bilibili.com/441831884
- GitHubhttps://github.com/Agents365-ai