点歌台:DSH Web 插件 + IIROSE 脚本

前言

在 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 安装

  1. 在项目目录下构建客户端产物(只有改了 client/panel-ui.js 时才需要):
node scripts/build.mjs
  1. 挂进 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
  1. 重启该 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 场景

  1. 按 Alt+T 打开面板
  2. 在搜索框输入歌曲名,选择平台 tab
  3. 点击播放按钮或点歌列表中的条目
  4. 在面板中通过顶栏「队列」管理播放列表

IIROSE 场景

  1. 在房间中按 Alt+T 打开面板
  2. 搜索并点歌,歌曲进入房间歌单,所有人都能听到
  3. 拖动歌词窗位置、锁定歌词窗、调整显示行数或宽度

适用场景与注意

  • 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
羽毛球分组比赛记分
小程序二维码

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

Xiaoye