CyberryRe
lx_music-for-dsh
This is a plugin that allows deepseek harness own the ability of lx music.
- Stars
- 3
- Language
- TypeScript
- Created
- Aug 14, 2026
- Updated
- Aug 15, 2026
Introduction
lx-music-for-dsh
LX Music 增强控制插件 —— 为 deepseek_harness Web 模式提供 LX Music 播放控制界面与 LLM 点歌能力。
功能
- 侧边栏迷你播放卡片(位于「设置」按钮上方):封面缩略图、歌名-歌手、可拖动/点击跳转的 进度条(与播放器双向同步)、上一首/播放暂停/下一首、播放列表弹窗、设置齿轮。
- 主窗口(点击卡片主体打开,可调大小、记忆位置):搜索(关键词/歌手/平台过滤)、 搜索结果(音质标识、时长、+队尾 / +下一首)、播放列表管理(拖拽排序、删除、清空、导出为文本)。
- 设置窗口(点击齿轮打开):音源管理(文件/URL/粘贴导入并自动启用、启用/禁用/删除/排序)、 音质策略(全局默认音质、每音源平台优先级)、自动拉取规则(切歌自动最高音质、降级策略)。
- LLM 点歌工具
search_and_play:搜索 → 直链预览 → 加入播放列表(或直接播放); 内置滑动窗口防刷(默认 6 次/分钟)与点歌日志。
架构
- 完全独立:搜索由内置音乐 SDK 提供(移植自 lx-music-desktop,酷我/酷狗/QQ音乐/网易云/咪咕 五平台);直链解析由内置音源脚本引擎提供(node:vm 沙箱执行 lx-music-desktop 音源脚本协议, 与 lx-music-desktop v2.12.2 一致——直链 100% 依赖音源脚本);播放为浏览器 HTML5 Audio。 无需任何外部服务即可使用。
- host(Node):
PlaybackService(Typert RemotelxPlayback,播放权威状态 + storage 持久化)、search_and_play工具、内置 SDK 搜索、音源脚本沙箱(导入/启用/排序/删除本地管理)、 可选 lxserver 客户端(超时 10s / 重试 2 次 / 音质与平台降级链)。 - client(浏览器):React UI(注入
sidebar.footer.actionslot)+ HTML5 Audio 播放引擎, 轮询 host 状态(500ms)diff 应用,进度节流上报(1s)。 - provider 门面(
providerMode):auto(默认,有地址用 lxserver 否则内置引擎)/engine(强制内置引擎)/lxserver(连接 lxserver 同步服务器)/mock(内置演示数据,用于无网络演示)。
快速开始
npm install && node scripts/link-dsh.mjs
npm run lint && npm run typecheck && npm run build && npm test
# 可选:真实网络冒烟(五平台搜索)
node scripts/compile-tests.mjs && node scripts/smoke-live.mjs
安装到 DSH:见 docs/development.md(§6)。
直链解析失败排查
解析失败时错误会出现在三个位置:
- 侧边栏卡片 / 主窗口:显示聚合后的错误摘要(含每个音源脚本的失败原因)。
- 浏览器 Console:
[lx-music] 直链解析失败: ...,包含完整错误消息与最近 5 条音源脚本 HTTP 请求(状态码:URL(耗时))。 - 宿主进程 stdout(
dsh web所在终端):每个脚本的完整错误堆栈 +[lx-music sandbox] 音源脚本请求 HTTP <code>: <url>非 2xx 告警。
按状态码判断根因:
HTTP 403:第三方 API 拒绝(IP 封禁 / 风控 / UA 校验)——换网络或换音源。HTTP 503:第三方 API 不可用(onrender 免费实例休眠、配额耗尽或宕机)——重试或稍后再试;手机端能播多半是缓存了旧直链或使用了其他音源。timeout/ERR:网络不可达。HTTP 200但仍报错:API 返回结构异常或脚本逻辑问题(可看宿主端脚本堆栈定位到具体行)。
音源健康检查:node scripts/compile-tests.mjs && node scripts/smoke-source.mjs <音源URL> [平台] [关键词]
文档
目录
manifest.json 插件清单
src/index.ts host 入口
src/client.ts client 入口
src/ui/ React 组件
tests/ 单元测试(90 例)