前言¶
在 DeepSeek Harness(DSH)里长时间跑任务时,如果音乐能力藏在独立面板或路由里,切歌、看歌词、改队列都要先离开当前工作流。社区里 @doitian/dsh-music 已经负责网易云播放、队列、会话和 AI DJ,但界面不一定贴在侧边栏底部。dsh-music-dock 把播放状态画在左侧栏、设置 上方,操作再回传给宿主,适合希望「边用 Harness 边控音乐」的开发者。
这是什么¶
dsh-music-dock(维护者 zy32566)是 DSH 的客户端类插件:侧边栏里始终可见的播放卡片,含封面、歌名歌手、同步歌词(含中文翻译)、进度与音量、队列、搜索、网易云歌单与 AI DJ 开关。
它不播放、不登录——播放、队列、网易云会话和 AI DJ 全部由 @doitian/dsh-music 持有;本插件只展示状态并把用户操作送回宿主。
- 目录页:https://www.skillhub.cn/plugins/zy32566/dsh-music-dock
- 源码:https://github.com/zy32566/dsh-music-dock
- 许可证:MIT(
package.json中版本为 0.1.0,要求 Node>=20)
核心功能¶
界面嵌在侧边栏底部,各区域职责如下(与 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。