dsh-video-kit:让 DeepSeek Harness 一次调用读懂本地与网页视频

前言

在 DeepSeek Harness(DSH)里做智能体时,模型往往只能处理文本和当前工作区里的文件。用户丢过来一条 B 站链接或本地 MP4,常见做法是人工转字幕、截几张图再粘贴进对话,既慢又难保留时间轴。社区插件 dsh-video-kit(维护者 shisuiqingqian)把「下载 / 抽帧 / 中文语音识别」收成少数几次工具调用:返回带时间戳的逐字稿和关键帧的绝对路径,模型可再配合内置 read_image 逐帧查看。目录分类为「模型推理」;插件在 SkillHub 目录页 与 GitHub 仓库 均可查阅(社区目录与 DeepSeek / 幻方无官方从属关系)。

这是什么

dsh-video-kit 是面向 DSH 的本地插件(当前包版本 1.2.2,MIT 许可)。一次 video_read 可把本地视频绝对路径或 http(s) 页面链接变成:

  • transcript:时间轴逐字稿;
  • frames:关键帧图片的绝对路径;
  • 以及 outdir、duration 等元数据。

网页侧依赖 yt-dlp 处理 bilibili、腾讯视频、YouTube 等;字幕不足时用 Paraformer(sherpa-onnx)做中文 ASR 补齐;关键帧由 ffmpeg(经 imageio-ffmpeg)抽取。ASR 模型约 227 MB,不随 npm 包分发,首次使用或提前运行 setup 脚本会落到数据目录。

核心功能

插件注册三个工具(进程启动时加载,见下文「装完必须做两件事」):

工具 作用
video_read 读单个视频:转写 + 抽帧,返回路径与时长
video_discover 按关键词在抖音 / 小红书 / 公众号 / B 站等找候选,返回标题与 URL,再交给 video_read
video_kit_setup 体检或安装 Python 运行时依赖与 ASR 模型(check=true 仅体检)

video_read 主要参数(摘自 README):

参数 类型 默认 说明
source string 必填 本地绝对路径或 http(s) 链接
every number 20 每隔多少秒抽一帧;短视频会自动加密到 2 秒
maxframes number 24 最多抽帧数
copyTo string — 将关键帧与逐字稿复制到指定目录,返回复制后的路径
timeoutMs number 900000 整体超时;约 10 分钟视频处理常见 1–3 分钟

video_discover 面向需登录的平台:插件使用独立浏览器 profile(默认目录 ~/.dsh/toolkits/video-kit/browser,CDP 端口默认 9333,可用 VIDEO_CDP_PORT 修改),用户在弹出窗口登录一次后复用 cookie(DPAPI 加密),插件不接触账号密码。platform=bilibili 不需登录,可用于验证 CDP 链路。

安装与启用

官方推荐在解压后的 dsh-video-kit 目录执行 PowerShell 安装脚本(勿凭插件名自行拼接 dsh plugin add 类命令):

# 解压后进入 dsh-video-kit 目录
powershell -ExecutionPolicy Bypass -File .\install.ps1

脚本会:将文件铺到 ~/.dsh/local-plugins/、同步到 profiles/<profile>/node_modules/、登记 file: 依赖、在 profile 补丁层写入挂载块,并做一次依赖体检。可选参数:-Profile <名字>(默认 desktop)、-NoPatch、-WhatIfOnly。

手工安装需复制目录到 %USERPROFILE%\.dsh\local-plugins\dsh-video-kit 与 %USERPROFILE%\.dsh\profiles\desktop\node_modules\dsh-video-kit,在 cordis.patch.yml 末尾追加挂载块,并在同目录 package.json 的 dependencies 增加 "dsh-video-kit": "file:../../local-plugins/dsh-video-kit"。也可在 profile 目录执行:

cd %USERPROFILE%\.dsh\profiles\desktop
pnpm add file:../../local-plugins/dsh-video-kit

装完后仍需写入与脚本相同的 cordis.patch.yml 挂载片段。

装完必须做两件事:

  1. 完全退出并重新打开 DeepSeek Harness(插件在进程启动时加载,热改不生效)。
  2. 新开一个会话(已有会话的工具表在建立时冻结,老会话看不到 video_read 属正常行为)。

运行时要求 Node >= 18,以及本机 Python 3.8+ 且在 PATH 中。Python 依赖由 setup 经 pip install --user 安装,无需管理员权限,也无需系统单独安装 ffmpeg。

数据与模型默认目录(可用环境变量 VIDEO_KIT 修改):

%USERPROFILE%\.dsh\toolkits\video-kit\
  models\asr-paraformer-zh\model.int8.onnx
  models\silero_vad.onnx
  videos\<视频名>\frames\*.jpg
  videos\<视频名>\transcript.txt

提前安装或体检:

python "%USERPROFILE%\.dsh\toolkits\video-kit\bin\setup.py"
python "%USERPROFILE%\.dsh\toolkits\video-kit\bin\setup.py" --check

也可调用工具 video_kit_setup(check=true 只体检)。

典型用法

对模型用自然语言说明即可,例如:

用 video_read 读 D:\videos\demo.mp4,每 10 秒抽一帧

模型拿到 frames 后会自行调用 read_image 结合 transcript 作答。

若会话文件策略为 workspace-write,DSH 把图片复制到 ~/.dsh/attachments/ 时可能因工作区外不可写导致页面「图片无法预览」;此时对工作区内路径传 copyTo,例如:

用 video_read 读 D:\videos\demo.mp4,copyTo 传 C:\Users\你\工作区\.frames

检索流程(需登录平台时):

video_discover action=login  platform=douyin
video_discover action=status
video_discover action=search platform=douyin query="数字人 教学"

将返回的 items[].url 交给 video_read 即可。

卸载:

powershell -ExecutionPolicy Bypass -File .\uninstall.ps1
powershell -ExecutionPolicy Bypass -File .\uninstall.ps1 -PurgeData

-PurgeData 会连同约 230 MB 模型数据一并删除。

适用场景与注意

适合需要在 DSH 对话里直接理解教学视频、会议录像、站点分享链接的开发者;也适合先 video_discover 再批量 video_read 的轻量检索场景。

使用前请注意:

  • 插件以当前 DSH 进程权限运行,会读写 ~/.dsh 下目录、调用 Python 与网络下载;安装前请自行审阅 源码 与 MIT 许可证,第三方模型与工具许可遵循各自上游。
  • video_discover 仅读列表页,默认不做并发;登录态一般 7–30 天失效需重新 action=login。
  • 无音轨或纯音乐时转写可能为空,仍可依赖关键帧。
  • 常见误判:新进程新会话才有工具;挂载问题可查 ~/.dsh/toolkits/video-kit/plugin-loaded.txt;package.json 带 BOM 可能导致 DSH 启动 JSON 解析失败(安装器 1.1.1 起已处理无 BOM)。

结尾

dsh-video-kit 把「链接或文件 → 时间轴文稿 + 可看图的关键帧」收成 DSH 工具链上的一步,减轻手工截帧与抄字幕的负担。进一步了解与安装包见 SkillHub 目录 与 GitHub:shisuiqingqian/dsh-video-kit。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye