前言¶
在 DeepSeek Harness 里做本地素材分析、听录、看样片时,常见做法是复制路径到系统播放器,或在对话里只拿到文件路径而没有可操作的播放器。对话与媒体被拆成两个窗口,交付卡片也难以直接试听试看。
dsh-media-tab 是 Moosphan 维护的 DSH 客户端插件:在回复下方内联播放,在右侧栏提供完整播放页与最近播放列表;零运行时依赖,不需要 ffmpeg。项目托管于 GitHub,社区目录见 skillhub.cn。DSH 生态强调「一切皆插件」;社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。
这是什么¶
一句话定位:在 Harness 内直接播放本地视频和音频——回复下方内联播放器、右侧栏播放页、最近播放列表。
维护者:Moosphan。分类:客户端。当前 package.json 版本为 0.1.0,许可证 MIT。
核心功能¶
下面介绍 README 中已说明的能力。
内联与侧栏
- 模型用
present交付音视频时,播放器自动出现在回复下方。 - 点交付卡片或播放器上的「在侧栏打开」,可在右侧栏打开完整播放页。
- 播放页底部「最近播放」保留最近 20 条,可清空。
模型工具 play_media
用户可说「播一下 /path/a.mp4」等,由模型调用 play_media。参数如下:
| 参数 | 必填 | 说明 |
|---|---|---|
path |
是 | 本地路径,支持 ~ 与会话相对路径 |
title |
否 | 标题,默认文件名 |
autoplay |
否 | 自动播放 |
loop |
否 | 循环 |
格式
| 类别 | 格式 |
|---|---|
| 视频 | .mp4 .m4v .mov .webm .ogv .mkv .3gp |
| 音频 | .mp3 .wav .ogg .oga .m4a .aac .flac .opus .weba |
| 不支持 | .avi .flv .wmv .wma .ts .mpg .rmvb 等;会给出 ffmpeg 转码命令提示 |
实现与安全(摘要)
- 桌面端可拖动进度条:宿主把媒体签名为绝对 URL,播放器经本地端口拉流,Range 与
Content-Length完整保留。 - 只服务白名单媒体文件,
realpath防符号链接;界面请求验登录 cookie,媒体请求验 HMAC 签名;不联网。 - 最近播放与签名密钥存放在
~/.dsh/cache/dsh-media-tab/。
更细架构见仓库 docs/architecture.md。
安装与启用¶
需要 DSH 0.2.x(package.json 中 engines.dsh 为 >=0.2.0-rc.1 <0.4.0-0)。
先做安装,再重启 DSH:
dsh plugin add github:Moosphan/dsh-media-tab
重启后,插件页应出现「媒体播放」。
典型用法¶
- 让模型通过
present交付本地音视频文件,回复下方会出现内联播放器。 - 用自然语言指定路径,例如「播一下 /path/a.mp4」,由模型调用
play_media。 - 需要更大控件或连续浏览时,点「在侧栏打开」,在右侧栏播放;底部可查看或清空最近 20 条记录。
适用场景与注意¶
适合谁
- 在 DSH 对话里需要就地预览本地样片、音频片段,又不想切到外部播放器的人。
- 希望模型交付媒体后界面里直接有可点可拖播放器的工作流。
安装前建议
插件以当前 DSH 进程权限运行,能访问的路径受宿主与用户会话约束。安装前应自行查看 源码与 LICENSE,确认符合你的安全与合规要求。
排错(来自 README)
| 现象 | 处理 |
|---|---|
| 拖不动进度条 | 完全退出 DSH 重开;Network 里媒体请求应是 http://127.0.0.1... |
| 连不上播放服务 | 重启 DSH,确认 /dsh-media-tab/api/health 返回 ok |
| 解码失败 | 编码不在 Chromium 支持范围,按提示转码 |
| 视频有黑边 | 保持原始比例,属正常表现 |
结尾¶
dsh-media-tab 把本地音视频播放收进 Harness:内联预览、侧栏完整播放、最近列表,且不依赖 ffmpeg 运行时。若要在环境里启用,按官方命令安装并重启即可。