前言¶
在 DeepSeek Harness (DSH) 的使用场景中,常需要一边查看聊天内容,一边在 Stash 服务器上浏览或试看视频片段。传统方式通常需要打开新标签页,这会打断当前的工作流。dsh-video-player 提供了一个类似 PiP(画中画)的浮动窗口,将视频播放器挂载在 DSH 的 Web UI 之上,实现在不中断操作的前提下浏览视频。
这是什么¶
这是一个由 IP050 维护的 DSH 插件。它允许用户在网页界面中运行一个浮动、可拖拽、可调整大小的视频播放器。该播放器主要用于播放来自 Stash 风格场景服务器的 MP4 片段,同时也支持 YouTube、Twitch、Jellyfin 或自定义链接。
核心功能¶
- 窗口操作:支持拖拽标题栏移动窗口,拖拽右下角实时调整大小(最小尺寸 200×140)。窗口由原生
<video>标签构建,包含完整的播放控制。 - Stash 场景导航:提供
◀和▶按钮用于在场景之间步进,支持通过数字输入框直接跳转。默认连接到http://host.docker.internal:9999,使用/scene/{no}/stream路径。 - 多源支持:内置频道下拉菜单,支持 Stash、Custom、YouTube、Twitch、Jellyfin。
- 链接自动检测:在链接字段粘贴 YouTube/Twitch/Jellyfin 或直接文件链接,会自动识别并切换频道播放,不会错误追加
/scene/N/stream后缀。 - 配置面板:点击齿轮图标(⚙)可设置窗口宽度、高度、不透明度以及 Stash 基础 URL。
- 持久化与共存:窗口的位置、大小和不透明度会保存到 localStorage,刷新后保持。该插件与 DSH 的 pet 和主题共存,作为独立的固定叠加层。
安装与启用¶
- 安装插件:
dsh plugin --profile web add /path/to/dsh-video-player
注意:如果使用 `link:` 安装方式(即从本地目录安装),需要先建立导入桥接,否则主模块的导入无法解析。创建符号链接:
mkdir -p /path/to/dsh-video-player/node_modules/@deepseek-ai
ln -s ~/.dsh/profiles/node_modules/@deepseek-ai/dsh-settings /path/to/dsh-video-player/node_modules/@deepseek-ai/dsh-settings
ln -s ~/.dsh/profiles/web/node_modules/schemastery /path/to/dsh-video-player/node_modules/schemastery
- 重启 Web Profile:
sh ~/.dsh/dsh-guard/restart-web.sh
修改在启动时生效。
典型用法¶
- 移动与调整:按住标题栏拖动窗口,或拖拽右下角调整大小。
- 浏览场景:在 Stash 服务器上找到目标片段,使用窗口上的
◀/▶按钮切换,或在输入框输入数字后按回车。 - 播放外部链接:直接在链接框粘贴 YouTube 或 Twitch 链接,点击播放即可。
注意事项¶
- 模块导出要求:该插件对模块导出有特定要求。主机模块必须使用命名导出(
export function apply,export const inject,export const name),且不能使用export default,否则 DSH 的加载器会丢弃inject配置导致启动失败。 - 客户端独立性:客户端模块(
lib/client.js)不应声明inject服务列表(应设为[]),否则会进入挂起状态。 - 主要来源:Stash 是该插件的主要数据源,其他来源(YouTube 等)为尽力而为模式。
结语¶
该插件解决了 DSH 用户在多任务处理时的视频查看需求。目前该项目在 GitHub 上获得 1 star。如需更多细节或贡献,可访问项目主页:GitHub | 目录页。