从知乎话题自动生成短视频: 抓取热门回答 → 文案切句/串场 → 离线中文 TTS(Piper 小雅)→ 自动配图(US 区图片搜索)→ 字幕合成视频
- 1. 功能概览
- 2. 运行环境要求
- 3. 安装教程(Conda)
- 4. 首次运行前准备(知乎登录态)
- 5. 配置说明(config.yaml)
- 6. 一键运行
- 7. 输出结果说明
- 8. 常见问题与排查
- 9. 项目结构
- 10. v1.0.0 版本说明
v1.0.0 当前能力:
- 使用浏览器自动化抓取知乎相关回答(模拟用户行为)
- 文案自动切句,并加入串场话术(开场/第X位/结尾)
- 使用 离线 Piper(小雅) 生成中文语音
- 自动搜索并下载配图(US 区图片搜索,避免黑图兜底)
- 图片 + 字幕 + 配音合成竖屏视频(1080x1920)
- macOS(已在 Apple Silicon 环境验证)
- Python 3.11
- Conda / Miniforge
- ffmpeg(视频合成依赖)
- 可访问知乎(抓取)
cd /Users/jason/.openclaw/workspace/zhihu_video_botconda env create -f environment.yml
conda activate zhihu-video-botpip install -r requirements.txtpython -m playwright install chromium仓库默认不包含大模型(避免 GitHub 大文件限制)。请执行:
bash scripts/download_models.sh若你只想下最小必需文件,至少需要:
g2pW/g2pw.onnxmodels/piper/zh_CN-xiao_ya-medium.onnxmodels/piper/zh_CN-xiao_ya-medium.onnx.json
为了抓取知乎内容,建议先建立登录态:
- 在
config.yaml中保持:browser.headless: falsebrowser.user_data_dir: ./.pw_profile
- 第一次运行时会弹出浏览器(或由脚本打开)
- 在该浏览器窗口内完成知乎登录/验证
- 登录成功后,后续会复用
./.pw_profile会话
注意:你日常 Chrome 的登录态不一定和 Playwright profile 共用。
当前关键配置(节选):
run:
topic_url: "https://www.zhihu.com/topic/19554298/hot"
max_answers: 3
output_name: "sample"
video:
width: 1080
height: 1920
fps: 30
min_sentence_duration_sec: 2.0
tts:
piper_model: "./models/piper/zh_CN-xiao_ya-medium.onnx"
piper_config: "./models/piper/zh_CN-xiao_ya-medium.onnx.json"
images:
timeout_sec: 20
fallback_color: "#101820"run.topic_url:知乎话题页 URLrun.max_answers:抓取回答数量(默认 3)video.width/height:视频分辨率(默认竖屏 1080x1920)tts.piper_model:Piper 语音模型路径
conda activate zhihu-video-bot
python main.py --config config.yaml运行完成后会打印类似:
DONE /.../zhihu_video_bot/output/sample_YYYYMMDD_HHMMSS.mp4
- 最终视频:
output/sample_*.mp4
- 中间数据:
data/raw/answers.json(原始抓取)data/clean/sentences.json(切句结果)data/audio/*.mp3(TTS 音频)data/images/*.jpg(配图)data/clips/*.mp4(分段片段)data/manifests/*.json(流程清单)
- 长步骤(抓图、合成)可能耗时数分钟
- 可开新终端查看输出目录是否在更新:
ls -lh output/
ls -lh data/images | head- 通常是登录态无效或触发风控验证
- 确认
browser.headless: false,在.pw_profile窗口重新登录知乎
- v1.0.0 已做非黑图兜底,但相关性仍可能受关键词影响
- 可手动优化
src/image_fetcher.py中_extract_query() - 可针对固定主题加关键词映射(建议作为 v1.1)
- 确认 Piper 模型文件存在:
models/piper/zh_CN-xiao_ya-medium.onnxmodels/piper/zh_CN-xiao_ya-medium.onnx.json
- 确认环境依赖安装完整(
pip install -r requirements.txt)
rm -f data/manifests/*.json
find data/images data/clips output -mindepth 1 -delete
python main.py --config config.yamlzhihu_video_bot/
├─ main.py
├─ config.yaml
├─ requirements.txt
├─ environment.yml
├─ README.md
├─ src/
│ ├─ crawler_zhihu.py
│ ├─ sentence_splitter.py
│ ├─ tts_local.py
│ ├─ image_fetcher.py
│ ├─ clip_builder.py
│ ├─ video_assembler.py
│ ├─ state_manager.py
│ └─ utils.py
├─ data/
│ ├─ raw/
│ ├─ clean/
│ ├─ audio/
│ ├─ images/
│ ├─ clips/
│ └─ manifests/
└─ output/- ✅ 话题回答抓取
- ✅ 文案切句与串场
- ✅ 离线中文 TTS(Piper 小雅)
- ✅ 自动配图与视频合成
- ✅ 可产出可播放 mp4
- 图片相关性在抽象句子上仍不稳定(后续可做“按句人工关键词映射”)
- 依赖网页结构,目标网站改版会影响抓取稳定性
- 图片检索质量增强(句级关键词映射 + 多候选重排)
- 背景音乐和节奏优化
- 更强错误重试与统计报告