电子书转B站视频流水线技能

SKILL内容创作
内容创作 未标注权限 许可证不明确
安装这个技能

把一本书(PDF/epub/书名+作者)自动拆解成 B 站知识区视频的完整流水线:书籍拆解→PPT大纲→配音生成→视频合成→发布素材。触发词:拆书做视频、书转PPT视频、B站知识视频、亿文风格视频

累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 未标注
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

未标注
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
skillhub install user_4c93aead/dzszbzsplsxjn

技能档案

内容创作
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方user_4c93aead仓库 未标注 · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式未标注安装包 community
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验未标注上游最后核验时间 · 数据更新 1791729066
正文体量8.1 KBSKILL.md 原文大小,越大说明说明书写得越细

SKILL.md 全文

8.1 KB
模型实际读到的说明书原文,来自技能仓库

Book → Bilibili Video Pipeline

> Goal: 输入一本书,自动完成「书籍拆解 → PPT 大纲 → 配音生成 → 视频合成 → B 站发布素材」五步流水线,产出一支 8-15 分钟、亿文风格、适配 B 站投稿的 1080p 知识区视频及其全部配套素材。

When to Use

当用户想要把一本书(有源文件或仅书名)做成B 站知识区视频时触发,典型表述:

  • "拆书做视频"、"把《xxx》做成视频"、"书转 PPT 视频"
  • "B 站知识视频"、"亿文风格视频"、"做成亿文那种风格"

When NOT to Use

  • 用户没有明确指向"书 → 视频",而是单独的 PPT、配音、或封面设计需求(应走对应专用流程)。
  • 书籍本身受版权保护且用户要求逐字照搬原文(本流水线强制原创改写)。

触发与快速开始

用户给出书籍(三选一):

  1. PDF / epub 文件:python3 scripts/pipeline.py '/path/to/book.pdf'
  2. txt / md 文件:python3 scripts/pipeline.py '/path/to/book.txt'
  3. 仅书名+作者(无源文件):python3 scripts/pipeline.py '原则@瑞·达利欧'

首次使用先安装依赖:

bash scripts/install.sh        # 需要 root:ffmpeg + python 依赖 + 中文字体

全流程示例:

python3 scripts/pipeline.py 'path/to/book.pdf' -o ./output

输出目录结构

output/<书名>/
├── progress.log                    # 全流程进度日志(每一步追加)
├── 01_json/
│   └── book_structure.json         # 书籍拆解结构(模块/时长/文案脚本)
├── 02_ppt/
│   ├── ppt_outline.md              # Marp 可渲染的 PPT 大纲
│   └── ppt_outline.json            # 结构化页面(含动画节奏/停留时长)
├── 03_audio/
│   ├── seg_01.mp3 ... seg_NN.mp3   # 每段配音
│   ├── voice_script.md             # 带停顿标注的语音脚本
│   ├── timestamps.json             # 每段时间戳(起止)
│   └── manifest.json               # 供视频合成的段清单
├── 04_video/
│   └── <书名>_视频.mp4             # 1080p / 8Mbps 成片
└── 05_bilibili/
    ├── bilibili_materials.md       # 标题/简介/标签/封面方案
    └── bilibili_materials.json

五步流水线详解

Step 1 · 书籍拆解(book_parser.py + book_splitter.py)

作用:提取全书文本与目录,拆成 6-10 个模块,每个模块提炼标题、核心观点、支撑论据、金句,并为每段预估时长、生成原创配音文案。

python3 scripts/pipeline.py 'path/to/book.pdf' --step step1_book

产出:01_json/book_structure.json

{
  "book_title": "书名", "book_author": "作者",
  "total_duration": 600, "total_minutes": 10, "module_count": 8,
  "modules": [
    {
      "index": 1, "title": "模块标题",
      "core_point": "核心观点(1-3句)",
      "arguments": ["支撑论据1", "支撑论据2"],
      "quotes": ["金句1"],
      "duration": 75,            // 预计时长(秒),钳制在 50-120s
      "script": "该段原创配音文案"
    }
  ],
  "table_of_contents": [ {"start_ts":"00:00","end_ts":"00:05","title":"..."} ]
}

配置项(通过 --config 传入 JSON):

参数 默认 说明
min_modules / max_modules 6 / 10 模块数范围
total_seconds 600 目标总时长(秒),8-15 分钟内
chunk_chars 6000 文本分块字数

Step 2 · PPT 大纲生成(ppt_generator.py)

作用:基于每段文案生成 3-6 页 PPT,深色底 + 大字号白字/亮色强调 + 关键词高亮(亿文风格),标注动画节奏(逐行/淡入/强调)与停留时长。

