Install
openclaw skills install @chenjun198711/book-video-generator三分钟精读一本书视频生成器。输入书名+作者,一键生成3分钟读书解说视频(书评文案→AI插图→TTS配音→字幕→最终合成MP4)。触发词:三分钟精读书、生成读书视频、精读一本书、book video、做读书视频、书评视频。跨平台兼容 WorkBuddy / OpenClaw / Codex CLI / TRAE Work。
openclaw skills install @chenjun198711/book-video-generator将任意书籍自动生成一个 3 分钟解说视频:从书评文案撰写、分镜生成、AI 插图、TTS 配音到字幕合成,全流程自动化。
源于扣子工作流 "Pipadushu_video_1",本 Skill 遵循 Agent Skills 开放标准,跨平台兼容 WorkBuddy、OpenClaw、Codex CLI、TRAE Work。
使用本地开源工具替代扣子插件:剪映小助手 → ffmpeg,扣子图像生成 → 平台图像生成工具,扣子 TTS → 火山引擎 TTS(默认)/ edge-tts(备选)。
本 Skill 的工作流涉及 3 个平台相关工具,各平台替代方案如下。执行时根据当前运行平台选择对应工具。
| 平台 | 工具 | 说明 |
|---|---|---|
| WorkBuddy | WebSearch | 内置工具,直接调用 |
| OpenClaw | 内置 web search | 自动可用 |
| Codex CLI | shell: curl 或 MCP 搜索插件 | 通过 shell 命令或安装搜索 MCP |
| TRAE Work | 内置联网搜索 | 自动可用 |
| 平台 | 工具 | 说明 |
|---|---|---|
| WorkBuddy | ImageGen | 内置延迟工具,调用 DeferExecuteTool |
| OpenClaw | tools 声明 或 插件 | 在 frontmatter 中声明图像生成 tool,或安装图像插件 |
| Codex CLI | 外部脚本调用 API | 用 Python 脚本调用 DALL-E / Stability AI / 火山引擎等 API |
| TRAE Work | MCP 图像生成服务 | 通过 MCP 接入火山引擎、通义万相等 |
无论使用哪个平台,图像生成的 prompt 统一使用分镜中的
desc_promopt字段。
所有平台均内置 LLM 对话能力,直接将 references/prompts.md 中的 System Prompt 发送给当前平台的 LLM 即可。
| 参数 | 说明 | 必填 |
|---|---|---|
book_name | 书籍名称 | 是 |
author_name | 作者名称 | 是 |
ip_name | 账号名称(用于封面图底部水印) | 否,默认不显示 |
执行前确保以下 Python 依赖已安装:
pip install edge-tts imageio-ffmpeg pillow
脚本会在首次运行时自动安装缺失的依赖,但建议预先安装以避免中断。
ffmpeg 由 imageio-ffmpeg 包自动提供二进制,无需单独安装系统级 ffmpeg。
| 引擎 | 凭证 | 时间戳 | 说明 |
|---|---|---|---|
| 火山引擎 TTS(默认) | VOLC_TTS_API_KEY | 基于音频时长估算 | 豆包语音合成 2.0,中文自然度最高,可商用,需在火山引擎控制台获取 API Key |
| edge-tts(备选) | 无需配置 | WordBoundary 原生精确 | 微软免费 TTS,pip 安装即用,无凭证时自动回退 |
设置火山引擎凭证:
export VOLC_TTS_API_KEY="your-api-key"
未设置火山引擎凭证时,脚本自动使用 edge-tts,功能完整不受影响。 火山引擎 TTS 2.0 不原生支持词级时间戳,脚本基于返回的音频时长按字符均匀估算时间戳(标点符号占比较短时间),字幕同步精度略低于 edge-tts 但完全可用。
目标:根据书名+作者,用 LLM 生成约 1000 字的 3 分钟视频文案。
操作:
references/prompts.md 第 1 节),要求 LLM 输出 JSON:{
"book_name": "...",
"author_name": "...",
"year": "yyyy-MM",
"content": "1000+字书评文案(含开篇引言+核心内容+观点提炼)",
"category": "图书分类"
}
要点:
目标:将书评文案拆分为 8-50 个分镜,每个分镜包含字幕文案、画面描述、AI 图像提示词。
操作:
使用 system prompt(见 references/prompts.md 第 2 节),输入阶段 1 的 content,输出:
{
"list": [
{
"story_name": "分镜名称",
"desc": "画面描述",
"cap": "字幕文案(一句话)",
"desc_promopt": "图像生成提示词"
}
],
"keywords": ["重点词1", "重点词2"]
}
然后在 list 开头插入引言分镜(模仿原工作流 node 150774 的逻辑):
list.insert(0, {
"story_name": "引言",
"desc": "每日精读一本书",
"cap": f"3分钟精读一本书,今天我们读《{book_name}》",
"desc_promopt": "每日精读一本书"
})
风格约束:扁平插画风,人物卡通风简洁线条,背景扁平化符号,柔和明亮低饱和度色调。
目标:根据文案内容划分为 4 个板块,每板块 6 字以内标题,用于视频顶部进度条显示。
操作:
使用 system prompt(见 references/prompts.md 第 3 节),输出 4 个标题(title1-title4)。
使用方式:4 个标题通过 segments.json 的 chapter_titles 字段传入 compose_video.py,在视频顶部渲染为进度条(当前板块橙色高亮 + 底部进度线)。同时需要 segment_chapters 字段指定每个分镜所属的板块索引(0-3),未指定时自动均匀分配。
本阶段生成视频所需的全部素材:
对每个分镜的 desc_promopt,调用当前平台的图像生成工具生成插图。
统一风格参数(原工作流图像生成节点配置):
各平台调用方式:
ImageGen 工具(通过 DeferExecuteTool),参数 prompt = desc_promopt,size = "1024x768"python3 scripts/generate_image.py --prompt "<desc_promopt>" --output "scene_001.png"(需自备 API Key)生成的图片统一命名为
scene_000.png~scene_NNN.png,存放到output/{book_name}/images/目录。
对每个分镜的 cap(字幕文案),使用 TTS 引擎生成 MP3 音频,同时生成词级时间戳(保存为同名 .words.json 文件,用于阶段 5 的逐句字幕精确同步)。
双引擎架构:
VOLC_TTS_API_KEY默认音色:
zh_female_zhixingnv_uranus_bigtts(知性女声 2.0,适合读书解说)zh-CN-XiaoxiaoNeural(晓晓,女声)查看所有可用音色:python3 scripts/generate_audio.py --list-voices
运行(所有平台通用,自动选择引擎):
python3 scripts/generate_audio.py --text "<字幕>" --output "audio_001.mp3"
指定引擎或音色:
# 强制使用火山引擎
python3 scripts/generate_audio.py --text "<字幕>" --output "audio_001.mp3" --engine volcano --voice zh_female_zhixingnv_uranus_bigtts
# 强制使用 edge-tts
python3 scripts/generate_audio.py --text "<字幕>" --output "audio_001.mp3" --engine edge --voice zh-CN-XiaoxiaoNeural
批量模式:
python3 scripts/generate_audio.py --batch captions.json --output-dir audio/ --voice "zh_female_zhixingnv_uranus_bigtts"
为视频第一帧生成专属封面图(1920x1080),包含书名、作者、品牌文字。
操作:运行 python3 scripts/generate_cover.py
# 用第一张分镜图做模糊背景(推荐,与视频风格一致)
python3 scripts/generate_cover.py \
--book-name "原子习惯" \
--author "James Clear" \
--output output/原子习惯/images/cover.png \
--bg output/原子习惯/images/scene_000.png
# 无背景图,使用深蓝渐变
python3 scripts/generate_cover.py \
--book-name "原子习惯" \
--author "James Clear" \
--output output/原子习惯/images/cover.png
封面布局:
--ip-name 指定,不传则不显示)字体:自动检测系统中文字体(Windows: 微软雅黑 / macOS: PingFang SC / Linux: Noto Sans CJK),无需手动修改。
封面图在阶段 5 合成时,通过 segments.json 中的
cover字段指定,会替换第一分镜的图片(保持开场音频不变)。json { "output": "output/书名_三分钟精读书.mp4", "cover": "output/书名/images/cover.png", "chapter_titles": ["开篇引言", "核心方法", "实践技巧", "总结"], "segment_chapters": [0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3], "keywords": ["原子习惯", "微小改变", "复利效应"], "segments": [ {"image": "images/scene_000.png", "audio": "audio/audio_000.mp3", "caption": "字幕文本"}, ... ] }
cover:可选,封面图路径,替换第一分镜图片chapter_titles:可选,板块标题列表,用于顶部进度条显示segment_chapters:可选,每个分镜所属板块索引(0-based),未提供时自动均匀分配keywords:可选,关键词列表,字幕中匹配到的关键词显示为橙色高亮
目标:将所有素材合成为最终 MP4 视频。
操作:运行 python3 scripts/compose_video.py,该脚本执行:
字幕参数(对应原工作流 add_captions_1 节点):
{\c&H727FFF&} 实现进度条参数:
动态效果参数:
最终输出:output/{book_name}_三分钟精读书.mp4
技能已安装在 ~/.workbuddy/skills/book-video-generator/,直接使用。
# 复制到 OpenClaw 技能目录
cp -r ~/.workbuddy/skills/book-video-generator ~/.openclaw/skills/
# 或通过 ClawHub 安装(如果已发布)
openclaw skills install book-video-generator
如需在 frontmatter 中声明图像生成 tool,参考 OpenClaw 文档的 tools 字段定义。
# 1. 开启 Skills 功能(如未开启)
echo '[features]\nsskills = true' >> ~/.codex/config.toml
# 2. 复制技能目录
cp -r ~/.workbuddy/skills/book-video-generator ~/.codex/skills/
# 3. 重启 Codex CLI
# 4. 输入 /skills 确认技能已加载
Codex CLI 无内置图像生成,需在 scripts/ 目录中添加 generate_image.py 脚本,调用外部 API(如 OpenAI DALL-E、Stability AI)。脚本需接受 --prompt 和 --output 参数。
1. 打开 TRAE Work → 规则和技能 → 技能 → 创建 → 导入文件
2. 上传 SKILL.md 文件
3. 确保 scripts/ 和 references/ 目录也复制到技能目录
TRAE Work 通过 MCP 接入图像生成服务。在 TRAE 的 MCP 配置中添加火山引擎或通义万相的图像生成 MCP,然后在执行阶段 4a 时通过 MCP 调用。
原始扣子工作流文件位于 references/workflow-original.yaml,包含 30+ 节点的完整链路:
开始 → LLM(DeepSeek V3.2)生成书评 → 上标题总结 → 分镜画面描述
→ 代码拼接引言 → 批量图像生成+抠图 → TTS语音合成
→ 创建剪映草稿 → 批量添加图片/字幕/音频 → 保存草稿 → 结束
原始流程依赖剪映小助手插件(视频合成核心)、扣子内置图像生成+抠图和TTS插件。 本 Skill 使用 ffmpeg、edge-tts、平台图像生成工具替代。
用户说:"帮我生成《原子习惯》James Clear 的 3 分钟精读视频"
执行流程:
output/原子习惯_三分钟精读书.mp4references/prompts.md — 所有 LLM 提示词原文(平台无关,可直接复用)references/workflow-original.yaml — 原始扣子工作流(完整 YAML 备份)scripts/compose_video.py — 视频合成脚本(纯 Python + ffmpeg,跨平台,含 Ken Burns 缩放 + 淡入淡出转场 + 字体自动检测 + 封面图支持 + 逐句单行 ASS 字幕精确语音同步 + 关键词高亮 + 顶部进度条)scripts/generate_audio.py — TTS 语音生成脚本(纯 Python,双引擎:火山引擎 TTS V1 API + X-Api-Key 默认 / edge-tts 备选,含词级时间戳输出,自动检测凭证切换引擎)scripts/generate_cover.py — 封面图生成脚本(纯 Python + Pillow,自动换行 + 模糊背景 + 字体自动检测)