🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

浮动视频播放器 IP050/dsh-video-player

DeepSeek Harness
IP05070 天前有提交已提供中文文档扫描:未发现敏感能力

在聊天窗口旁悬浮播放并拖拽浏览 Stash 视频片段

28.5/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/9/16 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add IP050/dsh-video-player
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · market
装得上吗
本站已真实安装成功
非静态推断
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 70 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🟢 扫描:未发现敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。

发起外部网络请求
查看扫描证据(共 2 处,展示前 2 条)
  • 发起网络请求
    lib/client.js:93
    var r = await fetch("/api/dsh-video-player/config");
  • 发起网络请求
    lib/client.js:107
    fetch("/api/dsh-video-player/config", {
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 悬浮播放视频片段
  • 拖拽移动窗口
  • 缩放窗口

给 DeepSeek Harness(DSH)用的悬浮视频播放器,可拖动、可缩放。

README

由 DeepSeek 最新模型翻译生成
dsh-video-player 视频播放器在 Stash 中 视频播放器在 Stash 上 一个用于 DeepSeek Harness (DSH) 的浮动、可拖拽、可调整大小的视频播放器。 它在 Web UI 上挂载一个小窗口,播放来自 Stash 风格场景服务器的逐 MP4 片段——在你的聊天窗口旁支起一个视频流,让你在工作时翻看片段。窗口可以实时移动和调整大小,就像一个真正的画中画视频。Stash 是主角;其他来源则尽力支持。 安装 npm install -g pnpm@11 # 容器镜像未附带 pnpm dsh plugin --profile web add /path/to/dsh-video-player 重启 web profile(bundle 变更仅在启动时生效): sh ~/.dsh/dsh-guard/restart-web.sh 链接式安装需要导入桥接。 dsh plugin add 会把插件安装为 link: 符号链接,而 Node 会从宿主模块的真实路径(/path/to/dsh-video-player)解析其导入,该路径位于 profile 的 node_modules 之外。
展开完整文档(README 剩余 1 节)
dsh-video-player

视频播放器在 Stash 中

视频播放器在 Stash 上

一个用于 DeepSeek Harness (DSH) 的浮动、可拖拽、可调整大小的视频播放器。
它在 Web UI 上挂载一个小窗口,播放来自 Stash 风格场景服务器的逐 MP4 片段——在你的聊天窗口旁支起一个视频流,让你在工作时翻看片段。窗口可以实时移动和调整大小,就像一个真正的画中画视频。Stash 是主角;其他来源则尽力支持。

安装

npm install -g pnpm@11 # 容器镜像未附带 pnpm
dsh plugin --profile web add /path/to/dsh-video-player
重启 web profile(bundle 变更仅在启动时生效): sh ~/.dsh/dsh-guard/restart-web.sh

链接式安装需要导入桥接。 dsh plugin add 会把插件安装为 link: 符号链接,而 Node 会从宿主模块的真实路径(/path/to/dsh-video-player)解析其导入,该路径位于 profile 的 node_modules 之外。在从本地目录安装之前,先为它建立桥接:

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

功能

- 浮动、可调整大小的窗口——拖拽标题栏可移动它,拖拽右下角可实时调整大小(最小 200×140)。原生 播放器带控件(播放/暂停、拖动进度、全屏、音量)。
标题栏中的输入框和按钮被排除在拖拽处理之外,因此它们保持可点击/可输入。
- Stash 场景导航(主角)——◀ / ▶ 切换场景,数字输入框 + Go / Enter 可跳转到任意位置,状态行显示确切的流 URL。默认服务器为 http://host.docker.internal:9999,每个片段使用 /scene/{no}/stream;它支持 Range 请求(已验证 206 Partial Content),因此拖动进度可用。
- 频道下拉菜单(自定义控件)——Stash / 自定义链接 / YouTube / Twitch / Jellyfin。以按钮形式构建,而非原生 (后者在 DSH 的深色 UI 中不可靠)。
选择频道会立即切换来源。
- 带自动检测的链接输入框——粘贴 YouTube / Twitch / Jellyfin / 直接文件链接,它会自动选择频道并播放(绝不会追加 /scene/N/stream 后缀)。
Enter 或 ▶ 按钮播放;粘贴即自动播放。
- 齿轮面板 (⚙) = 仅窗口 + Stash 配置——宽度、高度、不透明度,以及 Stash 基础 URL(场景服务器根地址)。来源/频道配置刻意不放在这里。
- 持久化几何信息——位置、大小和不透明度在重新加载后保留(localStorage)。
- 与宠物和主题共存——它是与 DSH 宠物和 dream-skin 壁纸并存的独立固定覆盖层。

架构

- 宿主部分(lib/index.js)——注册 dsh-video-player 设置命名空间(schema:base、channel、url、scene),并提供 GET/POST /api/dsh-video-player/config。POST 处理程序通过 DSH 设置服务写入,因此源配置会持久化到真实的设置存储中(而非 localStorage)。
- 客户端部分(lib/client.js)——自包含(纯 DOM,inject: [],立即激活)。它轮询 GET /api/dsh-video-player/config(约 2.5 秒)并通过 POST 将标题栏变更推送回去,因此浮动窗口和设置存储保持同步。

我们遇到并修复的 bug(经验教训)

1. 宿主 export default 会丢弃 inject。 DSH 的 bundle 加载器会将模块的 default 导出解包为裸函数,静默丢弃 inject/name——随后服务会在启动时抛出 cannot get property "webServer" without inject,并导致整个应用崩溃。修复方法:仅使用具名导出(export function apply、export const inject、export const name),与 dsh-pet 宿主 bundle 完全一致。
2. 声明了从未使用的 inject 的客户端会挂起。 该客户端曾声明
inject: ["@deepseek-ai/dsh-client-runtime"] 却从未 require 它,
于是永远停留在 pending (waiting for service: …)。修复方法:让客户端保持自包含,使用 inject: []。
3. 对于 link: 安装,宿主导入无法解析。 参见上面的桥接说明。

路线图

- 层级控制——将窗口置于聊天之前(默认)、之后 / 收进侧边栏,或“最小化到侧边栏”。
- 透明度——窗口不透明度(已完成:齿轮面板中 0.3–1.0)外加一个点击穿透开关,用于你想观看但不想交互的场景。
- 警报 / “有人进来了”按钮——一键播放声音(待定)。
- 场景缩略图栏——当前场景 ± 几个场景的缩略图,用于更快地翻页。
- 设置菜单卡片——dsh-video-player 设置命名空间已注册;如果通用设置界面没有将其渲染为独立区块,则添加一个客户端设置卡片(类似 pet 的),以便 channel/link 可从 Settings → dsh-video-player 编辑。
- Stash 场景列表——探测服务器以获取有效的场景编号,并在真实集合内翻页,而不是 ±1。
预览分享卡片长什么样 ↓IP050/dsh-video-player
分享 · DeepSeek Harness Hub
IP050/dsh-video-player

在聊天窗口旁悬浮播放并拖拽浏览 Stash 视频片段

这是你的仓库?认领条目

回到顶部