三分钟精读一本书视频生成器Skill book-video-generator

输入书名和作者,即可全自动生成3分钟读书解说视频:AI撰写书评文案、生成插图、TTS语音配音,并合成带字幕和进度条的MP4视频。适用于自媒体内容创作、知识分享、读书推广等场景。

AIGC 1 次安装 13 次浏览 更新于 7/20/2026

name: 书籍视频生成器 slug: book-video-generator version: 2.6.0 displayName: 三分钟精读一本书视频生成器 description: 三分钟精读一本书视频生成器。输入书名+作者,一键生成3分钟读书解说视频(书评文案→AI插图→TTS配音→字幕→最终合成MP4)。触发词:三分钟精读书、生成读书视频、精读一本书、book video、做读书视频、书评视频。跨平台兼容 WorkBuddy / OpenClaw / Codex CLI / TRAE Work。

三分钟精读一本书 视频生成器

概述

将任意书籍自动生成一个 3 分钟解说视频:从书评文案撰写、分镜生成、AI 插图、TTS 配音到字幕合成,全流程自动化。

源于扣子工作流 “Pipadushu_video_1”,本 Skill 遵循 Agent Skills 开放标准,跨平台兼容 WorkBuddy、OpenClaw、Codex CLI、TRAE Work。

使用本地开源工具替代扣子插件:剪映小助手 → ffmpeg,扣子图像生成 → 平台图像生成工具,扣子 TTS → 火山引擎 TTS(默认)/ edge-tts(备选)。

平台工具映射

本 Skill 的工作流涉及 3 个平台相关工具,各平台替代方案如下。执行时根据当前运行平台选择对应工具。

联网搜索(阶段 1 用于搜索书籍信息)

平台 工具 说明
WorkBuddy WebSearch 内置工具,直接调用
OpenClaw 内置 web search 自动可用
Codex CLI shell: curl 或 MCP 搜索插件 通过 shell 命令或安装搜索 MCP
TRAE Work 内置联网搜索 自动可用

图像生成(阶段 4a 用于生成分镜插图)

平台 工具 说明
WorkBuddy ImageGen 内置延迟工具,调用 DeferExecuteTool
OpenClaw tools 声明 或 插件 在 frontmatter 中声明图像生成 tool,或安装图像插件
Codex CLI 外部脚本调用 API 用 Python 脚本调用 DALL-E / Stability AI / 火山引擎等 API
TRAE Work MCP 图像生成服务 通过 MCP 接入火山引擎、通义万相等

无论使用哪个平台,图像生成的 prompt 统一使用分镜中的 desc_promopt 字段。

LLM 调用(阶段 1-3 用于生成文案和分镜)

所有平台均内置 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 引擎配置(可选)

引擎 凭证 时间戳 说明
火山引擎 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 但完全可用。

完整工作流(5 个阶段)

阶段 1:生成书评文案

目标:根据书名+作者,用 LLM 生成约 1000 字的 3 分钟视频文案。

操作

  1. 用当前平台的联网搜索工具搜索书籍真实信息(简介、解读、出版年份)
  2. 使用 system prompt(见 references/prompts.md 第 1 节),要求 LLM 输出 JSON:
{
  "book_name": "...",
  "author_name": "...",
  "year": "yyyy-MM",
  "content": "1000+字书评文案(含开篇引言+核心内容+观点提炼)",
  "category": "图书分类"
}

要点

  • 文案需满足约 3 分钟口播时长(约 700-1000 字)
  • 开篇引言必须极具吸引力
  • 信息来源需通过搜索获取,确保内容准确

阶段 2:生成分镜脚本

目标:将书评文案拆分为 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": "每日精读一本书"
})

风格约束:扁平插画风,人物卡通风简洁线条,背景扁平化符号,柔和明亮低饱和度色调。

阶段 3:生成标题进度条

目标:根据文案内容划分为 4 个板块,每板块 6 字以内标题,用于视频顶部进度条显示。

操作: 使用 system prompt(见 references/prompts.md 第 3 节),输出 4 个标题(title1-title4)。

使用方式:4 个标题通过 segments.jsonchapter_titles 字段传入 compose_video.py,在视频顶部渲染为进度条(当前板块橙色高亮 + 底部进度线)。同时需要 segment_chapters 字段指定每个分镜所属的板块索引(0-3),未指定时自动均匀分配。

阶段 4:生成素材(并行)

本阶段生成视频所需的全部素材:

4a. AI 插图生成

对每个分镜的 desc_promopt,调用当前平台的图像生成工具生成插图。

统一风格参数(原工作流图像生成节点配置):

  • 尺寸:1024x768
  • 风格:扁平风(flat illustration)
  • 主角上衣 #FF7F72,裤子 #243139
  • 30% 透明玻璃效果背景
  • 负向提示词:无

各平台调用方式

  • WorkBuddy:调用 ImageGen 工具(通过 DeferExecuteTool),参数 prompt = desc_promopt,size = “1024x768”
  • OpenClaw:调用 frontmatter 中声明的图像生成 tool
  • Codex CLI:运行 python3 scripts/generate_image.py --prompt "<desc_promopt>" --output "scene_001.png"(需自备 API Key)
  • TRAE Work:通过 MCP 调用已接入的图像生成服务

生成的图片统一命名为 scene_000.png ~ scene_NNN.png,存放到 output/{book_name}/images/ 目录。

