设计与多媒体

Book Video Generator 2.6.0

试用

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

它能做什么

三分钟精读一本书视频生成器。输入书名+作者,一键生成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 用于搜索书籍信息)

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

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

平台工具说明
WorkBuddyImageGen内置延迟工具,调用 DeferExecuteTool
OpenClawtools 声明 或 插件在 frontmatter 中声明图像生成 tool,或安装图像插件
Codex CLI外部脚本调用 API用 Python 脚本调用 DALL-E / Stability AI / 火山引擎等 API
TRAE WorkMCP 图像生成服务通过 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 "" --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]\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 参数。

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

相关技能

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

假如书籍会说话视频生成器。输入书名+作者,一键生成3分钟第一人称书籍自述视频(书以拟人化口吻亲自讲述→AI扁平卡通插图→TTS配音→逐句字幕动画→画板背景+抠图叠加→BGM+转场音效→最终合成MP4)。触发词:假如书籍会说话、书籍会说话、书会说话、if book could speak、做读书视频。跨平台兼容 W...

Book-to-writing-material skill for Chinese content creation. Use when Codex needs to break down a book, chapter, excerpt, reading note, or book link into reu...

21 次安装1 星标

This skill should be used when the user provides an electronic book (PDF, EPUB, TXT, MD) and wants to automatically extract knowledge, analyze structure, and...

3 次安装

Turn a novel chapter, web-novel excerpt, or story script into narrated vertical short video scenes with illustrated shots that keep every character looking the same from beat to beat. This AI story video maker pulls the hook and the beats out of your text, draws one shot for each, records the narration in a voice you choose, and sets each clip to its own narration, so a chapter arrives as an ordered set of scenes for story channels, book trailers, web-novel promotion, chapter recaps, and faceless storytelling accounts.

Orchestrate book-to-content workflows to generate video, audio, cover images, and a manifest for episode or campaign packages.

21 次安装1 星标