前言¶
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