dsh-video-digest
August 16, 2026 · View on GitHub
视频链接一键提炼 MD — 把任意视频链接变成一份结构化的中文总结笔记,中间文件自动清理。
Video URL → distilled Markdown notes for DeepSeek Harness agents. Auto-cleans all intermediate files.
这是什么 / What is this
给 DSH 里的 Agent 注册一个 video_summarize 工具:给它一个视频链接(B站 / YouTube / 抖音等 yt-dlp 支持的平台),它自动完成五步流水线,返回一份中文 Markdown 总结笔记:
视频链接
↓
① yt-dlp 下载(1080p 以内,自动合并音视频)
② B站官方元数据(UP主/发布日期/播放/点赞/收藏/投币/弹幕)+
官方字幕优先(无字幕自动降级 SenseVoice 语音转写,10 分钟分段)
③ ffmpeg 场景检测提取关键帧 + 逐帧时间戳
④ dsh-vision-router 识图(deepseek-vision 路由)逐帧描述
⑤ DeepSeek-V4-Flash 综合生成总结 MD(章节带 ?t= 时间戳跳转链接)
↓
输出:视频内容提炼-<标题>.md(默认 D:/ai)
中间文件(视频/音频/关键帧/转写)自动删除 ✅
特性 / Features
- 一键使用:对话里给 Agent 一个链接即可,Agent 会自动调用工具
- B站官方元数据:UP主 / 发布日期 / 播放 / 点赞 / 收藏 / 投币 / 弹幕,写入笔记"视频概览"(非 B站平台自动跳过)
- 字幕优先:B站有官方字幕(含 AI 字幕)直接用字幕时间轴——更准确、更省;无字幕自动降级 SenseVoice 语音转写
- vision-router 识图:关键帧描述走 dsh-vision-router 的
deepseek-vision路由(与vision_describe同一条视觉链),不直连任何厂商 API - 时间戳跳转:章节标题与关键帧索引使用
[标题](链接?t=秒)格式,点击直达视频对应位置 - 自动清理:
finally保证无论成败都删除工作目录;启动时清理 1 天前的残留 - 调试开关:
keep_video=true保留中间文件 - 纯 Python 实现:yt-dlp + imageio-ffmpeg(自带 ffmpeg 二进制,无需系统安装 ffmpeg)
- 双源交叉:转写/字幕文本 + 关键帧视觉描述双路证据,同音词(get→git 等)由 LLM 自动修正
安装 / Install
前置要求:
- 一个可用的 DeepSeek Harness 部署(Web GUI)
- Python 3.11 虚拟环境,含
yt-dlp、faster-whisper(可选)、imageio-ffmpeg(见下方环境准备) - 一个 SiliconFlow API Key(语音转写 + 视觉 + 文本生成共用),写入 DSH 凭据:
# $DSH_HOME/.credentials.yaml SILICONFLOW_API_KEY: "sk-..."
安装插件行:
dsh plugin add github:<你的用户名>/dsh-video-digest
或手动在 profile 的 cordis.patch.yml 追加:
- insert:
- id: video-digest
name: dsh-video-digest
环境准备 / Requirements
py -3.11 -m venv D:/ai/bili-digest/.venv
D:/ai/bili-digest/.venv/Scripts/python.exe -m pip install yt-dlp imageio-ffmpeg
imageio-ffmpeg自带 ffmpeg 二进制,插件运行时自动定位,无需系统安装 ffmpeg。 注意:index.js顶部的PY常量指向该 venv 的 python 路径,请按你的机器调整。
使用 / Usage
在 DSH 对话中直接说:
Agent 会调用 video_summarize 工具(参数:url / output_dir / keep_video),约 8–15 分钟(40 分钟视频)后返回 MD 文件路径。
工作原理 / How it works
| 步骤 | 实现 | 说明 |
|---|---|---|
| 下载 | python -m yt_dlp | bv*[height<=1080]+ba/b,ffmpeg 合并 |
| 元数据 | B站 x/web-interface/view API | UP主/发布日期/播放/点赞/收藏/投币/弹幕;失败自动跳过 |
| 字幕 | B站 x/player/wbi/v2 API | AI/人工字幕优先,20s 窗口聚合;无字幕降级 ASR |
| 转写 | SiliconFlow /v1/audio/transcriptions | SenseVoiceSmall,10 分钟/段带偏移(仅降级路径) |
| 关键帧 | ffmpeg select='gt(scene,0.35)' | 640w 降采样加速,单趟出帧 + pts 时间戳 |
| 视觉 | SiliconFlow /v1/chat/completions | Qwen3-VL-30B-A3B,4 线程并发 |
| 成稿 | SiliconFlow /v1/chat/completions | DeepSeek-V4-Flash,输出结构化 MD(?t= 跳转链接) |
已知限制 / Known limitations
- 依赖 SiliconFlow 账号额度(代金券/余额)
- 转写为 ASR 结果,个别专有名词可能有误(LLM 成稿时会修正常见同音词)
- 工作目录硬编码为
D:/ai/.video-digest-tmp,PY与输出默认路径按部署机器调整 - 长视频(>1 小时)耗时随时长线性增长
License
MIT