dsh-cloudmusic-player:在 DSH 里联动本机网易云

前言

在 DSH 里写代码或跟模型对话时,背景往往开着网易云桌面客户端。系统托盘能切歌,但界面里看不到歌名和歌词;想让模型帮忙暂停或调音量,又没有现成的桥。浏览器里另开一个网页播放器则意味着重复登录、重复占资源。

dsh-cloudmusic-player(维护者 jx70,GitHub 仓库 jx70/dsh-cloudmusic-player)是在 DeepSeek Harness 右下角挂的一块悬浮小卡片:控制的是你本机已经在跑的那个网易云客户端,不另起播放器、不要求在插件里登录。装好之后,界面能切歌、拖音量、滚歌词(含外语歌译文),模型还多一个 cloudmusic_player 工具。下面介绍它做什么、怎么装、怎么用,以及 Windows 上的前提与限制。

它是什么

一块浮在 DSH 界面右下角的小卡片;点开是迷你播放器。数据来源是当前正在播放的曲目与进度,不是独立音源。

能力 说明
换歌 / 播放暂停 上一首、下一首、播放暂停
音量 APP 只改网易云进程音量;SYS 改系统总音量,两路读数独立
滚动歌词 当前行居中高亮,进度连续插值
外语歌译文 原文下多一行中文,来自客户端同源翻译
拖动 / 收起 位置记在 localStorage;可收成只显示歌名的小胶囊
给模型用 工具名 cloudmusic_player,可暂停、切歌、调音量、读歌词

做不到的事(README 明确列出):不能拖动进度条 seek(native 车道无此通道)、不能搜索歌曲、不能改播放列表。

进度在 Windows 上主要靠读客户端写入的 %LOCALAPPDATA%\NetEase\CloudMusic\cloudmusic.elog 并解码状态机;若客户端注册了系统媒体会话(SMTC),则优先走 SMTC(且 SMTC 下可 seek)。插件不读取、不落盘日志里的 musicurl,也不碰 cookie。

环境与要求

项 要求
系统 Windows 10 1809+ 才有完整播放控制后端
PowerShell 5.1(powershell.exe);README 写明 PowerShell 7 无 WinRT 投影,播放控制会不可用
客户端 网易云音乐桌面版
DSH ≥ 0.1.0-rc.6;Node ≥ 22
形态 Web / CLI / 桌面版(dsh-desktop)均可装 UI;macOS / Linux 可装悬浮框与歌词,播放控制与音量显示「本机不支持」

插件以当前 DSH 进程权限运行。安装前建议在 GitHub 查看源码与 MIT 许可证,再决定是否加入你的 profile。

安装与启用

Web / CLI

dsh plugin --profile web add dsh-cloudmusic-player

执行后重开 DSH。右下角会出现小胶囊,点 ⌃ 展开播放器。

dsh 桌面版

dsh plugin --profile desktop add dsh-cloudmusic-player
node scripts/enable-desktop.mjs      # 把包接进桌面 profile(幂等)

桌面版每次启动会重写 profiles/desktop/package.json,因此需要 scripts/enable-desktop.mjs 建 junction 并向 ~/.dsh/cordis.patch.yml 追加带条件的 patch,避免与 web profile 抢同一路由。仅检查或卸载可用:

node scripts/enable-desktop.mjs --check
node scripts/enable-desktop.mjs --remove

经上面的步骤,发行版插件文件会落在 ~/.dsh/profiles/<profile>/node_modules/;改发行版需重新 add 新版本。本地 link: 开发则改代码后重载插件即可。

典型用法

  1. 拖动:按住卡片顶部空白或收起态胶囊拖到任意位置。
  2. 收起:右上角 ⌃,再点一次展开。
  3. 音量:拖滑块;APP / SYS 切换作用域。松手后 110 ms 内的连续拖动会合并为一次请求。
  4. 歌词:有 songId 时直取;否则按歌名、歌手、时长搜索。署名行(作词/作曲等)更淡显示且不参与高亮。外文歌默认叠译文;在配置里设 lyricsTranslation: false 可关闭。
  5. 进度条:native 车道只展示,不能拖 seek;SMTC 车道可 seek。
  6. 歌词对不上:点当前那一行,用该行 LRC 时间戳作兜底锚点(日志读不到时)。

排错时 README 建议先看自检端点(权威):

http://127.0.0.1:3080/api/cloudmusic-player/health?deep=1

桌面版改用其随机端口。常见现象如「没在放歌」先确认客户端是否在播、processName 是否匹配;切歌无反应常是 hotkeyNext / hotkeyPrev 与客户端「设置 → 快捷键」不一致。

配置

在 ~/.dsh/profiles/<profile>/cordis.patch.yml 中可覆盖插件项,例如:

- insert:
    - id: cloudmusic-player
      name: dsh-cloudmusic-player
      config:
        processName: cloudmusic
        aumidPattern: 'cloudmusic|netease|wangyi'
        volumeScope: process
        lyricsEnabled: true
        lyricsTranslation: true
        lyricsOffsetMs: 0
        powershellPath: powershell.exe
        hotkeyPlayPause: 'Ctrl+Alt+P'
        hotkeyNext: 'Ctrl+Alt+Right'
        hotkeyPrev: 'Ctrl+Alt+Left'
        elogEnabled: true
        elogPath: ''
        elogPollMs: 400

其中 volumeScope、lyricsEnabled、lyricsTranslation 等标为 volatile 的项改完即时生效,无需重载插件。更多字段见仓库内 docs/DESIGN.md 配置全表。

适用场景与注意

适合:主要在 Windows 上用 DSH(写代码、CLI 或桌面版),同时习惯网易云桌面客户端放歌,希望在同一界面看歌词、调音量,或让模型通过 cloudmusic_player 代操作 playback 的用户。

注意:

  1. 只控制「已经在放的那首」,不登录、不搜索、不建歌单。
  2. 进度依赖客户端 elog;读不到时会降级为本地计时与点歌词校准,起点可能有滞后。
  3. 播放暂停通过模拟全局热键,需与客户端快捷键一致;极静段落偶发误判 README 有说明。
  4. 歌词与译文走网易云 web 接口,可能限流或字段变更;插件不补译。
  5. DSH 社区目录(如 SkillHub 条目)是独立生态站点,与 DeepSeek / 幻方无官方从属关系;插件亦非官方应用商店内建应用。

当前 npm 包版本为 0.2.0(见仓库 package.json)。

结尾

dsh-cloudmusic-player 把「本机网易云」接到 DSH 悬浮 UI 与模型工具上:不重复开播放器,在 Windows 上通过 elog / SMTC 与 PowerShell 后端拿到真进度与控制。若你的日常是 DSH + 网易云桌面版,可先按 profile 执行官方 dsh plugin add,桌面版别忘了 enable-desktop.mjs,再用 health?deep=1 确认链路。

  • 目录页:https://www.skillhub.cn/plugins/jx70/dsh-cloudmusic-player
  • 源码与文档:https://github.com/jx70/dsh-cloudmusic-player
羽毛球分组比赛记分
小程序二维码

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

小夜