在侧边栏直接播放视频音频,大文件拖动进度条也秒响应
29.5/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/26 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add magnoliatech-code/dsh-media-player该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件发起外部网络请求
查看扫描证据(共 8 处,展示前 7 条)
- 发起网络请求lib/client.js:50
const response = await fetch(mediaBase() + 'api/resolve?address=' + encodeURIComponent(address), { - 读取本地文件server.js:72
try { return await realpath(target); } catch { return null; } - 读取本地文件server.js:78
try { entries = await readdir(dir, { withFileTypes: true }); } catch { return; } - 读取本地文件server.js:90
const s = await stat(full); - 读取本地文件server.js:159
const html = await readFile(join(HERE, 'player.html')); - 读取本地文件server.js:210
try { info = await stat(file); } catch { return send(res, 404, 'not found'); } - 读取本地文件server.js:254
const stream = createReadStream(file, { start, end });
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
README
由 DeepSeek 最新模型翻译生成dsh-media-player
DeepSeek Harness Web 面板的视频/音频播放器。
在侧边栏点击媒体文件,就地播放。45 分钟的 1080p 母版通过 HTTP Range 流式传输,拖动进度条即时响应,不必整个读进内存——正是这个技巧让 1.7 GB 的渲染文件在浏览器里可用。
播放器页面
为什么需要它
侧边栏的文档预览通过 RPC 读取整个文件:对 PDF 合适,对视频母版毫无办法。这个插件补上了预览缺的两件事:
- 一个回环 HTTP 服务器,响应 Range 请求,浏览器只取要播放的那部分字节。它跑在 harness 进程内部,随 dsh web 启动和停止,不会变成孤儿进程留在外面。
- 一个文档预览渲染器,支持视频和音频,媒体文件不再落到「preview is not available」。
安装
需要 DSH Web 配置档(基于 @deepseek-ai/dsh 0.2.0-rc.2 构建)。
展开完整文档(README 剩余 1 节)
dsh-media-player DeepSeek Harness Web 面板的视频/音频播放器。 在侧边栏点击媒体文件,就地播放。45 分钟的 1080p 母版通过 HTTP Range 流式传输,拖动进度条即时响应,不必整个读进内存——正是这个技巧让 1.7 GB 的渲染文件在浏览器里可用。 播放器页面 为什么需要它 侧边栏的文档预览通过 RPC 读取整个文件:对 PDF 合适,对视频母版毫无办法。这个插件补上了预览缺的两件事: - 一个回环 HTTP 服务器,响应 Range 请求,浏览器只取要播放的那部分字节。它跑在 harness 进程内部,随 dsh web 启动和停止,不会变成孤儿进程留在外面。 - 一个文档预览渲染器,支持视频和音频,媒体文件不再落到「preview is not available」。 安装 需要 DSH Web 配置档(基于 @deepseek-ai/dsh 0.2.0-rc.2 构建)。 1. 克隆到一个稳定且绝对的位置: git clone https://github.com/magnoliatech-code/dsh-media-player.git ~/.local/share/dsh-media-player 2. 把插件条目加进配置档补丁 ~/.dsh/profiles/web/cordis.patch.yml: - insert: - id: media-player name: /home/YOU/.local/share/dsh-media-player/index.js config: root: /home/YOU/projects # what the playlist scans port: 8099 两个约束,都很容易踩: - 新条目必须放在 insert: 列表里。光写 - id: … 只会覆盖已存在的条目;单独出现时它会警告 patch: entry "…" not found,什么也不加载。 - name 必须是绝对路径。加载器会把它改写成 file:// URL,所以不需要 pnpm add,不需要配置档依赖,也没有构建步骤。 3. 重启 harness(dsh web)并刷新页面。改代码要重启,改配置不用——编辑补丁后条目大约两秒内重启,但 Node 会缓存已导入的模块,新代码只有在新进程里才会加载。 配置 | 字段 | 默认值 | 含义 | | root | harness 的 process.cwd() | 扫描并提供的目录 | | port | 8099 | 回环 TCP 端口 | | host | 127.0.0.1 | 绑定地址 | 如果你从别处启动 dsh web,请固定 root,不要依赖启动目录。 使用 - 在 harness 里——在 Files 中点击媒体文件,或点击聊天里指向它的链接。标签页照常显示路径头、刷新和「在应用中打开」。 - 完整页面——右侧边栏 → Browser → http://127.0.0.1:8099/。自带的 Browser 标签页在 Web 配置档里默认关闭;在同一个补丁文件里用 - id: ui-sidebar-browser 和 disabled: false 启用它。 - 外部——在任意浏览器打开同一 URL;它不绑定会话。 - 独立运行,harness 已停止——node bin/media-player.js --root DIR --port N。 深链接 #play=<path> 会在播放器里打开单个文件。路径可以相对于服务根目录,也可以是绝对路径。在界面里选中文件会重写片段,所以地址栏始终可以分享: http://127.0.0.1:8099/#play=renders/act1.mp4 http://127.0.0.1:8099/#play=/home/you/projects/renders/act1.mp4 浏览器不允许无手势的带声自动播放,所以通过链接进入时,视频上会显示 press to play 提示层。音频保留原生控件——在那里加提示层只会碍事。无论当前启用哪种筛选,链接的文件都会保持列出。 工作原理 宿主(index.js、server.js)持有回环监听器,并通过 webserver 的 index-inject 事件把地址以 globalThis.dshMediaPlayer 发布到页面里,浏览器端因此永远不用猜端口。 客户端(lib/client.js)在 extension 优先级带上认领 mp4 m4v mov webm mkv ogv mp3 m4a aac wav flac ogg opus weba,并渲染播放器主体。它以 loading: 'renderer' 注册,意味着共享预览从不读取文件:主体向 /api/resolve 请求流 URL,再交给浏览器自己的 /。 客户端部分是手写的 bundle——harness 通过 window.__ModuleLoader__ 加载它,react 是它唯一请求的平台模块。没有打包器,没有构建步骤;改 lib/client.js 后刷新页面即可。 端点 | 路径 | 用途 | | / | 播放器页面 | | /api/media | 整个根目录的播放列表 JSON | | /api/health | 存活状态、绑定端口、根目录 | | /api/resolve?address=… 或 ?path=… | 资源地址或路径 → 流 URL | | /m/<path>、/<path> | 支持 Range 的媒体 | 安全 默认只监听回环。只提供媒体和字幕后缀,所以 root 下的源文件和密钥一律返回 404。Host 头不是回环名加绑定端口的请求会被拒绝,从而挡住 DNS 重绑定。JSON 端点只对回环来源回显 Origin,所以另一个本地端口上的 harness 页面能读取它们,公网站点则不能。 它以你的用户身份运行,从不用 root:harness 就是你的进程。 限制 - 改代码需要重启 harness,如上所述。 - 一个端口只能有一个占用者。 第二个 dsh web 实例会记录 media-player: 127.0.0.1:8099 is already in use,其余功能照常工作。 - 浏览器决定自己能解码什么。 .mkv 和 Theora 会被认领,但 Chromium 经常拒绝;播放器会说明这一点并指向 VLC,而不是显示一帧死画面。 - 全屏在沙箱化的 Sidebar Browser 框架内被阻止;请使用 open tab ↗,或使用预览渲染器——那里播放器不在框架内。 开发 npm test # node test/smoke.mjs 冒烟测试按 harness 的方式加载 bundle,检查渲染器注册、视频/音频渲染树、流 URL、解码失败覆盖层,以及重试状态。历史版本打了标签 v0.1.0 … v0.2.1;见 CHANGELOG.md。 package.json 里的 private: true 是有意为之——这个包从路径安装,不发布到 npm。 许可证 MIT
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
magnoliatech-code/dsh-media-player
在侧边栏直接播放视频音频,大文件拖动进度条也秒响应
相关插件 · 浏览器
智能体插件框架deepseek-ai/deepseek-harness
DeepSeek Harnessdsh是由 DeepSeek AI 开发的开源 agent harness智能体框架。
★ 272,060已汉化DSH
71.9
多设备 Agent 看板YaoApp/yao
✨ 所有 Agent 和工作区集中管理,覆盖你的每一台设备。任务看板追踪进度,桌面端、移动端、浏览器、API…
★ 8,147已汉化DSH
71.2
可扩展侧边栏工作台omdsh-dev/DSH-better-sidebar
DSH 的双工作台:原生右侧栏 + 自绘底部面板,并把 ctx.betterSidebar 服务开放给所有插件
★ 4,885已汉化DSH
71.2
浏览器自动化桥Tencent/BrowserSkill
你的 Agent。你的浏览器。连接,就能协作。
★ 9,967已汉化DSH
71
AI 小说创作工作台EthanYoQ/AI-Novel-Writer
AI 小说作家 / AI Novel Writer
★ 1,591已汉化DSH
70.7
智能体浏览器引擎platonai/Browser4
DeepSeek Harness 集成
★ 1,175已汉化DSH
70.4
这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。