dsh-music-panel: Add a NetEase Cloud Music panel to DeepSeek Harness

前言

DeepSeek Harness 的桌面 Web UI 里,智能体的对话窗口之外,本身不提供任何媒体消费能力。想在听歌的同时继续用 DSH,通常只能切回浏览器或单独的音乐客户端。dsh-music-panel 把网易云音乐的搜索、排行榜、收藏、播放历史、歌词和推荐搬进了 DSH 侧边栏的一个面板页,音频走插件自己的 host 路由,浏览器不直接接触第三方 CDN。

这个插件由 woshijing1991-cloud(package.json 里的作者署名为 CCC)维护,目前是 0 星的新仓库,README 明确说明它是私有版本的「干净可发布副本」,移除了原私有版中的解锁逻辑。下面介绍它实际提供什么、怎么装、以及哪些地方会踩坑。

这是什么

dsh-music-panel 是 DeepSeek Harness 的一个桌面端插件,在侧边栏加一个音乐入口,点开是 Magpie 风格的独立页面,包含搜索、排行榜、收藏、播放历史、同步歌词和按个人口味生成的推荐流。所有能播放的音频都来自官方网易云音乐 API,官方不给可播放地址时,面板直接报错停下,不做任何绕过。

它定位为「联网工具」分类的插件,但和一般联网抓取插件不同:它带一个常驻 host 路由层(搜索、流地址解析、封面代理等),面板页是插件自带的前端,不依赖外部音乐服务页面。

核心功能

README 的功能表列出了这些能力,都是可核对的:

1、搜索歌曲和歌手,歌手结果附带入口跳转到歌手页。
2、排行榜支持热歌、新歌、飙升、原创榜,也接受任意歌单 ID。
3、收藏按曲目粒度记录,存储在本地。
4、播放历史记录播放、跳过、播完事件,保留最近 600 条。
5、歌词为 LRC 同步歌词,有翻译时附带翻译行。
6、口味画像由收藏、播放记录和标签加权生成,带时间衰减。
7、推荐基于标签和画像做发现,可选接入 Last.fm 的相似歌手。
8、播放器为浮层迷你播放器,支持队列、随机/循环,以及下载官方流。

播放策略值得单独说,因为它决定了插件的使用边界:

  • 不解锁 VIP、付费专辑、地区限制曲目;不含第三方音频源、代理手段、证书处理或外部辅助进程。
  • 官方 API 不返回 URL(或只给试听片段)时,/api/url 与 resolve 返回明确错误:「该曲目需要官方会员,本面板只播放官方允许的内容」。
  • 免费、无限制的曲目,或你配置的 cookie 对应的账号有权限的曲目,播放行为和官方播放器一致。

README 还详细说明了它与私有解锁版的差异:私有版进程内接入了去别的音乐服务找可播放地址的解锁器,这个仓库删掉了整个路径——没有解锁库依赖、没有第三方源匹配代码、没有相关 UI 文案。版本 0.9.0 的 cordis.patch.yml 默认配置里也只有 basePath、quality、cacheTtlMs 三项,没有任何源排序配置。私有版能播而这里不能播,是设计上的差异,不是 bug。

安装与启用

这是本地 file: 插件,不在 npm 上。README 给出的安装路径如下,按 GitHub 仓库原文即可。

1、把仓库目录放到磁盘任意位置,例如 /path/to/dsh-music-panel(Windows 下类似 D:/plugins/dsh-music-panel)。

2、在 DSH profile 的 package.json(通常是 <DSH_HOME>/profiles/<profile>/package.json)里加依赖:

{
  "dependencies": {
    "dsh-music-panel": "file:/absolute/path/to/dsh-music-panel"
  }
}

3、在同一个文件里,把插件名加进 dsh.profile.bundles:

{
  "dsh": {
    "profile": {
      "bundles": ["dsh-music-panel"]
    }
  }
}

4、确认插件的 patch 层生效。仓库自带 cordis.patch.yml,内容是:

- insert:
    - id: dsh-music-panel
      name: 'dsh-music-panel'
      config:
        basePath: '/dsh-netease'
        quality: 'exhigh'
        cacheTtlMs: 600000

如果 profile 用的是聚合 patch 文件,README 建议把这个块显式插进去,不要依赖自动发现。

5、安装并重启 DSH:在 profile 目录跑包管理器(例如 pnpm install),然后完全重启桌面应用。README 强调热重载不够,host 路由是在启动时注册的。

