yezisorft/dsh-netease-island ↗★ 1

dsh-netease-island

DSH 灵动岛风格的网易云音乐状态挂件:顶部胶囊显示当前播放(封面/歌名/歌手/进度),支持播放暂停、上一首、下一首与进度跳转。数据取自 Windows SMTC(系统媒体控件),不调用任何网易云私有接口,也不读取账号信息。 适合在Windows上使用DSH桌面端,并希望在界面顶部控制网易云音乐播放的用户。

Package
dsh-netease-island
Compatibility
Unverified
Version
0.1.0
License
MIT
Last updated
Oct 5, 2026

Install

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:yezisorft/dsh-netease-island

使用

  • 平时收起为顶部居中的小胶囊;鼠标移上去展开。
  • 点击胶囊主体 = 播放 / 暂停。
  • 展开后:左侧上一首,右侧下一首,中间进度条可点击跳转。
  • 胶囊可以拖动,位置会被记住;双击(或拖到顶部)恢复默认位置。
  • 没有正在播放的会话时,整个挂件自动隐藏,不占用屏幕。

配置

在 profile 的 cordis.patch.yml 里给该条目加 config(不写就用下面的默认值):

- id: dsh-netease-island
  name: dsh-netease-island
  config:
    pollMs: 500          # 轮询间隔(毫秒),会被限制在 200 ~ 5000
    appPatterns:         # appId 子串匹配(忽略大小写),留空/无法解析则用默认值
      - cloudmusic
      - netease
      - com.netease

appPatterns 也可以写成逗号分隔的字符串:appPatterns: 'cloudmusic,netease'。 两项的实际生效值都会出现在 /dsh-netease/state.json 里,方便确认配置有没有吃进去。 pollMs 同时决定桥接进程的 -PollMs 和挂件自己的轮询节奏(挂件从 state.json 里读它)。

appPatterns 里的非 ASCII 字符会被丢弃:这些片段是当命令行参数传给 powershell.exe 的,控制台代码页会在桥接进程看到它之前就把中文参数弄坏 (开发中实测到过 网易云 被解成 缃戞槗浜?)。网易云自己的 appId 是 ASCII,所以这不影响使用。

没有正在播放的会话时挂件会自动隐藏,不需要配置项。

命令行参数(lib/smtc-bridge.ps1,一般不用手动调):

-PollMs               轮询间隔,默认 500
-AppPattern ''      逗号分隔的 appId 匹配片段
-Once                      只输出一次状态然后退出(调试用)
-LibraryOnly               只定义函数、不进入主循环(给 dev/test-cover.ps1 用)

配置项契约:默认值 / 生效值 / 钳制 / 容错(12 项)

node dev/test-config.mjs