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

316 lines
14 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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