Back to home

WolfGenerals

ncm-player

No description

Stars
2
Language
JavaScript
Created
Aug 14, 2026
Updated
Aug 14, 2026

Introduction

ncm-player — 网易云音乐浮窗

一个运行在 DeepSeek Harness (DSH) Web 界面里的网易云音乐浮窗:可拖拽、可折叠, 支持歌单/歌曲/专辑浏览、同步歌词与翻译、播放队列、扫码登录自己账号。

功能

  • 🎵 播放:播放/暂停、上一首/下一首、进度拖拽、音量、顺序/单曲循环/随机、封面
  • 📃 歌单页:发现(搜索歌曲/歌单 + 热门歌单)/ 我的(创建的歌单 / 收藏的歌单 / 我喜欢的音乐 / 收藏的专辑)
  • 📝 歌词:逐行同步高亮、点击跳转、歌词翻译(有翻译时显示)、迷你模式显示歌词
  • 🔄 队列:管理/清空,自动持久化(重启后恢复队列、进度、模式、音量)
  • 👤 账号:扫码登录(App 扫一扫)或粘贴 Cookie;登录后可用"我的音乐"与收藏
  • 🪟 浮窗:可拖拽、收起为迷你条(可拖、显示歌词)、隐藏为右下角音符按钮;颜色跟随 DSH 皮肤主题

安装

方式一:dsh 命令(推荐)

dsh plugin --profile web add github:WolfGenerals/ncm-player

该命令会在 web profile 中安装依赖,并把 ncm-player 加入 dsh.profile.bundles 列表(见 $DSH_HOME/profiles/web/package.json)。

本地开发

git clone https://github.com/WolfGenerals/ncm-player.git
# 或用 link: 指向本地目录
"ncm-player": "link:C:/Projects/DSH/ncm-player"

重启 DSH Web 后生效。

数据文件格式 (~/.dsh/ncmply-settings)

{
  "account": { "cookie": "...", "uid": 123, "nickname": "..." },
  "state": {
    "queue": [ { "id": 1, "name": "...", "artists": "...", "album": "...", "cover": "...", "duration": 0 } ],
    "index": -1, "mode": "order", "vol": 0.8, "quality": 320000, "time": 0
  }
}

注意事项

  • 依赖本机 PATH 上的 Node.js 运行时,以及可访问 music.163.com 的网络。
  • 登录 Cookie 只用于请求 music.163.com,不发送给任何第三方。
  • 收藏(点❤️)受网易云账号风控影响,失败时会有提示,属正常现象。
  • 部分歌曲受版权/会员限制无法播放;歌词翻译仅当歌曲有翻译数据时显示。
  • 仅供个人学习使用,请遵守网易云音乐服务条款与当地法律法规。

开发

# 结构
#   index.mjs           Host 半部(cordis 插件, webServer 路由 + node 子进程网络)
#   client/src.js       Client 半部源码(纯 JS + React.createElement,无 JSX/TS)
#   lib/client.js       Client 半部构建产物(scripts/build.mjs 生成)
#   scripts/build.mjs   无依赖构建脚本
#   cordis.patch.yml    组合 patch 层

Host 依赖 os/path 计算跨平台路径;settings 文件路径优先跟随 DSH_HOME, 未设置时回退 <home>/.dsh/ncmply-settings(即 ~/.dsh/ncmply-settings)。

License

MIT

致谢

实现借鉴了 sanwuhundun/dsh-netease-music 的网易云音乐 API 对接与登录方案。