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

前言

DeepSeek Harness(DSH)采用「一切皆插件」的架构,插件作为宿主的扩展模块运行,负责处理特定领域的能力。在开发智能体时,需要为用户在对话过程中提供音乐播放、歌词展示等能力,但 DSH 官方并不内置此类功能。现有的方案要么需要集成完整播放器组件,要么需要外部服务,前者体积大、后者可能存在隐私和稳定性问题。下面介绍一个可以直接集成到 DSH 的网易云音乐播放器插件,它以浏览器半区为 UI 层,宿主半区提供接口代理,实现轻量级播放能力。

是什么

dsh-netease-music 是 ZhaoZiyangShaanxi 维护的 DSH 插件,定位为「网易云音乐播放器插件」。它解决的问题是:在 DSH 环境中为智能体提供音乐播放能力,支持迷你播放条、液态玻璃卡片、黑胶视图、搜索、歌词、账号自动登录、客户端同步、CDN 容灾、系统媒体键等能力。插件以当前 DSH 进程权限运行,安装前应检查源码与许可证。

核心功能

  • 迷你播放条:收起时是右上角一条玻璃条,包含小封面、歌名/歌手、播放键、进度线。
  • 播放器卡片:点开后是液态玻璃卡片,高模糊、透明白、边缘高光、鼠标跟随光斑。
  • 黑胶视图:点卡片上半部分(封面/歌名区)切换成大黑胶,唱片纹路、金色圈边、封面标签、金色唱臂,播放时转动,暂停即停。
  • 搜索:卡片底部输入框回车搜索,结果就地展开,点一条即播。
  • 播放控制:上一首/播放暂停/下一首、可点进度条、音量条(记忆上次音量);播放队列会记住,重启后继续。
  • 歌词:自动拉取 LRC,卡片里显示当前句 + 下一句(含翻译)。
  • 账号:自动登录本机网易云客户端账号,登录后 VIP/高音质曲目可播,头像显示在卡片上。
  • 同步客户端:读取网易云客户端正在播放的歌并播放;客户端没开时退回到账号的最近播放列表。
  • CDN 容灾:网易云的音频节点按域名调度,个别 m*.music.126.net 节点会抽风:插件自动换一个能通的节点。
  • 系统媒体键:通过 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

手动安装(开发调试):

# 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)有改动时必须完全重启客户端,只刷新页面不会重新加载。

典型用法

插件加载后,右上角会出现迷你播放条。点击播放条可以展开液态玻璃卡片。卡片上半部分是封面/歌名区,点击可以切换到黑胶视图;卡片下半部分是控制区,包含播放控制、音量条、搜索框、歌词区。卡片右上角有账号按钮,点击会自动登录本机网易云客户端账号(登录过程见下文)。登录后,播放 VIP/高音质曲目,头像会显示在卡片上。点击搜索框,输入关键词回车,结果会在卡片底部展开,点击一条即可播放。

适用场景与注意

适合需要为智能体提供音乐播放能力的 DSH 用户。插件以当前 DSH 进程权限运行,安装前应检查源码与许可证(MIT)。已知边界:网易云网页搜索接口在请求过多时会返回加密串,插件使用 /api/search/get,失败时自动回退;客户端「同步」读的是窗口标题(歌名 - 歌手),拿不到进度和暂停状态;仅供个人学习使用,音乐版权归网易云音乐及各版权方所有。

排查

播放器把关键步骤写进 %TEMP%\dsh-netease-music.log(streamUrl ok、cdn host ok、now playing、audio error、play rejected),出问题先看这个文件。

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

自动登录是怎么做的

点卡片上的账号按钮时,宿主半区会:

  1. 找到本机网易云客户端的 CEF 数据目录 %LOCALAPPDATA%\Netease\CloudMusic\webapp*\;
  2. 用 Windows DPAPI 解开该目录 LocalPrefs.json 里的 cookie 加密密钥(ProtectedData.Unprotect,只有当前用户能解);
  3. 用 node:sqlite 读取 Cookies 库里的 MUSIC_U,AES-256-GCM 解密;
  4. 调 /api/nuser/account/get 校验,通过后写入 %USERPROFILE%\.dsh\dsh-netease-music.json(仅本机)。

Cookie 只保存在本机、只用于 music.163.com 请求,不会上传任何地方。也可以手动写这个 JSON:

{ "cookie": "MUSIC_U=...; __csrf=...", "quality": "exhigh" }

结构

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

短结尾

dsh-netease-music 提供了完整的网易云音乐播放能力,支持迷你播放条、液态玻璃卡片、黑胶视图、搜索、歌词、账号自动登录、客户端同步、CDN 容灾、系统媒体键等能力。插件以当前 DSH 进程权限运行,安装前应检查源码与许可证(MIT)。已知边界:网页搜索接口返回加密串时自动回退;客户端同步读的是窗口标题;仅供个人学习使用。

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

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

小夜