前言¶
在 DeepSeek Harness (DSH) 的使用場景中,常需要一邊查看聊天內容,一邊在 Stash 服務器上瀏覽或試看視頻片段。傳統方式通常需要打開新標籤頁,這會打斷當前的工作流。dsh-video-player 提供了一個類似 PiP(畫中畫)的浮動窗口,將視頻播放器掛載在 DSH 的 Web UI 之上,實現在不中斷操作的前提下瀏覽視頻。
這是什麼¶
這是一個由 IP050 維護的 DSH 插件。它允許用戶在網頁界面中運行一個浮動、可拖拽、可調整大小的視頻播放器。該播放器主要用於播放來自 Stash 風格場景服務器的 MP4 片段,同時也支持 YouTube、Twitch、Jellyfin 或自定義鏈接。
核心功能¶
- 窗口操作:支持拖拽標題欄移動窗口,拖拽右下角實時調整大小(最小尺寸 200×140)。窗口由原生
<video>標籤構建,包含完整的播放控制。 - Stash 場景導航:提供
◀和▶按鈕用於在場景之間步進,支持通過數字輸入框直接跳轉。默認連接到http://host.docker.internal:9999,使用/scene/{no}/stream路徑。 - 多源支持:內置頻道下拉菜單,支持 Stash、Custom、YouTube、Twitch、Jellyfin。
- 鏈接自動檢測:在鏈接字段粘貼 YouTube/Twitch/Jellyfin 或直接文件鏈接,會自動識別並切換頻道播放,不會錯誤追加
/scene/N/stream後綴。 - 配置面板:點擊齒輪圖標(⚙)可設置窗口寬度、高度、不透明度以及 Stash 基礎 URL。
- 持久化與共存:窗口的位置、大小和不透明度會保存到 localStorage,刷新後保持。該插件與 DSH 的 pet 和主題共存,作爲獨立的固定疊加層。
安裝與啓用¶
- 安裝插件:
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
- 重啓 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 | 目錄頁。