| name | video-digest |
| description | 将公开视频或音频链接下载并转录为完整逐字稿,再根据真实转录内容提炼重点。用户说“提取视频”“转录链接”“生成逐字稿和摘要”、使用“/提取”并附带链接,或一次提供多个视频链接时使用。支持 B站、抖音、YouTube、小红书及 yt-dlp 可处理的平台。 |
视频转录与重点提炼
把视频或音频链接转换为“重点提炼 + 完整逐字稿”,直接显示在对话中,不写入知识库或永久文件。
始终基于真实转录内容生成摘要。不要根据标题、描述或常识补写未转录出的内容。
前置检查
确认以下命令可用:
yt-dlp --version
ffmpeg -version
whisper --help
如有缺失,告诉用户安装:
pip install -U yt-dlp openai-whisper
工作流
1. 解析输入
- 提取一个或多个 URL,以及可选备注。
- 识别平台用于结果展示:
bilibili.com / b23.tv:B站
douyin.com / tiktok.com:抖音
youtube.com / youtu.be:YouTube
xiaohongshu.com / xhslink.com:小红书
- 其他:其他平台
- 多个 URL 必须逐条处理;每条链接使用独立临时目录。
2. 获取元数据并转录
为当前链接创建临时目录:
WORKDIR="$(mktemp -d "${TMPDIR:-/tmp}/video-digest.XXXXXX")"
获取标题、作者、时长和发布时间:
yt-dlp --dump-single-json --no-download --no-playlist "<URL>"
下载音频并转换为适合 Whisper 的 WAV:
yt-dlp -x --audio-format wav --audio-quality 0 \
--postprocessor-args "ffmpeg:-ar 16000 -ac 1" \
-o "$WORKDIR/audio.%(ext)s" --no-playlist "<URL>"
转录:
whisper "$WORKDIR/audio.wav" --model base --language zh \
--output_format txt --output_dir "$WORKDIR"
- 明确是英文内容时,把
--language zh 改为 --language en。
- 语言不明确或混合语言较多时,去掉
--language 让 Whisper 自动识别。
- 读取完整的
$WORKDIR/audio.txt,不要只读开头或截断后半段。
- 下载失败时,明确说明“该链接无法访问,未能转录”,不要生成摘要。
3. 校验内容
- 转录超过 50 个字符:生成重点提炼。
- 转录不超过 50 个字符:只输出逐字稿,并说明内容过短,未生成提炼。
- 转录为空:报告失败,不得用视频简介替代逐字稿。
4. 提炼重点
按原文结构提炼,不自行增加原文没有的观点:
[一句话概括核心价值]
① 名称:具体说明
② 名称:具体说明
...
核心观点:[一句话总结]
纠正上下文中明显的语音识别错误;无法确认的专有名词标记 [?],不要猜测。
5. 输出结果
🎬 标题:<title>
👤 作者:<uploader>
⏱️ 时长:<duration>
🔗 链接:<url>
📝 重点提炼:
<提炼结果>
———————————
📄 完整逐字稿:
<完整转录文字>
6. 清理
确认输出所需内容已经读取后,删除当前链接的临时目录:
rm -rf "$WORKDIR"
不要删除任何非本工作流创建的目录。
异常处理
- 链接需要登录、内容已删除、地区受限或下载失败:说明具体失败原因,不编造内容。
- 视频超过 15 分钟:仍然完整转录;提前提示可能耗时较长。
- 多个链接:一条失败不影响后续链接,分别报告每条结果。