Server
Revive unavailable songs for Netease Cloud Music (Refactored & Enhanced version)
Install / Use
/learn @UnblockNeteaseMusic/ServerREADME
UnblockNeteaseMusic
解锁网易云音乐客户端变灰歌曲
特性
- 支援多个音源,替换变灰歌曲链接
- 支援的完整音源清单可以见下方〈音源清单〉处。
- 为请求增加
X-Real-IP参数解锁海外限制,支持指定网易云服务器 IP,支持设置上游 HTTP / HTTPS 代理 - 完整的流量代理功能 (HTTP / HTTPS),可直接作为系统代理 (同时支持 PAC)
运行
直接打开可运行文件
去右侧的 Releases 找到最新版本,然后在下方的 Assets 找到符合你系统架构的可运行文件。下载回来后点两下即可使用。
macOS 因为签名问题,暂时不提供可运行文件。请先按照其他做法使用。
NPM 安装
安装成依赖
npm install @unblockneteasemusic/server
yarn add @unblockneteasemusic/server # for Yarn users
用 NPX 运行
npx -p @unblockneteasemusic/server unblockneteasemusic
注册成 Windows 服务
安装服务
直接 clone 或下载本项目,在项目根目录运行 node ./nw.js。会有弹窗,直接确定即可。如果有安全管家等软件可能会阻止,直接允许即可。运行成功后可在电脑服务中看到该服务。
配置
http 代理使用 127.0.0.1,端口默认使用 8080。
如果想要添加启动参数和环境变量,请在项目根目录中的 nw.js 中配置 scriptOptions 和 env。
如果想要卸载已安装的服务,请再次运行
node ./nw.js。安装服务后,会在项目根目录生成
daemon文件夹。可在这里查看日志。
Docker 作法
Docker Hub
见 pan93412/unblock-netease-music-enhanced
。latest 是从 enhanced 组建的最新版本;release 是最新 tag 的版本。
直接运行 pan93412/unblock-netease-music-enhanced 的命令如下:
docker run pan93412/unblock-netease-music-enhanced
若要更新 UnblockNeteaseMusic,请运行以下命令后重新 run:
docker pull pan93412/unblock-netease-music-enhanced
若要指定环境变量,您可以往 docker run 传入 -e,就像这样:
docker run -e JSON_LOG=true -e LOG_LEVEL=debug pan93412/unblock-netease-music-enhanced
若要传入配置参数,只要在 docker run 的 image 之后传入参数即可:
docker run pan93412/unblock-netease-music-enhanced -o kuwo -p 1234
自行编译
git clone https://github.com/UnblockNeteaseMusic/server.git UnblockNeteaseMusic
cd UnblockNeteaseMusic
docker-compose up
直接使用 Repo 最新版本
git clone https://github.com/UnblockNeteaseMusic/server.git UnblockNeteaseMusic
cd UnblockNeteaseMusic
node app.js # 建议使用 screen / tmux 把 app.js 挂后台
更新:
git pull
编译最新的 package
yarn
yarn build
node app.js # 即可使用 repo 的最新开发内容
采用(而不编译)最新的 package
yarn
DEVELOPMENT=true yarn node app.js
BetterNCM 一键安装器
请移步至 RevivedUnblockInstaller。
Android Xposed 模块
请移步至 杜比大喇叭 β 版。
OpenWrt LuCI 插件
请移步至 luci-app-unblockneteasemusic。
配置参数
$ unblockneteasemusic -h
usage: unblockneteasemusic [-v] [-p http[:https]] [-a address] [-u url] [-f host]
[-o source [source ...]] [-t token] [-e url] [-s]
[-h]
optional arguments:
-v, --version output the version number
-p port, --port http[:https] specify server port
-a address, --address address specify server host
-u url, --proxy-url url request through upstream proxy
-f host, --force-host host force the netease server ip
-o source [source ...], --match-order source [source ...]
set priority of sources
-t token, --token token set up proxy authentication
-e url, --endpoint url replace virtual endpoint with public host
-s, --strict enable proxy limitation
-c, --cnrelay host:port Mainland China relay to get music url
-h, --help output usage information
音源清单
将有兴趣的音源代号用 -o 传入 UNM 即可使用,像这样:
node app.js -o bilibili ytdlp
| 名称 | 代号 | 默认启用 | 注意事项 |
| --------------------------- | ----------- | -------- | ------------------------------------------------------------------------------ |
| QQ 音乐 | qq | | 需要准备自己的 QQ_COOKIE(请参阅下方〈环境变量〉处)。必须使用 QQ 登录。 |
| 酷狗音乐 | kugou | ✅ | |
| 酷我音乐 | kuwo | | |
| 波点音乐 | bodian | ✅ | |
| 咪咕音乐 | migu | ✅ | 需要准备自己的 MIGU_COOKIE(请参阅下方〈环境变量〉处)。 |
| JOOX | joox | | 需要准备自己的 JOOX_COOKIE(请参阅下方〈环境变量〉处)。似乎有严格地区限制。 |
| YouTube(纯 JS 解析方式) | youtube | | 需要 Google 认定的非中国大陆区域 IP 地址。 |
| YouTube(通过 youtube-dl) | youtubedl | | 需要自行安装 youtube-dl。 |
| YouTube(通过 yt-dlp) | ytdlp | ✅ | 需要自行安装 yt-dlp(youtube-dl 仍在活跃维护的 fork)。 |
| B 站音乐 | bilibili | | |
| B 站音乐 | bilivideo | | 在大陆地区外的IP地址可能查询不到某些版权视频(如索尼音乐上传的MV等) |
| 第三方网易云 API | pyncmd | | |
- 支持
pyncmd的 API 服务由 GD studio https://music.gdstudio.xyz 提供。
环境变量
| 变量名称 | 类型 | 描述 | 示例 |
| --------------------- | ---- | ------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------- |
| ENABLE_FLAC | bool | 激活无损音质获取 | ENABLE_FLAC=true |
| ENABLE_LOCAL_VIP | str | 激活本地黑胶 VIP,可选值:true(等同于 CVIP)、cvip 和 svip | ENABLE_LOCAL_VIP=svip |
| LOCAL_VIP_UID | str | 仅对这些 UID 激活本地黑胶 VIP,默认为对全部用户生效 | LOCAL_VIP_UID=123456789,1234,123456 |
| ENABLE_HTTPDNS | bool | 激活故障的 Netease HTTPDNS 查询(不建议) | ENABLE_HTTPDNS=true |
| BLOCK_ADS | bool | 屏蔽应用内部分广告 | BLOCK_ADS=true |
| DISABLE_UPGRADE_CHECK | bool | 禁用更新检测 | DISABLE_UPGRADE_CHECK=true |
| DEVELOPMENT | bool | 激活开发模式。需要自己用 yarn 安装依赖 (dependencies) | DEVELOPMENT=true |
| FOLLOW_SOURCE_ORDER | bool | 严格按照配置音源的顺序进行查询 | FOLLOW_SOURCE_ORDER=true |
| JSON_LOG | bool | 输出机器可读的 JSON 记录格式 | JSON_LOG=true |
| NO_CACHE | bool | 停用 cache | NO_CACHE=true |
| MIN_BR | int | 允许的最低源音质,小于该值将被替换 | MIN_BR=320000 |
| SELECT_MAX_BR | bool | 选择所有音源中的最高码率替换音频 | SELECT_MAX_BR=true |
| LOG_LEVEL | str | 日志输出等级。请见〈日志等级〉部分。 | LOG_LEVEL=debug |
| LOG_FILE | str | 从 Pino 端设置日志输出的文件位置。也可以用 *sh 的输出重导向功能 (node app.js >> app.log) 代替 | LOG_FILE=app.log |
| JOOX_COOKIE | str | JOOX 音源的 wmid 和 session_key cookie | JOOX_COOKIE="wmid=<your_wmid>; session_key=<your_session_key>" |
| MIGU_COOKIE | str | 咪咕音源的 aversionid cookie | MIGU_COOKIE="<your_aversionid>" |
| QQ_COOKIE | str | QQ 音源的 uin 和 qm_keyst cookie | QQ_COOKIE="uin=<your_uin>; qm_keyst=<your_qm_keyst>" |
| YOUTUBE_KEY | str | Youtube 音源的 Data API v3 Key | YOUTUBE_KEY="<your_data_api_key>" |
| SIGN_CERT | path | 自定义证书文件 | SIGN_CERT="./server.crt" |
| SIGN_KEY | path | 自定义密钥文件 | SIGN_KEY="./server.key"
