前言¶
DSH 的插件思路是把扩展能力拆成可安装的插件;社区目录是独立站点,与 DeepSeek / 幻方无官方从属关系。对使用 DSH Web 侧边栏的开发者来说,一个具体问题是:dsh-better-sidebar 可以预览图片、PDF、Markdown 等文件,但视频文件缺少专门的播放预览方式。
dsh-video-preview 解决的就是这一项:在侧边栏打开常见视频文件时,内联渲染一个可播放、可拖拽进度条的 <video> 播放器。
这是什么¶
dsh-video-preview 是 zemul 维护的 DSH 插件,包名为 dsh-video-preview,许可证为 MIT,package.json 声明版本为 0.1.4,要求 Node >=20。
它面向已安装 dsh-better-sidebar 的 DSH Web 环境,通过 ctx.betterSidebar.registerFileViewer 注册 video 预览器,previewer id 为 video,与内置 viewer 同权。
核心功能¶
- 支持以下文件扩展名:
.mp4/.m4v/.webm/.mov/.qt/.mkv/.avi/.wmv/.flv/.ogv/.ogg/.mpeg/.mpg/.3gp/.3g2/.m2ts - 内联渲染
<video controls>,支持播放/暂停、拖拽进度条、倍速、全屏、音量,并设置preload=metadata - 播放器底部显示文件名,并提供「下载」链接
- 自带
/video/*宿主路由,支持 HTTP Range、If-Range、suffix-range,如bytes=-N - 视频大小不受
better-sidebar的mediaLimit限制 - viewer 描述符带
title和icon,Side card 设置页会自动显示启用开关,包含 16px 播放器图标 - 客户端组件自包含,不依赖
better-sidebar的 client 内部实现,配置为fetchStrategy: 'none'
安装与启用¶
前置条件:
- DSH 已装好,且
dsh web能运行 - 已安装
dsh-better-sidebar better-sidebar >= 0.4.0,因为插件依赖ctx.betterSidebar.registerFileViewer服务
安装命令:
dsh plugin --profile web add dsh-video-preview
安装后需要重启 dsh web 进程,并在浏览器中执行硬刷新:
Cmd/Ctrl+Shift+R
说明:新增宿主半 /video 路由需要重启一次;之后如果只是 client 改动,硬刷新即可。
典型用法¶
1、打开侧边栏。
2、在侧边栏的文件资源管理器中打开任意支持的视频文件,video 预览器会自动命中,并显示内联播放器。
3、进入 Side card 设置页。
4、在「文件预览」清单中可以看到 Video 卡片,带播放器图标,可单独启用或禁用。
适用场景与注意¶
适合在 DSH Web 侧边栏中频繁查看本地或会话目录内视频文件的开发者。常见适用文件包括浏览器可解码的 H.264 mp4 / m4v、VP8 / VP9 的 webm、mov、OGV 等格式。
需要注意以下几点:
- 插件以当前
dsh进程权限运行,安装前应检查源码与许可证。 - Chrome / Edge / Firefox 不内置解码的格式,例如部分 HEVC、AV1 组合,会在播放器内报错;此时可以使用播放器底部的「下载」链接取回原文件。
- 插件不新建 Tab 页,仅作为文件预览器注册;如有需要,也可按需再加
registerTab。 - 路由复用与
/api网关相同的 Host 头信任围栏,只接受 loopback 或trustedHosts,拒绝跨站。 - 解析后的路径必须位于会话权威工作目录内,大小写和分隔符有一定容忍,
..无法越界。 - 路由只读流式下发,不写文件、不设身份。
链接¶
GitHub:https://github.com/zemul/dsh-video-preview