4b. TTS 语音合成

对每个分镜的 cap(字幕文案),使用 TTS 引擎生成 MP3 音频,同时生成词级时间戳(保存为同名 .words.json 文件,用于阶段 5 的逐句字幕精确同步)。

双引擎架构

  • 火山引擎 TTS(默认):V1 API + X-Api-Key 认证,豆包语音合成 2.0 音色,中文自然度最高,可商用,需设置环境变量 VOLC_TTS_API_KEY
  • edge-tts(备选):免费无需配置,原生 WordBoundary 词级时间戳,未设置火山引擎凭证时自动回退

默认音色

  • 火山引擎:zh_female_zhixingnv_uranus_bigtts(知性女声 2.0,适合读书解说)
  • edge-tts: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"

4c. 开场封面图

为视频第一帧生成专属封面图(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

封面布局

  • 顶部:「3 分钟精读一本书」品牌文字 + 橙色分隔线(#FF7F72,与分镜主角上衣同色)
  • 中部:书名大字(自动换行居中,80pt)
  • 中下:作者名(42pt)
  • 底部:账号名称水印(可选,通过 --ip-name 指定,不传则不显示)

字体:自动检测系统中文字体(Windows: 微软雅黑 / macOS: PingFang SC / Linux: Noto Sans CJK),无需手动修改。

封面图在阶段 5 合成时,通过 segments.json 中的 cover 字段指定,会替换第一分镜的图片(保持开场音频不变)。

{
  "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:可选,关键词列表,字幕中匹配到的关键词显示为橙色高亮

阶段 5:视频合成

目标:将所有素材合成为最终 MP4 视频。

操作:运行 python3 scripts/compose_video.py,该脚本执行:

  1. 计算每个分镜时长(基于 TTS 音频时长 + 0.3s 间隔)
  2. 图片缩放/裁剪为 1920x1080(16:9)
  3. 为每个分镜添加 Ken Burns 缓慢缩放效果(偶数分镜放大 1.0→1.1,奇数分镜缩小 1.1→1.0)
  4. 为每个分镜添加 0.3s 淡入淡出转场(dip-to-black)
  5. 使用 ffmpeg 将图片+音频合成为视频片段
  6. 进度条 overlay:顶部显示板块标题(当前板块橙色高亮+实心圆点,其余灰色+空心圆点),底部进度线显示总体播放进度
  7. 生成逐句单行 ASS 字幕(基于 TTS 词级时间戳精确同步语音,按标点+字数拆分为单行短句,白色加粗文字+黑色描边,关键词橙色高亮
  8. 拼接所有片段为完整视频

字幕参数(对应原工作流 add_captions_1 节点):

  • 字体颜色:白色 (#FFFFFF)
  • 关键词高亮:橙色 (#FF7F72),通过 ASS 内联颜色标签 {\c&H727FFF&} 实现
  • 边框颜色:黑色 (#000000)
  • 字号:64pt(加粗)
  • 位置:底部居中(MarginV=30)
  • 字体:自动检测系统可用中文字体(Windows: 微软雅黑 / macOS: PingFang SC / Linux: Noto Sans CJK SC),无需手动修改
  • 字幕格式:ASS(Advanced SubStation Alpha),支持行内颜色标签,关键词高亮显示
  • 逐句单行显示:利用 TTS 词级时间戳(火山引擎基于音频时长估算 / edge-tts WordBoundary 原生精确),将长字幕按标点拆分为单行短句,每句时间与语音同步

进度条参数

  • 位置:画面顶部(80px 高度)
  • 背景:半透明深色(alpha=130)
  • 当前板块:橙色 (#FF7F72) 文字 + 实心圆点
  • 非当前板块:灰色 (#AAAAAA) 文字 + 空心圆点
  • 底部进度线:橙色填充 + 深灰底色,显示总体播放进度
  • 字体:自动检测系统中文字体,44pt

动态效果参数

  • Ken Burns 缩放速率:每帧 +0.0008(约 3 秒内从 1.0 到 1.024)
  • 缩放上限:1.1x
  • 转场淡入淡出时长:0.3s(短于 0.6s 的分镜自动减半)

输出

最终输出:output/{book_name}_三分钟精读书.mp4

跨平台安装

WorkBuddy

技能已安装在 ~/.workbuddy/skills/book-video-generator/,直接使用。

OpenClaw

# 复制到 OpenClaw 技能目录
cp -r ~/.workbuddy/skills/book-video-generator ~/.openclaw/skills/

# 或通过 ClawHub 安装(如果已发布)
openclaw skills install book-video-generator

如需在 frontmatter 中声明图像生成 tool,参考 OpenClaw 文档的 tools 字段定义。

Codex CLI

# 1. 开启 Skills 功能(如未开启)
echo '[features]
sskills = 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 参数。

TRAE Work

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 分钟精读视频”

执行流程:

  1. 搜索"原子习惯 James Clear 简介 书评"
  2. 用阶段 1 prompt 生成书评文案
  3. 用阶段 2 prompt 生成分镜脚本
  4. 用阶段 3 prompt 生成标题进度条
  5. 对每个分镜:图像生成工具生成插图 + TTS 生成配音(火山引擎默认 / edge-tts 备选)
  6. compose_video.py 合成最终视频
  7. 输出 output/原子习惯_三分钟精读书.mp4

资源文件

  • references/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,自动换行 + 模糊背景 + 字体自动检测)