# Kb To Mpt

知易知识库 → 短视频 流水线。把 knowledge_cards（蓝/绿/红卡）批量生成书摘/知识类短视频（复用 MoneyPrinterTurbo），并提供本地...

- Repository: https://github.com/anbeime/skill (9005 stars)
- Category: Engineering
- License: MIT
- Last updated: 2026-11-01
- Runs scripts: yes, review before use

## Install

Claude Code: `npx skills add anbeime/skill --skill kb-to-mpt -g -a claude-code -y`
Codex: `npx skills add anbeime/skill --skill kb-to-mpt -g -a codex -y`
Cursor: `npx skills add anbeime/skill --skill kb-to-mpt -g -a cursor -y`
Gemini CLI: `npx skills add anbeime/skill --skill kb-to-mpt -g -a gemini-cli -y`

## Description

知易知识库 → 短视频 流水线。把 knowledge_cards（蓝/绿/红卡）批量生成书摘/知识类短视频（复用 MoneyPrinterTurbo），并提供本地 faster-whisper 转写桥，把任意视频转文字入库成为脚本源。触发：用户想"把书/知识库做成视频""批量产出书摘视频""把视频转写进知识库"。

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# 知易知识库 → 短视频 流水线 (kb-to-mpt)

## 任务目标

- 把**知易 `knowledge_cards`** 直接变成可渲染的短视频脚本，推给本地 **MoneyPrinterTurbo (MPT)** 批量生成书摘/知识类视频（口播 + 字幕 + 素材 + BGM）。
- 提供 **faster-whisper 本地转写桥**，把任意视频（B站/YouTube/TikTok）下载音频 → 转文字 → 切片成蓝卡入库，成为上一步的脚本源。
- 复用而非重复造轮子：MPT 就是"书本视频 skill"本体（E 盘已部署），本技能只做**知识库 ↔ 视频生成**的编排桥。

## 能力包含

1. `kb_to_mpt.py`, 读知识库卡片 → 组装 `video_script` + `video_terms` → `POST /api/v1/videos` 推 MPT。
2. `transcribe_fw.py`, faster-whisper（项目机器人同款 STT）转写音频 → `.vtt`/`.txt`，供入库。
3. 配套：`build_naval_cards.py`（范例：书摘视频转写 → 建专题蓝卡）与 `ingest_video_material.py`（vtt → 蓝卡通用入库）。

## 触发条件

- "把这本书/这个专题做成视频""批量产出书摘视频""知识库怎么变成视频"。
- "把这个视频转写进知识库当素材""下载视频字幕入库"。

## 使用方式

### 前置环境

| 依赖 | 说明 | 准备 |
|------|------|------|
| MoneyPrinterTurbo | 视频生成引擎（`C:/E/MoneyPrinterTurbo-main`，默认 `:8080`） | 真机跑 `webui.bat` 启动 |
| ffmpeg | 音频解码（whisper 需要） | `winget install ffmpeg`，或复用知易内置 `_bin/ffmpeg.exe` |
| faster-whisper | 转写引擎（CT2 格式权重） | 见下方"权重准备" |
| 知易 DB | `C:/D/zhiyi/backend/data/antinet.db` | 已有 |

**权重准备（一次性，绕开 huggingface_hub 沙箱限制，直接目录加载）：**
把 `Systran/faster-whisper-<size>` 仓库的 `model.bin + config.json + tokenizer.json + vocabulary.txt`
放到 `C:/D/zhiyi/data/whisper_models/<size>/`，`transcribe_fw.py` 即以目录路径直接加载，不再触发任何下载。
推荐 `small`（中文可用，~461MB）；`base` 更快但中文弱。

### A. 知识库 → 视频（MPT 批量出片）

```bash
# 1) 某专题全部卡片 → 一条视频（dry-run 先看文案）
python kb_to_mpt.py --project-id <PID> --dry-run

# 2) 按关键词搜卡片生成（如"纳瓦尔宝典"）
python kb_to_mpt.py --search "纳瓦尔" --subject "纳瓦尔宝典精读" --dry-run

# 3) 真机启 MPT 后实际上传生成
python kb_to_mpt.py --project-id <PID> --mpt-url http://127.0.0.1:8080
```

MPT 收到 `video_subject` + `video_script`（卡片拼装的连贯口播）+ `video_terms`（标题抽词作素材关键词），自动产出高清短视频。

### B. 视频 → 知识库（转写入库，成为脚本源）

```bash
# 1) 下载音频（用 yt-dlp 技能；B站 bestaudio 无需 ffmpeg）
python yt-dlp-video-downloader/scripts/run_yt_dlp.py -f bestaudio \
  -o "material/audio/%(id)s.%(ext)s" "<视频URL>"

# 2) faster-whisper 本地转写
python transcribe_fw.py "material/audio/<BV>.m4a" --out material/audio --model small --lang zh

The rest: https://github.com/anbeime/skill/blob/HEAD/skills/kb-to-mpt/SKILL.md
