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