dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
DSH(DeepSeek Harness)侧栏音乐播放条:同步 QQ 音乐 / 网易云音乐的歌单,显示滚动歌词,支持扫码登录与音量控制。
一个嵌在 左侧菜单栏底部 的音乐播放条(Dock):接入 网易云音乐 / QQ 音乐,登录后同步你收藏与创建的全部歌单,支持上一首、暂停、下一首、播放模式(顺序 / 随机 / 单曲循环),并显示歌手、歌名与滚动歌词。
尚未发布 NPM 包,用源码方式安装:
dsh plugin --profile web add github:CNCharon/dsh-music-dock
装好后重载插件(或在设置里关闭再开启「音乐播放条」),左侧栏底部就会出现播放条。要求 DSH 0.2.x,带 webServer 服务的 Web profile;Windows、macOS、Linux 均可。
插件会在设置页检查新版本;发现更新时,按提示执行:
dsh plugin --profile web add github:CNCharon/dsh-music-dock
然后重启 DSH。账号与登录状态保存在本机 profile 目录,更新不会丢失。也可以随时关注 Releases 获取版本说明。
qm_keyst 鉴权,播放地址走 vkey 接口。−0.5s / +0.5s 按曲目记忆,解决歌词整体超前或滞后。设置 → 音乐播放条,集中管理两个平台的登录与歌单浏览。插件通过 Host 侧的同源反向代理访问各平台接口(浏览器直连会被 CORS 拦截,Cookie 也不应暴露给页面脚本)。
music.163.com 并登录;Cookie(必须含 MUSIC_U);也可以点「扫码登录」,用网易云 App 扫描弹窗里的二维码。
点「扫码登录」,用 QQ 或微信扫描弹窗里的二维码,手机上确认即可——插件走 QQ 官方的 ptlogin2 票据流程,扫码成功后自动换回 uin / p_skey 等登录凭据,不需要复制 Cookie。
若扫码后 QQ 音乐没有下发凭据(极少数账号会遇到),弹窗会提示改用 Cookie 登录:
y.qq.com 登录;Cookie(必须含 uin,以及 p_skey / qm_keyst 之一);能否播放取决于平台返回的地址,插件不会伪造:
-110,QQ 返回 result 104003——都会在播放器里给出可读提示。dsh-music-dock/
├─ index.js Host 半:注册 /music/player 前缀路由
├─ lib/
│ ├─ routes.js 同源 HTTP 接口 + 音频流转发(支持 Range)
│ ├─ service.js 平台适配器注册、账号态、同步
│ ├─ http.js 带超时的 fetch 封装
│ ├─ store.js 账号持久化(仅 Cookie 与账号名)
│ ├─ qr.js 网易云扫码;二维码用随包 MIT 编码器绘制
│ ├─ vendor/ qrcode-generator(MIT,见文件头)
│ └─ providers/ netease.js / qq.js
├─ client.js Client 半:侧栏底部播放器 + 设置页(单文件模块)
├─ locale/zh.json 插件显示名与描述
├─ icon.svg 插件图标
└─ test/ 路由 / 适配器 / 静态检查
| 方法 | 路径 | 用途 |
|---|---|---|
| GET | /music/player/state | 两个平台的登录态与歌单 |
| GET | /music/player/hydrate | 恢复账号后重建歌单 |
| GET | /music/player/adapters | 平台清单 |
| GET | /music/player/login/qr/create?provider= | 生成二维码 |
| GET | /music/player/login/qr/check?provider=&key= | 轮询扫码状态 |
| POST | /music/player/sign-in | Cookie 登录 |
| POST | /music/player/sign-out | 退出 |
| POST | /music/player/sync | 重新拉取歌单 |
| POST | /music/player/tracks | 歌单曲目 |
| POST | /music/player/lyric | 歌词 |
| POST | /music/player/audio | 解析播放地址 |
| GET | /music/player/stream | 同源转发音频(含 Range) |
node test/routes-smoke.mjs # HTTP 契约、错误信封、音频字节
node test/host-smoke.mjs # 适配器直连各平台
node test/client-lint.mjs # Client 静态检查(槽位、i18n、组件解析)
<profile>/.dsh-music-player/accounts.json(仅 Cookie + 账号名,权限 0600;目录名沿用旧名,避免升级后丢失已有登录);dir 目录而不是普通歌单,网页 Cookie 登录读不到它的曲目,点开时会给出说明;qm_keyst,此时回退到 Cookie 登录(弹窗会提示);MIT。随包附带的二维码编码器 lib/vendor/qrcode.js 为 Kazuhiko Arase 的 MIT 实现(见文件头)。