dsh-music-player
English | 中文
一个 DeepSeek Harness(dsh)web profile 的音乐播放器插件:在 dsh 网页版里搜索并播放 Audius(合法、免费、开放的音乐平台)的曲目,还能直接在对话里让 agent 遥控播放。
⚡ 一键安装(复制即用)
喂给 AI 的一句话(AI 具备命令执行能力即可,无需解释):
> 安装 dsh-music-player:运行 dsh plugin --profile web add github:hey-ruomei/dsh-music-player,然后重启 dsh web。
或者直接复制命令:
dsh plugin --profile web add github:hey-ruomei/dsh-music-player && dsh web> 本插件无 prepare 构建脚本、lib/ 已预编译,git 安装零额外构建;安装完成后重启 dsh 生效。
功能
- 侧边栏入口——左侧边栏「设置」上方的音乐按钮,点击打开播放器面板
- 搜索 Audius 曲库——防抖搜索,数十万首免费曲目
- 热门榜单——不搜索也能发现音乐
- 收藏——点心形图标收藏,存 localStorage,重启不丢
- 播放队列——点击搜索/榜单/收藏里任意一行即从该曲开始播放
- 迷你播放条——关掉面板音乐不断,右下角悬浮条保留播放控制
- Agent 遥控——注册了四个工具,对话里说"播放一首爵士乐"即可:
| 工具 | 作用 |
|---|---|
music_search | 搜索 Audius,返回前 5 首(标题/艺人/时长/id) |
music_play | 按 trackId 播放,或按 query 播放搜索第一首 |
music_control | pause / resume / next / prev / set_volume(0–1) |
music_status | 报告当前播放状态 |
注意事项
- 播放要求 dsh web 页面处于打开状态(音频在浏览器里播放)。页面没开时,
music_play/music_control会返回明确错误,而不是静默排队。 - Audius 是去中心化上传平台:个别曲目可能因内容节点宕机或上传被下架而无法播放。播放器会自动跳下一首,连续失败 3 次停止。
- 所有 Audius 请求按 API 要求携带
app_name=dsh-music-player。
架构
agent 对话 ── 工具 ──▶ node 半侧(/api/music 命令队列 + 状态心跳)
▲ 轮询 1.5s / 上报 3s
浏览器 client ◀────────────┘ 模块级 <audio> + PlayerStore全部基于官方机制(bundle 层栈 + webServer 路由 + dsh.client 槽位),不改官方包。node 半侧 ESM;client 半侧 CJS,包裹 window.__ModuleLoader__.load 约定。
从源码改/重建
pnpm install # 装 tsdown / react / vitest 等 devDeps
pnpm build # 产出 lib/index.mjs + lib/index.js
pnpm test # vitest 单测tsdown.config.ts 是自包含的(不引用官方 monorepo preset)。
License
[MIT](LICENSE) — Copyright (c) 2026 hey-ruomei