6、从侧边栏的音乐图标打开面板,或访问 http://127.0.0.1:<port>/dsh-netease/api/health 确认路由已就绪。

注意:面板页里硬编码了路由前缀,与默认 basePath(/dsh-netease)一致。改了 basePath,还要同步修改 lib/client.js 里的 var API = '/dsh-netease'。

配置项

配置全部可选,写在 cordis.patch.yml 的 insert 块里(或等价的聚合 patch)。

键 默认值 含义
basePath /dsh-netease 所有路由的 HTTP 前缀(/api/search、/stream、/img 等)
quality exhigh 请求码率:standard(128k)/ high(192k)/ exhigh(320k)/ lossless(999k)
cacheTtlMs 600000 解析出的官方流地址缓存多久后重新解析
dataDir <DSH_HOME>/dsh-music-data library.json(收藏/历史/标签/已展示)的写入位置
cookie ''(环境变量 NETEASE_COOKIE) 你自己账号的官方登录 cookie,原样透传
lastfmApiKey ''(环境变量 LASTFM_API_KEY) Last.fm 应用 API key,仅用于查相似歌手

关于 cookie:README 明确这是把你自己的网易会话 cookie 原样传给官方 API,插件不伪造、不派生凭证,也不用来绕过任何限制,只是让官方 API 表现得和你账号登录后的官方网页播放器一致。留空即匿名模式。Last.fm key 是应用 key 而非账号凭证,也可以在面板设置对话框里填,写到 <DSH_HOME>/dsh-music-data/settings.json。

典型用法

装好并重启后,不需要额外命令。在 DSH 桌面端左侧栏点音乐图标打开面板,然后:

1、搜索框输入「晴天」,结果直接来自官方网易云音乐 API,点结果试听。
2、切到排行榜标签看热歌榜(官方流,200 首)。
3、在当前播放页看滚动歌词和歌曲信息,音质默认 exhigh(320k),可在配置里改。
4、播放几首后,推荐流会基于你的收藏与播放记录更新。

本地检查路由是否正常:

curl http://127.0.0.1:<port>/dsh-netease/api/health

维护代码时,README 给出的校验命令是:

node --check index.js
node --check lib/client.js && node --check lib/library.js && node --check lib/recommend.js

项目没有构建步骤、没有打包器、没有运行时 npm 依赖,index.js 由 DSH host 直接加载。

适用场景与注意事项

适合谁:想在 DSH 桌面端里直接听歌、并接受「只播官方允许的内容」这一边界的用户;以及想基于官方 API 自己改面板的开发者(源码结构简单,patch 层一目了然)。

需要注意的地方:

  • 插件以当前 DSH 进程权限运行,安装前应自己检查源码(index.js、lib/)和许可证。许可证为 MIT,作者署名 CCC(woshijing1991-cloud)。
  • 兼容性限定 DeepSeek Harness 0.2.x 桌面端、web 前端(dsh.client.platform = "web"),宿主 Node.js 需要 ≥ 20。
  • 匿名模式(不配 cookie)搜索结果明显更差:网易倾向把 VIP 原创压后,部分官方 URL 返回空。配自己的 cookie 后结果和直链更接近网页播放器。两种模式都不解锁任何东西。
  • /dsh-netease/api/health 会持续报告搜索端点的限流冷却,因为网易对搜索 API 按路径限流,插件在 host × path 矩阵上轮换并指数退避。
  • 歌词和封面完全取决于官方 API 返回什么,有些曲目两者都没有。
  • 面板只是 main slot 里的一个页面,没有独立的 Web 构建产物。
  • 无遥测、无分析、无作者侧服务器;请求直接从本机发往 music.163.com(配置 Last.fm key 时另发向 ws.audioscrobbler.com)。收藏、播放历史、标签、搜索历史都本地存放在 <DSH_HOME>/dsh-music-data/library.json,删除该文件即重置面板。封面代理只允许 *.126.net / *.163.com 域名,其他 URL 直接拒绝。

结尾

dsh-music-panel 的价值在于把网易云音乐的播放能力收进 DSH 自己的界面,同时把边界划得很清楚:只用官方 API、不碰解锁。对不需要 VIP 内容的普通听众,这是目前 DeepSeek Harness 生态里少有的完整音乐面板。仓库 2026 年 11 月初才创建,星标还是 0,长期维护情况需要自行观察。

目录页:https://www.skillhub.cn/plugins/woshijing1991-cloud/dsh-music-panel
GitHub:https://github.com/woshijing1991-cloud/dsh-music-panel

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

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

Xiaoye