前言¶
在 DSH(DeepSeek Harness)里一边干活一边听歌,或者想在 IIROSE 房间里整间房都能听到同一首歌,会用到点歌功能。市面上常见的做法是:在 DSH 里用浏览器打开第三方音乐站,点歌后切回 DSH;或者在 IIROSE 里折腾各种脚本、中转服务。这些方式都需要多次切换、路径不同、维护成本高。
下面介绍的是 yeqiqiye/music-plugin,它提供两种形态:DSH 插件(Alt+T 面板跨平台搜歌)和 IIROSE 用户脚本(一个 JS 链接,点歌进房间)。插件与脚本共用一套搜索与播放逻辑,可以在不同场景下复用。
是什么¶
这是一个名为 dsh-music-request 的 DSH Web 插件,同时提供 IIROSE 用户脚本。插件由维护者 yeqiqiye 开发,分类为「联网工具」,GitHub 仓库为 https://github.com/yeqiqiye/music-plugin。插件把网易云、QQ 音乐、B 站的搜索与播放能力封装成统一接口,通过 DSH Web profile 的 Alt+T 面板或 IIROSE 的脚本链接使用。
核心功能¶
DSH 版¶
- 搜索能力:支持网易云、QQ 音乐、B 站搜索
- 播放能力:网易云支持 mp3 128k/320k;QQ 音乐支持 m4a 128k(配置
QQ_COOKIE可播放绿钻歌曲);B 站支持视频与音频轨 - 播放器功能:播/暂停、上一首/下一首、进度条拖动、音量控制、听歌列表(顶栏「队列」)
- 歌单操作:支持全部点歌、多选点歌
IIROSE 版¶
- 在 IIROSE 房间内通过脚本链接点歌,整间房都能听到
- 播放信息与歌词窗可锁定、可拖动位置与宽度
- 房间正在播放的状态会保存在本地,刷新页面(F5)后可接回,播放完毕自动收尾
安装与启用¶
DSH Web Profile 安装¶
- 在项目目录下构建客户端产物(只有改了
client/panel-ui.js时才需要):
node scripts/build.mjs
- 挂进 profile。profile 目录为
%USERPROFILE%\.dsh\profiles\web:
- 在 profile 的
package.json的dependencies里添加"dsh-music-request": "file:<本目录绝对路径>" - 在 profile 的
package.json的dsh.profile.bundles里添加"dsh-music-request" - 把本包复制/软链到
<profile>/node_modules/dsh-music-request
- 重启该 profile:
dsh --profile web
重启后,在页面中按 Alt+T 开关面板,按 Esc 关闭。
IIROSE 脚本安装¶
在 IIROSE 的设置 →「引用 JS 脚本文件链接」里粘贴以下链接:
https://fastly.jsdelivr.net/gh/yeqiqiye/music-plugin@v3.0.1/iirose/music-iirose.js
刷新页面后,进入「音乐分享 / 视频分享」属性的房间,按 Alt+T(或点右下角 ♪)打开面板,搜索并点歌即可。
架构与安全¶
架构¶
插件分为 host(Node 侧)与 client(浏览器侧):
lib/index.mjs:注册/music/api/*路由lib/adapters.mjs:四个平台的搜索与归一化lib/playurl.mjs:判断「能不能播」以及「播哪个地址」lib/proxy.mjs:音频代理,支持 Range 透传与域名白名单lib/http.mjs:统一的出站 fetch 实现client/panel-ui.js:面板 UI(纯 DOM,无框架依赖)client.js:构建产物,负责 Alt+T、挂面板、同源 fetch
浏览器直接请求这些平台会被 CORS 拦截,且音频 CDN 会校验 Referer;同时网易云返回的地址是 http://,在 localhost/https 下会被混合内容拦截。因此搜索与播放都走同源路由,前端只与 /music/api/* 通信。
安全边界¶
/music/api/stream是域名白名单代理(.music.126.net/.kugou.com/.bilivideo.com等),不在白名单的请求一律 403,防止路由变成任意外网中转- 登录只接受用户自己粘贴的 Cookie,存储在
%DSH_HOME%/music-plugin/credentials.json(权限 0600),完整 Cookie 永不回传前端,也不写日志 - 路由默认监听本机 loopback(
dsh web默认127.0.0.1)。如果把 host 改成0.0.0.0,这些路由没有额外鉴权,请自行加门禁
典型用法¶
DSH 场景¶
- 按 Alt+T 打开面板
- 在搜索框输入歌曲名,选择平台 tab
- 点击播放按钮或点歌列表中的条目
- 在面板中通过顶栏「队列」管理播放列表
IIROSE 场景¶
- 在房间中按 Alt+T 打开面板
- 搜索并点歌,歌曲进入房间歌单,所有人都能听到
- 拖动歌词窗位置、锁定歌词窗、调整显示行数或宽度
适用场景与注意¶
- DSH 场景:适合在 DSH Web profile 中一边工作一边听歌,需要在同一界面完成搜索与播放
- IIROSE 场景:适合在「音乐分享 / 视频分享」属性的房间内搭建点歌台
- 注意:插件以当前 dsh 进程的权限运行。安装前建议检查源码与许可证,确认行为符合你的使用场景。酷狗平台已下线,用 QQ 音乐平替;网易云
fee=1的歌曲因上游版权锁无法直接播放。
短结尾¶
点歌台插件提供 DSH Web 面板与 IIROSE 脚本两种形态,统一网易云、QQ 音乐、B 站的搜索与播放能力,可按场景选择使用。插件目录页与 GitHub 仓库见下:
- 插件目录:https://www.skillhub.cn/plugins/yeqiqiye/music-plugin
- GitHub:https://github.com/yeqiqiye/music-plugin