yt-edit
根据带时间戳的转录稿生成的编辑决策列表。它输出剪辑位置。你负责应用它们。
python3 ${CLAUDE_SKILL_DIR}/deadair.py transcript.srt # srt, vtt 或 whisper json
python3 ${CLAUDE_SKILL_DIR}/deadair.py transcript.srt --floor 0.35 --json
这些工具位于本技能文件夹中。在 Claude Code 中,${CLAUDE_SKILL_DIR} 就是该文件夹;对于无法展开此变量的环境(claude.ai、Codex),请使用加载此 SKILL.md 的文件夹路径。
还没有转录稿?请先索取一份,或自行生成——whisper、faster-whisper,或者 YouTube 对未列出上传视频生成的字幕轨道均可。YouTube 的自动字幕 .vtt 可直接使用:加载时会自动剥离内联单词时间戳、重复的行和 [音乐] 类标注。请勿猜测时间。
有链接但没有转录稿?YouTube 自己的字幕,一行搞定:
yt-dlp --skip-download --write-auto-subs --sub-langs en --sub-format vtt -o transcript "<video url>"
这将写入 transcript.en.vtt。将 en 替换为视频的语言。自动字幕没有标点符号;whisper 生成的转录稿则包含标点,能提供更清晰的句子边界。
它检测什么
- DEAD - 超过阈值(floor)的静音间隙,从中间修剪,确保两端保留呼吸声。紧贴说话内容剪切会让精简后的片段听起来喘不过气。
- FILLER - 完全由填充词组成的提示,包括“嗯”、“所以”、“基本上”,以及西班牙语(“bueno”、“o sea”)、印地语(“matlab”、“accha”、“मतलब”)和尼泊尔语(“ani”、“khai”、“अनि”)。其他语言将检测 DEAD 和 REPEAT,但没有填充词列表——请说明。
- REPEAT - 重新开始的句子。与上一个实际说话的提示进行比较,而不是字面上的上一个提示,因为大多数重拍在两次尝试之间都有“嗯”。被废弃的那一次将被剪切,且通常是两者中较短的那个。
它不会做什么
它不会接触媒体文件。它对你的 B-roll 没有任何意见。报告中 40% 的剪裁是针对讲话的 40%;如果视频中有很长的无声演示,这个数字就是错误的——在相信底部的运行时间之前,请将报告与镜头核对。
门控
此处没有任何内容自动发布。这个技能负责写,你负责发布。每次输出都以用户可复制的块结束,每次运行的最后一句话都是问题:是发布,还是修改?