前言¶
DeepSeek Harness(DSH)的消息渲染块支持 text、image、file、table,但没有原生的 video 块;工具调用块又默认折叠,模型录屏、转码或配音生成的 mp4、m4a 往往只能以文件芯片形式出现,用户还要自己去侧边栏找路径。若希望「回合结束就在回复下方看到播放器」,需要额外机制。下面介绍社区插件 dsh-video-preview(维护者 OrderG-X,分类:客户端):用官方插件 API 提供 play_video 工具、回合尾部的原生播放器,以及支持 HTTP Range 的签名流式路由,零 @deepseek-ai/* 依赖,与官方 present 工具走同一套 deliverables 通道。
这是什么¶
dsh-video-preview 在 DSH 对话流中内联播放本地视频和音频:模型调用 play_video 或在本轮新生成媒体文件时,播放器会自动出现在回复正下方(与 Claude 桌面端 / Codex 同类位置),并可配合交付文件芯片在侧边栏大屏预览。插件当前版本 0.3.0,许可证 MIT,源码与发布包见 GitHub,社区目录页见 SkillHub。
核心功能¶
play_video 工具与三处展示¶
一次 play_video 调用后,用户通常能看到:
- 回复下方的播放器(主位)——视频为小卡片(画面高约 200px、保持比例,角标时长;悬停可静音预览并显示文件名、大小、下载;点击从头带声播放)。音频为细条样式(圆形播放键、文件名、大小、时长、可拖进度条)。超过 3 个媒体会先折叠为「还有 N 个媒体文件」;同一时间只有一个在出声。配色与圆角使用 DSH 设计变量,随深浅色主题切换。
- 交付文件芯片——点「在侧边栏预览」可打开大屏播放器(接管 DSH 原生对 mp4 等「不可预览」的限制)。
- 工具块内小播放器(兜底)——展开工具调用块后可见。
模型通过自带 present 工具交付的媒体文件,也会自动挂上播放器。
回合收尾自动播放¶
无需模型专门调工具:本轮命令参数、命令输出、回复正文中出现的媒体路径会被解析(支持带空格、中文、~、相对路径、shell 转义)。只挂载本轮新写出的文件,回复正文提到的优先;一轮最多 8 个;已被 play_video / present 播过的不重复挂。若来不及在收尾时挂上,会在回合结束后补上(需重新打开会话才可见)。
流媒体与安全¶
服务端提供两条路由:/dsh-video-preview/media(HMAC 签名 token + HTTP Range 流式,大文件不进内存)与 /dsh-video-preview/preview(供侧边栏与回复下方播放器,由 DSH connection 服务验登录 cookie;老版本 DSH 无该服务时仅接受本机连接)。因 DSH 本地网页服务本身不做鉴权,路由按扩展名只允许媒体文件(软链接按真实目标算),并校验 Host、Origin,防 DNS 重绑定与跨站读取。v0.3.0 之前仅校验 cookie 名称,存在伪造风险,资料建议升级至当前版本。
安装与启用¶
安装命令(来自仓库 README,勿自行拼接 github:owner/repo 形式):
dsh plugin add https://github.com/OrderG-X/dsh-video-preview/releases/latest/download/dsh-video-preview.tgz
装完后必须重启 DSH——客户端代码在启动时打包,不重启看不到播放器。DSH「插件」页中显示名称为「视频播放」。
本地开发可链到目录(改代码后同样需重启):
dsh plugin --profile desktop add link:/path/to/dsh-video-preview
典型用法¶
对话中直接说明路径即可,例如「播一下 ~/Movies/a.mp4」,模型会调用 play_video。参数如下:
| 参数 | 必填 | 说明 |
|---|---|---|
path |
是 | 本地文件绝对路径(支持 ~) |
title |
否 | 播放器标题,默认文件名 |
autoplay |
否 | 自动播放(浏览器通常会拦截) |
loop |
否 | 循环播放 |
能播什么¶
播放器基于 DSH 所用的 Chromium 内核,格式支持以内核为准:
| 格式 | |
|---|---|
| 能播 | 视频 mp4 / m4v / mov / webm / ogv;音频 mp3 / wav / ogg / m4a / aac / flac / opus |
| 视编码 | mkv / 3gp:取决于内部编码,不支持时播放器下方会说明并给出转码命令 |
| 不能直接播 | avi / flv / wmv / wma / ts / mpg / rmvb 等——play_video 会说明并给出转码命令 |
转码需安装 ffmpeg(macOS 示例:brew install ffmpeg):
ffmpeg -i in.avi -c:v libx264 -c:a aac -movflags +faststart out.mp4 # 视频
ffmpeg -i in.wma -c:a aac out.m4a # 音频
播放失败时,界面会区分:文件被移动、无权限、插件未加载(需重启 DSH)、编码不支持等情况,并在适当时附转码命令。
适用场景与注意¶
适合谁:在 DSH 里频繁用模型生成或处理本地音视频(录屏、ffmpeg / avconvert、say 配音等),希望在同一对话界面即时试听、试看,而不反复复制路径或依赖外部播放器。
运行与信任:插件以当前 DSH 进程权限运行,签名密钥存放在 ~/.dsh/cache/dsh-video-preview.secret(权限 0600)。安装前请自行查看源码与 MIT 许可证,确认路由与文件访问策略符合你的环境。README 记载在 DeepSeek Harness 0.2.1-rc.2 桌面端做过端到端验证;其他版本行为以实际为准。
DSH 生态强调「一切皆插件」;SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系,本文介绍的是社区维护的客户端插件,非官方应用商店条目。
结尾¶
dsh-video-preview 用 play_video、deliverables 通道与回合尾播放器,补上 DSH 消息模型里缺少的内联 video/audio 体验,并对本地媒体流做了扩展名与签名/登录态约束。若你需要在 Harness 对话里直接播本地文件,可按上文命令安装、重启 DSH 后试用。