前言¶
在 DSH(DeepSeek Harness)里長時間寫提示、跑對話時,背景音往往還要切到瀏覽器或獨立播放器:找臺、分類、切流和主界面是兩套窗口。社區裏已有把電臺做成 DSH 側邊入口的插件,但多數是列表或卡片式瀏覽。若你希望用一套可交互的三維場景承載大量真實電臺源,並在同一進程裏播放與控制,dsh-blackhole-radio-lab 把目錄、渲染和播放收進一個 DSH 插件 bundle,左欄底部一張卡片即可進入全屏舞臺。
這是什麼¶
dsh-blackhole-radio-lab 是維護者 WhatCannotBeSaid 發佈的 DSH 插件(npm 包名 dsh-blackhole-radio-lab,當前 README 標註 v1.2.1,MIT 許可)。裝上後左欄底部多一張電臺卡片,點卡片上的黑洞圖標進入全屏「黑洞電臺」舞臺:中央是事件視界、光子環與吸積盤,外圍三層視差星場;約 2.4 萬臺真實網絡電臺嵌在吸積盤裏,遠看是一條亮帶,靠近才分辨單個電臺。頁面沒有常駐搜索欄或分類側欄,搜索和分類在你主動點擊時出現。
插件分類屬於聯網工具:播放時瀏覽器直連電臺流,曲目信息來自流內 ICY 元數據;目錄數據來自 Radio Browser 公開 API,發佈包內含構建期探活後的快照。
核心功能¶
舞臺與交互¶
- 手寫軌道相機:左鍵拖動環繞黑洞、滾輪縮放、阻尼收斂,焦點鎖在黑洞核心。
- 原生 Three.js:單個
Points與自定義着色器承載全部電臺,不爲每臺電臺單獨建 Mesh。 - 遠中近三級 LOD:遠看連續亮帶,中距見盤面亮結,近距顯示單個電臺與附近臺名(臺名畫在 2D canvas,不進 DOM)。
- 黑洞與星團兩相:按住黑洞左鍵約 2.3 s,盤面散成星團;星團或空白處按住右鍵約 2.3 s,星點重新凝聚成盤。配置項
wormhole爲false時可恢復瞬時切換。 - 轉場期間若幀時間喫緊,會按視口面積把渲染像素壓到約 70 萬以內,仍不足再逐步降倍率,空閒後爬回。
電臺與播放¶
- 內置快照啓動(構建時已逐條探活),缺快照時回落實時抓取;用戶側可按配置在 DSH 運行期間後臺刷新目錄,緩存寫入
$DSH_HOME/cache/blackhole-radio-lab/。 - 搜索覆蓋臺名、國家地區、語言、分類;13 個流派烘進星團視覺分區,無單獨分類面板。
- 播放 / 暫停、上一臺 / 隨機下一臺、音量;啓動或卡頓超過 15 秒時同臺最多重連一次,不自動換臺。
- 記住音量與最後成功播放站,重開不自動出聲;支持系統播放 / 暫停 / 停止控制。
- 懸停卡片可點播放,顯示流派與
LIVE;收藏在左欄底部卡片上。收藏與喜歡的歌曲保存在本機$DSH_HOME/blackhole-radio-lab/library.json,不聯網同步。 - 點歌名可在 Spotify、網易雲音樂、QQ 音樂、Apple Music、YouTube 中搜索(平臺可右鍵切換)。界面語言隨應用中文 / English。
Host 與架構(簡要)¶
插件分 Host 半(index.js + src/host/:配置、靜態路由、目錄刷新、ICY 曲目探測,零運行時依賴)與瀏覽器半(按需加載 client.stage.js、client.radio.js 等 chunk)。Host 對曲目查詢拒絕迴環、私網地址,重定向逐跳校驗;不加載遠端腳本、不引 CDN。
安裝與啓用¶
先決條件:Node.js ≥ 20,DSH(README 寫明已驗證 0.2.1-rc.2)。
從 npm 安裝發佈版:
dsh plugin --profile <profile> add dsh-blackhole-radio-lab
將 <profile> 換成你實際使用的 DSH profile 名。裝完後必須重啓 DSH:桌面端進程不會在運行時自行發現新 bundle。
卸載:
dsh plugin --profile <profile> remove dsh-blackhole-radio-lab
可選配置掛在 cordis.patch.yml 對應條目的 config 下,例如抗鋸齒、渲染倍率上限、是否啓用 wormhole 轉場、目錄刷新策略等;未給出的鍵回落到插件 index.js 中的默認值。完整鍵名與範圍見倉庫 README 的配置表。
典型用法¶
進入舞臺後,常用操作如下(與 README「上手」表一致):
| 操作 | 結果 |
|---|---|
| 左鍵拖動 | 繞黑洞旋轉 |
| 滾輪 | 以黑洞爲中心縮放 |
| 單擊黑洞中心 / 回車 | 打開搜索 |
| 黑洞上按住左鍵 2.3 s | 盤面散開爲星團;按住 0.6 s 時環外脈衝表示已識別;鬆手回抽 |
| 星團或空白處按住右鍵 2.3 s | 星點內收成盤;120 ms 內鬆手則打開收藏列表 |
| 星點上懸停 / 點擊 | 懸停卡片 / 播放暫停 |
Esc |
關閉浮層或退回黑洞 |
左欄底部卡片獨佔站名、曲目行、收藏、喜歡、播放控制與音量;點卡片黑洞圖標進入全屏舞臺。
調試時可在頁面 URL 加查詢參數,例如 ?bhrlStations=5000 臨時覆蓋臺數、?bhrlWormhole=0 關閉按住轉換。
適用場景與注意¶
適合誰: 已在用 DSH、希望在工作流同屏聽全球網絡電臺,且能接受 WebGL 三維交互而非傳統列表 UI 的開發者或重度用戶。
權限與信任: 插件以當前 DSH 進程權限運行;安裝前請閱讀 GitHub 倉庫 源碼與 MIT(及黑洞着色器相關的 BSD-3-Clause 聲明)。播放直連第三方流,你的 IP 會暴露給對應電臺;作者服務器不參與中繼。
已知限制(節選): 無賬號與雲同步;部分電臺會 404 或地區受限;關閉窗口時 pagehide 會停止播放;實時抓取路徑每次最多取 5,000 臺,內置快照遠大於此。DSH 社區目錄 SkillHub 條目 與 DeepSeek / 幻方無官方從屬關係,生態理念是「一切皆插件」,需自行判斷是否安裝第三方 bundle。
結尾¶
dsh-blackhole-radio-lab 把 Radio Browser 規模的真實電臺目錄、ICY 元數據播放與本機偏好,放進可環繞、可縮放的黑洞 / 星團三維舞臺,並作爲 DSH 左欄常駐入口。若要查看簡介與安裝說明,可打開 SkillHub 插件頁 或 GitHub 倉庫 README。