python3 scripts/pipeline.py 'path/to/book.pdf' --step step2_ppt

产出:02_ppt/ppt_outline.md(可直接用 Marp 渲染 .pptx)+ ppt_outline.json

Marp 渲染命令:

npx @marp-team/marp-cli ppt_outline.md -o 视频PPT.pptx --theme default

或 python-pptx 渲染(脚本已给出页面结构,可按需扩展渲染器)。

配置项:min_pages_per_module(3) / max_pages_per_module(6)

Step 3 · 配音生成(tts_engine.py)

作用:把每段文案转为语音脚本,标注停顿点(逗号 0.3s、句号 0.6s、段落间 1s),调用 Edge-TTS 生成 .mp3。

python3 scripts/pipeline.py 'path/to/book.pdf' --step step3_audio
# 自定义音色/语速:
python3 scripts/pipeline.py 'path/to/book.pdf' --step step3_audio \
  --config '{"tts_voice":"zh-CN-YunxiNeural","tts_rate":1.05}'

音色对照(Edge-TTS):

voice 音色 适合
zh-CN-YunxiNeural(默认) 云希·沉稳男声 知识博主,推荐
zh-CN-XiaoxiaoNeural 晓晓·标准女声 通用清晰
zh-CN-YunjianNeural 云健·成熟男声 厚重叙事
en-US-GuyNeural 英文男声 英文书

配置项:tts_voice(默认云希) / tts_rate(1.0-1.1,默认1.05) / tts_pitch(+0Hz) / tts_retry(6) / tts_retry_delay(2.0) / tts_seg_gap(0,段间冷却秒数,建议 15-20)

产出:03_audio/seg_*.mp3 + voice_script.md(含停顿标注)+ timestamps.json + manifest.json

Step 4 · 视频合成(video_composer.py)

作用:把 PPT 页面渲染为 1920×1080 高清图,按时间戳排列、叠加配音,加片头(5s)/片尾(订阅引导)/可选 BGM,输出 1080p / 8Mbps MP4。

python3 scripts/pipeline.py 'path/to/book.pdf' --step step4_video
# 加背景音乐:
python3 scripts/pipeline.py 'path/to/book.pdf' --step step4_video \
  --config '{"bgm_path":"/path/to/music.mp3","bgm_volume":0.05}'

配置项:bgm_path(默认空) / bgm_volume(0.05) / intro_sec(5) / outro_sec(4) / video_bitrate(8M) / fps(30) / video_encoder(自动检测,优先 libx264,回退 libopenh264)

> ⚠️ 前置:需先运行 step3(视频时长以实际配音为准)。页面图片用 PIL 直接绘制,无需浏览器。

Step 5 · B 站发布素材(bilibili_materials.py)

作用:生成 3 个 SEO 标题、200 字简介(含时间戳目录)、10-15 个标签、封面文字方案。

python3 scripts/pipeline.py 'path/to/book.pdf' --step step5_bili

产出:05_bilibili/bilibili_materials.md + .json


断点续跑 & 进度日志

  • 每个阶段完成后会写 .stepN_*.done 标记;重复执行会自动跳过已完成阶段。
  • 想看完整进度:cat output/<书名>/progress.log
  • 想强制重跑某一步:加 --force:
    bash python3 scripts/pipeline.py 'book.pdf' --step step3_audio --force

版权合规(强制)

  • 所有文案(script/quote/论据)均为原创改写,禁止直接复制书籍原文超过 20 字。
  • book_splitter.py 的脚本为可读模板,实际投用前建议由 AI/人工依据原文要点改写润色,并人工核验一遍。
  • 输出 JSON 中附有版权声明字段,投稿前请确认。

依赖与安装

详见 README.md。核心:

  • Python 3.10+
  • ffmpeg(系统级,install.sh 自动装)
  • edge-tts(免费 TTS)
  • pdfplumber / pypdf(PDF 解析)
  • Pillow(渲染高清页面图)
  • python-pptx 或 Marp CLI(PPT 渲染,可选)

常见问题(FAQ)

问题 处理
扫描版 PDF 提不出文字 先 pip install ocrmypdf 做 OCR,或用清晰文本版
没有网络装 edge-tts step3 会提示缺命令;也可改用本地 espeak-ng(质量一般)
想改总时长 --config '{"total_seconds":540}'(9 分钟)
成片太长/太短 调整 total_seconds 或 min_modules/max_modules 后 --force 重跑
中文字体缺失 install.sh 会自动装文泉驿/Noto CJK

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 未标注。