dsh-music-dock:DSH 侧边栏常驻音乐 Dock

前言

在 DeepSeek Harness(DSH)里长时间跑任务时,如果音乐能力藏在独立面板或路由里,切歌、看歌词、改队列都要先离开当前工作流。社区里 @doitian/dsh-music 已经负责网易云播放、队列、会话和 AI DJ,但界面不一定贴在侧边栏底部。dsh-music-dock 把播放状态画在左侧栏、设置 上方,操作再回传给宿主,适合希望「边用 Harness 边控音乐」的开发者。

这是什么

dsh-music-dock(维护者 zy32566)是 DSH 的客户端类插件:侧边栏里始终可见的播放卡片,含封面、歌名歌手、同步歌词(含中文翻译)、进度与音量、队列、搜索、网易云歌单与 AI DJ 开关。

它不播放、不登录——播放、队列、网易云会话和 AI DJ 全部由 @doitian/dsh-music 持有;本插件只展示状态并把用户操作送回宿主。

核心功能

界面嵌在侧边栏底部,各区域职责如下(与 README 功能表一致):

区域 内容
头部 波形动画(播放中)· 播放状态 · 译 翻译开关 · 展开
当前曲目 封面 · 歌名 · 歌手 · 音质徽章(320k / 无损 / Hi-Res 等)· 红心
歌词 上一句 / 当前句高亮 / 中文翻译 / 下一句,200ms 刷新
进度 可点击跳转的进度条 + 时间
控制 播放模式 · 上一首 · 播放/暂停 · 下一首 · 展开抽屉
抽屉 队列(打开时定位到正在播放项)· 歌单 · 搜索
AI DJ 开关 · 心情输入框 · 按新心情重新规划

抽屉里歌单与搜索每一行有两个按钮:⏭ 插到下一首播放,+ 加到队尾;点歌名则立刻播放(会替换队列)。收起为 56px 导轨时,卡片退化为封面按钮。

架构上,UI 是独立 HTML(lib/widget.html,零依赖原生 JS),经 /music-dock/widget 提供;高度通过 postMessage 与 iframe 协商(抽屉展开上限约 560px)。改 widget.html 后无需重装插件:页面约每 6 秒比对宿主 /music-dock/health 的 rev,变更则自动 location.reload()。

安装与启用

必须先安装宿主机插件,否则本插件没有数据可显示。

在 Harness 里:

Plugins → Add plugin → @doitian/dsh-music

或命令行:

dsh plugin --profile desktop add @doitian/dsh-music

再安装本插件:

dsh plugin --profile desktop add github:zy32566/dsh-music-dock

重启 Harness 后,侧边栏底部会出现播放卡片。

可选宿主补丁

两处补丁均为可选;不打补丁插件仍可用,仅有两处体验降级。脚本幂等,锚点找不到时会报错退出;升级 @doitian/dsh-music 后需重跑。加 --check 只检查不改。

node patches/apply-my-playlists.mjs     # 让「歌单」页显示你自己的歌单
node patches/hide-sidebar-entry.mjs     # 去掉宿主自己的侧边栏 Music 入口
  • 补丁一:上游内部有 userPlaylists(uid),但 /api/playlists 返回的是个性化推荐。不打补丁时歌单页降级为推荐歌单,不报错。
  • 补丁二:侧边栏会列出所有 sidebar.panellist 注册项且无过滤。不打补丁时会出现宿主 Music 入口与本插件卡片并存。去掉的只是应用内导航行;完整面板仍在 http://127.0.0.1:<端口>/music/panel(音质切换、AI DJ 模型选择等 dock 暂不绘制)。

典型用法

安装并重启后,直接在侧边栏底部操作播放、歌词、队列与 AI DJ 即可,无需额外配置项(资料中未列出独立配置文件)。

本地开发或调试 UI 时,可用预览工具反代真实 Harness 的 /music/*:

node tools/preview.mjs          # http://127.0.0.1:63900
DSH_PORT=55645 node tools/preview.mjs   # 指定 Harness 端口

也可单独打开 widget 路由(Harness 运行中):

http://127.0.0.1:<port>/music-dock/widget

HTTP API 契约见仓库 docs/api-contract.md。

适用场景与注意

适合谁:已在 DSH desktop profile 使用 @doitian/dsh-music,希望播放控制常驻侧边栏、减少面板切换的开发者。

权限与安全:插件以当前 DSH 进程权限运行;安装前应阅读源码与 MIT 许可证。本插件只提供只读 widget 路由,但所调用的宿主 /music/* 无鉴权、仅监听回环地址——本机其他程序若可达该端口可读写播放状态;勿将 Harness 端口暴露到公网。网易云 Cookie 由宿主保存在 ~/.dsh/music/session.json;使用非官方接口,网易云改版可能导致取数失效。

已知问题(README 记载):

  • 搜索恒返回 0 条:宿主 /api/search 对任意关键词返回空列表,属网易云 eapi 搜索侧问题,宿主面板同样受影响。
  • 部分英文歌无中文翻译时,翻译行为空。
  • 「我喜欢的音乐」依赖宿主 likes 缓存,首次可能较慢。

社区插件目录 SkillHub 由社区维护,与 DeepSeek / 幻方无官方从属关系;星标与版本以仓库与目录页实时信息为准。

结尾

dsh-music-dock 把 @doitian/dsh-music 的能力收敛到侧边栏一张卡片:歌词、队列、歌单与 AI DJ 触手可及,本身只做展示与转发。若需要完整音质与模型设置,仍访问宿主 /music/panel。

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

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

Xiaoye