name: video-transcript-txt description: 将一个或多个本地视频转写为带每段开始和结束时间的整理版 TXT。当用户要求视频转文字、视频转写、提取视频文本或字幕、批量生成带时间戳 TXT、整理视频口述内容、统计视频处理耗时时使用。通过 uv、ffmpeg/ffprobe 和 openai-whisper 处理;中间文件写入系统临时目录并自动清理,永不删除源视频。 metadata: short-description: 视频转写为带起止时间的 TXT
将完整下载的本地视频转写为带逐段起止时间的纯文本文件。单视频生成一个 .txt;多视频时每个视频独立生成一个 .txt,并在全部完成后汇总总视频时长与实际处理总耗时。
<视频文件名>_整理版.txt。[HH:MM:SS.mmm - HH:MM:SS.mmm]文本--force。.downloading、.part、.partial 等未完成下载文件。zh;用户明确指定时使用其语言。uv、ffmpeg、ffprobe 是否可用。uv run ~/.claude/skills/video-transcript-txt/scripts/video_transcript_txt.py \
"/absolute/path/to/video.mp4"
指定输出:
uv run ~/.claude/skills/video-transcript-txt/scripts/video_transcript_txt.py \
"/absolute/path/to/video.mp4" \
--output "/absolute/path/to/result.txt"
用户已明确允许覆盖时:
uv run ~/.claude/skills/video-transcript-txt/scripts/video_transcript_txt.py \
"/absolute/path/to/video.mp4" \
--force
可选参数:
--model:Whisper 模型,默认 small。--language:语言代码,默认 zh。--model-dir:模型缓存目录,默认 ~/.cache/whisper。--force:覆盖已存在的最终 TXT,仅在用户明确允许时使用。ffprobe 获取视频时长。uv run --with openai-whisper whisper 转写,所有格式输出到临时目录。segments。SUMMARY_JSON: 行作为机器可读摘要。当用户提供多个视频时,由主 agent 统筹,多名子 agent 分批处理:
每个子 agent 完成后必须回传:
status:success 或 error。优先从脚本输出的 SUMMARY_JSON: 解析这些字段;解析失败时再从中文输出中提取,并说明摘要解析失败。
用户说“总时长”但未明确含义时,默认同时汇报两类时长:
ffprobe。多视频并行时,实际处理总耗时通常小于各单视频处理耗时之和;最终回复必须说明这一点。
汇总模板:
处理完成。
成功:3 个
失败:1 个
成功文件:
1. /path/a_整理版.txt
视频时长:00:10:12.350
处理耗时:00:03:05.120
段落数:96
失败文件:
1. /path/c.mp4
原因:输出已存在,未获覆盖授权
汇总:
总视频时长:00:40:00.330
实际处理总耗时:00:06:28.500
说明:因为多个视频并行处理,实际处理总耗时不是各单视频处理耗时的简单相加。
出现以下情况时停止对应视频,不生成误导性结果:
.txt。uv、ffmpeg 或 ffprobe 不可用。依赖缺失通常影响全部视频,应停止整批处理并提示用户修复环境。单个输入或单个转写失败只停止该视频,其余视频继续。
不要做以下事情:
--force。这个视频转文字工具质量不错,文档写得清楚详细,脚本运行稳定可靠,能很好地保护源文件安全。使用起来比较简单,单个或多个视频都能处理。需要注意的是它依赖 ffmpeg 等外部工具,运行时需要等待转写过程,整体体验较好但对环境配置有一定要求。