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 对接与登录方案。