← 返回爱琴海个人主页

视频文字提取专家

视频文字提取专家。下载指定链接视频→提取语音转写为文字→(可选)生成并评分筛选最优公众号标题→用内容工厂生成多格式产物。触发词:视频文字提取、视频转文案、视频转写、视频转多平台内容、视频拆解、链接转文章、视频内容聚合、提取这条视频的文字。

---
name: video-text-extractor
description: 视频文字提取专家。下载指定链接视频→提取语音转写为文字→(可选)生成并评分筛选最优公众号标题→用内容工厂生成多格式产物。触发词:视频文字提取、视频转文案、视频转写、视频转多平台内容、视频拆解、链接转文章、视频内容聚合、提取这条视频的文字。
---

# 视频文字提取专家(Video Text Extractor)

一条从「视频链接」到「文字资产 + 多格式内容产物」的端到端流水线。把竞品/爆款视频变成可复用的文字,再做选题、改写与多平台分发。

本机已验证可跑通(抖音实测:洋哥短视频运营、千雪AI Obsidian+WorkBuddy 两条视频均成功提取)。

## 适用场景

- 用户给一个视频链接(抖音 / B站 / YouTube 等),要提取其中的口播文字
- 提取后要做选题分析、文案改写、多平台内容再生产
- 银发经济内容聚合:竞品测评拆解、爆款结构学习、自有产品内容二次生产

## 前置依赖

| 环节 | 工具 | 备注 |
|------|------|------|
| 下载 | video-downloader-skill | yt-dlp + ffmpeg(脚本已内置 `--cookies-from-browser edge`) |
| 转写 | 本 Skill 自带 Vosk 分段脚本 + 模型 | 低内存,无需 torch;模型已打包进 `models/` |
| 标题 | wechat-title 技能 | 需 REDFOX_API_KEY(本机已配置在 `~/.openclaw/openclaw.json`) |
| 多格式 | content-factory 技能 | 纯提示词,无依赖 |

## 工作流(四步)

### 第 1 步:下载视频
调用 `video-downloader-skill`:
```
/video-downloader "<视频URL>" "720p" "<输出目录>"
```
- 抖音等需 cookie:脚本已带 `--cookies-from-browser edge`,但**前提是 Edge 没在运行**(见已知坑 7)
- 产出:本地 mp4 路径

### 第 2 步:提取视频中文字(语音转写)—— 核心
**一律用分段容错版**,长视频单进程转写会原生崩溃(见已知坑 6):
```
python <skill>/scripts/vosk_transcribe_seg.py "<视频.mp4>" "<输出稿.txt>"
# 可选参数: [模型目录] [段长秒,默认15]
```
- 脚本自动:ffmpeg 抽 16k 单声道 WAV → 切 15s 段 → 每段独立子进程跑 Vosk → 崩则跳段 → 拼接全文
- 产出:`<输出稿.txt>`(Vosk 小模型原始转写,含跳段提示)
- ⚠️ **不要用 faster-whisper**:本机 HF 源被网络白名单封死,模型权重下不下来(详见已知坑 1)

### 第 3 步:生成整理版(强烈建议)
Vosk 小模型对品牌名/术语识别差(Obsidian→"七点"、WorkBuddy→"我发给"、Zettelkasten→"卡巴西")。基于第 2 步原始稿,**由 AI 做语义重建整理版**:
- 修正听歪的品牌/术语/人名
- 按口语停顿断句,保持原意,不增不改事实
- **明确标注"整理版为非逐字、语义重建"**,原始稿留底备查
- 产出:`<输出稿_整理版.txt>`

### 第 4 步(可选):公众号标题生成与评分,选最优
调用 `wechat-title` 技能:
1. **标题生成**:输入视频主题/关键词,生成 10 个爆款标题 + 匹配指数
2. **标题评分**:多维度评分(100 分制),选综合最高者作主标题
- **降级**:若 REDFOX_API_KEY 缺失,改用 content-factory 的 Headline Machine 生成 20 个标题按 CTR 排序选优

