Windows only, needs the NetEase Cloud Music client installed. NetEase Cloud Music player for the DSH Web UI: a mini bar that expands into a liquid-glass card with search, synced lyrics and volume, a click-to-open spinning vinyl view, and it signs in with the local NetEase client account (cookie decrypted on this machine only) so VIP tracks play and the client current song can be pulled in.
Install
# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)
dsh plugin --profile web add github:ZhaoZiyangShaanxi/dsh-netease-music
Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time — pnpm blocks those until you allow them, so an install can stop with ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED or ERR_PNPM_IGNORED_BUILDS; dsh prints the exact key to add under allowBuilds in your profile’s pnpm-workspace.yaml, and the install works on the next run. Allowing a build is a trust decision: only install sources you trust, and pin a commit (github:owner/repo#sha).
README
This plugin publishes its README in Chinese only.
DeepSeek Harness 的网易云音乐播放器插件
功能
| 功能 | 说明 |
|---|---|
| 迷你播放条 | 收起时是右上角一条玻璃条:小封面 + 歌名/歌手 + 播放键 + 进度线 |
| 播放器卡片 | 点开后是液态玻璃卡片(高模糊、透明白、边缘高光、鼠标跟随光斑) |
| 黑胶视图 | 点卡片上半部分(封面/歌名区)切换成大黑胶:唱片纹路 + 金色圈边 + 封面标签 + 金色唱臂;播放时转动,暂停即停 |
| 搜索 | 卡片底部输入框回车搜索,结果就地展开,点一条即播 |
| 播放控制 | 上一首 / 播放暂停 / 下一首、可点进度条、音量条(记忆上次音量);播放队列会记住,重启后继续 |
| 歌词 | 自动拉取 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)有改动时必须完全重启客户端,只刷新页面不会重新加载。
自动登录是怎么做的
点卡片上的账号按钮时,宿主半区会:
- 找到本机网易云客户端的 CEF 数据目录
%LOCALAPPDATA%\Netease\CloudMusic\webapp*\; - 用 Windows DPAPI 解开该目录
LocalPrefs.json里的 cookie 加密密钥(ProtectedData.Unprotect,只有当前用户能解); - 用
node:sqlite读取Cookies库里的MUSIC_U,AES-256-GCM 解密; - 调
/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 补丁
排查
播放器把关键步骤写进 %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,失败时自动回退。 - 客户端「同步」读的是窗口标题(
歌名 - 歌手),拿不到进度和暂停状态。 - 仅供个人学习使用,音乐版权归网易云音乐及各版权方所有。
License
MIT
Links
More in this category
zhu1090093659/dsh-web#packages/dsh-task-board★ 9262
Task board for the dsh web GUI: a sidebar multi-column kanban whose cards run in real DSH agent sessions and can also be scheduled with cron expressions, executed host-side even with the browser closed.
zhu1090093659/dsh-web#packages/dsh-web-all★ 9262
Plugin and skin collection for the DSH Web UI: task board, Git graph, right-side panel, remote mobile UI, pet, live token stats, and a skin center.
MeteorNOX/DeepSeek-Balance-Whale-Widget★ 5677
A fixed-corner whale widget for the DSH web GUI — balance, today's usage and per-turn cost with peak/off-peak pricing, editable balance-alert and daily-budget bubbles, a module-based custom bubble queue with A/B weighted choices and random lines or images, 30+ vendor templates (OpenAI, OpenRouter, Kimi, SiliconFlow, Ark, Zhipu, MiniMax and more) with per-model balance and subscription quota, plus task-end sound, imported audio, custom roles and a resource manager. Local-only, no telemetry.
ccch1mneyyy/dsh-TUI★ 5125
Claude Code-style full-screen terminal UI: pixel-whale header, live status line, and streaming thought expansion.
omdsh-dev/DSH-better-sidebar★ 4413
Full sidebar workbench with file rendering and editing, terminal, Git, and subagents; third-party plugins can register new tabs.
Devin-AXIS/deepseek-design#deepseek-idesign★ 1491
Visual design studio for websites, app prototypes, posters, cards, reports, and magazines, with templates, direct element editing, selection-aware AI draft handoff, and export.
Community comments
Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.