dsh-video-player:DeepSeek Harness 的浮動視頻播放器

前言

在 DeepSeek Harness (DSH) 的使用場景中,常需要一邊查看聊天內容,一邊在 Stash 服務器上瀏覽或試看視頻片段。傳統方式通常需要打開新標籤頁,這會打斷當前的工作流。dsh-video-player 提供了一個類似 PiP(畫中畫)的浮動窗口,將視頻播放器掛載在 DSH 的 Web UI 之上,實現在不中斷操作的前提下瀏覽視頻。

這是什麼

這是一個由 IP050 維護的 DSH 插件。它允許用戶在網頁界面中運行一個浮動、可拖拽、可調整大小的視頻播放器。該播放器主要用於播放來自 Stash 風格場景服務器的 MP4 片段,同時也支持 YouTube、Twitch、Jellyfin 或自定義鏈接。

核心功能

  1. 窗口操作:支持拖拽標題欄移動窗口,拖拽右下角實時調整大小(最小尺寸 200×140)。窗口由原生 <video> 標籤構建,包含完整的播放控制。
  2. Stash 場景導航:提供 ◀ 和 ▶ 按鈕用於在場景之間步進,支持通過數字輸入框直接跳轉。默認連接到 http://host.docker.internal:9999,使用 /scene/{no}/stream 路徑。
  3. 多源支持:內置頻道下拉菜單,支持 Stash、Custom、YouTube、Twitch、Jellyfin。
  4. 鏈接自動檢測:在鏈接字段粘貼 YouTube/Twitch/Jellyfin 或直接文件鏈接,會自動識別並切換頻道播放,不會錯誤追加 /scene/N/stream 後綴。
  5. 配置面板:點擊齒輪圖標(⚙)可設置窗口寬度、高度、不透明度以及 Stash 基礎 URL。
  6. 持久化與共存:窗口的位置、大小和不透明度會保存到 localStorage,刷新後保持。該插件與 DSH 的 pet 和主題共存,作爲獨立的固定疊加層。

安裝與啓用

  1. 安裝插件:
    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
  1. 重啓 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 | 目錄頁。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