### 第 5 步(可选):内容工厂多格式产物
调用 `content-factory` 技能,以「转写稿 + 最优标题」为源内容,生成多格式:
- 公众号长文、小红书笔记、抖音口播脚本、短视频分镜、FAQ、Pull Quote、邮件段落等
- 按用户需求指定格式组合

## 输出规范

- `<视频名>_文字稿.txt`:Vosk 原始转写(留底)
- `<视频名>_文字稿_整理版.txt`:AI 语义重建整理版(标注非逐字)
- `标题候选与评分.md`:(可选)标题生成 + 评分 + 选定主标题
- `多格式产物.md`:(可选)content-factory 产出
- 汇总说明:每份产物的适用平台与用法

## 已知坑(本机特殊适配,务必遵守)

1. **faster-whisper 不可用**:HF 主站 + hf-mirror 被出网白名单封,模型权重 0 字节。必须走 Vosk。
2. **Vosk 模型下载限速**:alphacephei.com 单连接 ~13KB/s,需多线程分片下载后合并解压。模型已打包进 Skill 的 `models/`,换环境时复制即可,无需重下。
3. **srt 依赖无 cp313 wheel**:vosk 包顶部 `import srt`,而 srt 无 Python 3.13 wheel,pip 构建源码包会撞本机「安全删除」拦截。解决:在 venv 的 `site-packages` 放一个最小 `srt.py` 桩模块(仅满足 import),转写实际不调用 srt。
4. **抖音 cookie**:下载报 `Fresh cookies needed` 时,脚本已带 `--cookies-from-browser edge`。
5. **ffmpeg**:需管理员安装(本机 choco 装的 9.0.1,已在 PATH)。
6. **⭐ 长视频 Vosk 原生崩溃(核心坑)**:对 >~30s 的音频,Vosk 在**单进程**下会在某段(常在中后段)触发原生层崩溃——exit 1 且无 Python 异常,前 N 秒单独转正常。原 `vosk_transcribe.py`(非分段版)会整段失败。**解法是 `vosk_transcribe_seg.py`:切 15s 段、每段独立子进程,崩则跳过该段,最终拼接。** 千雪AI那条 5.6 分钟视频用分段版 23 段全过、0 跳过、2819 字。
7. **⭐ Edge cookie 锁**:本机 Edge 运行时独占锁住 Cookie 库(`WinError 32: 另一个程序正在使用此文件`),yt-dlp 复制不出来 → 抖音下载失败。解法:`taskkill /F /IM msedge.exe` 关掉 Edge 释放锁,下载完用户可自行重开 Edge。(webview2 是别的 app 用的,不用管)
8. **整理版必要**:Vosk 小模型对中英文品牌名/术语识别差,原稿需要 AI 整理才能读。
9. **⭐ REDFOX 积分不足(标题步骤降级)**:`wechat-title` 官方数据源 REDFOX API 账户积分可能为 0(实测报"积分余额不足,剩余积分 0.0"),第 4 步拉不到真实爆款数据。此时按下方降级路径走 `content-factory` 的 Headline Machine(公式法)出标题,并**明确标注"非真实数据支撑"**,绝不冒充爆款数据。先 `python scripts/fetch_official_account_trends.py --keyword X --days 7` 试一次,若返回"积分余额不足"立即降级。

## 降级与容错

- 第 4 步无 Key → content-factory Headline Machine 兜底
- 第 2 步某段崩溃 → 分段脚本自动跳段,不中断全文
- 模型缺失 → 按已知坑 2 重新分片下载
- 任意步失败 → 报告具体错误,绝不编造结果

## 复用清单(新环境部署)

1. 复制本 Skill 整个目录(含 `models/` 约 41MB)
2. venv 安装:`pip install --only-binary=:all: vosk`(清华镜像);若 srt 报缺失,放 `srt.py` 桩
3. 确认 ffmpeg / yt-dlp 在 PATH
4. 抖音下载前确保 Edge 已关
视频文字提取专家 · 由 sync_homepage.py 自动生成