DeepSeek Harness 网易云音乐播放器插件

前言

在 DeepSeek Harness(DSH)中开发智能体时,有时需要播放本地音频或展示媒体内容。直接嵌入网页播放器会破坏沉浸感,且难以控制播放状态。DSH 的插件机制支持通过宿主半区提供 API、通过浏览器半区渲染 UI。dsh-netease-music 正是这样一个插件:它为 DSH 提供了一个完整的网易云音乐播放器,兼顾桌面端体验与智能体集成。

插件定位

dsh-netease-music 是 DeepSeek Harness 的客户端插件,由 zzy040919-ship-it 维护。它提供迷你播放条、液态玻璃卡片、黑胶视图等 UI 形态,支持自动登录本机网易云客户端账号、客户端同步、歌词显示、CDN 容灾与系统媒体键集成。插件只负责播放,不包含背景特效。

核心功能

迷你播放条

收起状态下,播放器以右上角一条玻璃条显示:小封面、歌名/歌手、播放键与进度线。点击可展开完整卡片。

播放器卡片

展开后显示液态玻璃卡片:高模糊背景、透明白色主体、边缘高光与鼠标跟随光斑。卡片顶部为封面与歌名,底部为搜索框、控制栏与歌词区。

黑胶视图

点击卡片上半部分(封面/歌名区),视图切换为大黑胶模式:唱片纹路、金色圈边、封面标签与金色唱臂。播放时唱片转动,暂停即停。

搜索

卡片底部输入框支持搜索。回车后结果就地展开,点击任意一条即可播放。搜索结果来自网易云网页搜索接口。

播放控制

支持上一首、播放/暂停、下一首。可点击进度条与音量条,音量记忆上次值。播放队列会在重启后继续。

歌词

自动拉取 LRC 歌词,卡片内显示当前句与下一句(含翻译)。

账号自动登录

点卡片上的账号按钮,宿主半区会自动从本机网易云客户端 CEF 数据目录中读取 cookie(使用 Windows DPAPI 解密),验证通过后写入本地文件。登录后可播放 VIP 与高音质曲目,卡片上显示头像。

客户端同步

读取网易云客户端窗口标题(格式为“歌名 - 歌手”),同步当前播放。若客户端未运行,则回退到账号最近播放列表。若两者均无,则先搜索一首歌。

CDN 容灾

网易云音频节点按域名调度,个别 m*.music.126.net 节点可能不可用。插件会自动切换至 m701/m702/m703/m801/m802/m803 等节点。

系统媒体键

通过 navigator.mediaSession 发布元数据,支持锁屏与系统媒体键控制。

安装与启用

标准安装

插件以 DSH bundle 形式提供,package.json 声明了 dsh.bundle.patch 与 cordis.patch.yml。安装到指定 profile 即可:

dsh plugin --profile desktop add https://github.com/zzy040919-ship-it/dsh-netease-music

安装后完全重启 DSH,插件才会生效。

手动安装(开发调试)

# 1) 链接进 profile
New-Item -ItemType Junction `
  -Path "$env:USERPROFILE\.dsh\profiles\desktop\node_modules\dsh-netease-music" `
  -Target "<本仓库路径>"

# 2) 在 profile 的 cordis.patch.yml 末尾追加
# - insert:
#     - id: dsh-netease-music
#       name: 'dsh-netease-music'

# 3) 完全重启 DSH

宿主半区有改动时必须完全重启客户端,只刷新页面不会重新加载。

结构说明

  • lib/index.js:宿主半区,提供 /api/search、/api/song、/api/audio(同源音频代理)、/api/lyric、/api/cover、/api/account、/api/account/auto、/api/client-now 等 API。
  • lib/client.js:浏览器半区,在 shell.overlay 中渲染迷你条、玻璃卡片与黑胶视图。
  • helper/client-title.ps1:读取网易云客户端窗口标题(同步客户端用)。
  • helper/net-cookie-key.ps1:使用 DPAPI 解出 cookie 密钥(自动登录用)。
  • cordis.patch.yml:bundle 补丁。

日志与排查

播放器将关键步骤写入 %TEMP%\dsh-netease-music.log,包括 streamUrl ok、cdn host ok、now playing、audio error、play rejected。

现象 原因 / 处理
点了播放没声音 浏览器自动播放策略:点击页面任意位置解锁后即可
提示「VIP / 付费歌」 需要登录账号(点卡片上的账号按钮自动登录本机客户端)
一直「拿不到播放地址」 该曲目在网易云已下架或无版权
某个节点连接重置 插件会自动切换 m701/m702/m703/m801/m802/m803 等节点
同步客户端没反应 客户端没开时用账号最近播放;两者都没有时先搜一首歌

已知边界

  • 网易云网页搜索接口在请求过多时会返回加密串,插件使用 /api/search/get,失败时自动回退。
  • 客户端「同步」读的是窗口标题(格式为“歌名 - 歌手”),拿不到进度与暂停状态。
  • 仅供个人学习使用,音乐版权归网易云音乐及各版权方所有。

适用场景与注意

该插件适合需要在 DSH 中集成音乐播放能力的智能体开发者。插件以当前 dsh 进程权限运行,安装前应检查源码与许可证(MIT)。Cookie 仅保存在本机、只用于 music.163.com 请求,不会上传。

结语

dsh-netease-music 为 DeepSeek Harness 提供了一个完整的网易云音乐播放方案,兼顾桌面端交互与智能体集成。通过宿主半区 API 与浏览器半区 UI 的协作,它展示了如何在一个插件中同时提供后端能力与前端展示。

  • 目录页:https://www.skillhub.cn/plugins/zzy040919-ship-it/dsh-netease-music
  • GitHub:https://github.com/zzy040919-ship-it/dsh-netease-music
羽毛球分组比赛记分
小程序二维码

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

小夜