视频提取文字
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_9aa92135/video-transcript-txt。
技能介绍
它解决什么问题
把本地视频转成文字,通常意味着在 ASR 工具、字幕编辑器和文本清洗流程之间来回切换。更麻烦的是:Whisper 默认会在当前目录留下 JSON、WAV 等中间文件;批量处理时多个视频容易互相覆盖;输出的时间轴格式五花八门,后续对齐成本很高。这个技能把整条链路收敛成一条命令:输入视频绝对路径,输出一个格式统一的 .txt,中间产物全部留在系统临时目录并自动清理。
核心能力与关键步骤
- 格式统一:每段输出为
[HH:MM:SS.mmm - HH:MM:SS.mmm]文本,时间精度到毫秒。 - 依赖自检:运行前检查
uv、ffmpeg、ffprobe是否可用,缺失时整批停止并提示修复环境。 - 时长获取:用
ffprobe读取视频时长,用于最终汇报。 - 转写隔离:通过
uv run --with openai-whisper调用 Whisper,所有中间输出写入系统临时目录,成功或失败都会清理。 - 原子替换:只有最终 TXT 会落到视频同目录,命名
_整理版.txt;同名文件已存在时默认停止,只有用户明确授权后才传--force。 - 并发限流:多视频由主 agent 统筹、子 agent 分批处理,默认并发 2 个视频,资源充足且视频较短时最多 3 个。
- 失败隔离:单个视频转写失败不阻塞批处理,失败原因进入最终汇总。
- 时长区分:汇报时区分总视频时长(ffprobe 媒体时长之和)与实际处理总耗时(墙钟时间),不混用。
适用边界与注意点
- 只接受完整下载的本地视频,拒绝
.downloading、.part、.partial等未完成文件。 - 不删除、不移动、不修改源视频;不猜测说话人,不根据上下文篡改人名、数字、剂量或专业术语。
- 用户未指定语言时默认中文
zh,明确指定时使用其语言;模型默认small,可通过--model调整。 - 每个视频最终只保留一个 TXT,不会在视频目录留下 WAV、JSON、SRT、VTT、TSV 等中间产物。
- 并行调度不可用时自动降级为串行,汇总结果不变。
使用场景
- 手上有数小时的课程录屏,需要先转成带时间轴的纯文本再做逐段校对与内容检索。
- 下载了几份本地会议录像,希望每个视频各自生成一个 `_整理版.txt`,且不在目录里留下 JSON 或字幕残档。
- 媒体团队正在整理多期访谈,需要批量转写并得到总视频时长与实际处理耗时两项数据用于排期。
适合人员
- 需要把课程录屏整理成可检索讲稿的课程内容运营,常面对单个视频时长数小时的素材。
- 负责归档内部会议录像、要快速定位某次讨论说了什么的产品助理。
- 开发 CLI 工作流、希望把 Whisper 转写封装成稳定可重复脚本的后端工程师。
- 做自媒体二次创作、需要从访谈长视频中摘出带时间戳片段文案的创作者。