UnblockNeteaseMusic
解锁网易云音乐客户端变灰歌曲(Docker版)
想使用现成的项目服务在末尾 评论留言
特性
- 支持多个音源,替换变灰歌曲链接(现只能解决win客户端和网页端)
- 支持的完整音源清单可以见下方〈音源清单〉处。
- 完整的流量代理功能 (HTTP / HTTPS),可直接作为系统代理 (同时支持 PAC)
运行
Docker-compose(推荐)
建议clone在服务器目录的上一级执行终端拉取代码,随后生成UnblockNeteaseMusic文件夹(也可替换成你想要的文件夹名称)
git clone https://github.com/UnblockNeteaseMusic/server.git UnblockNeteaseMusic
cd UnblockNeteaseMusic
docker-compose up
解析
先切换 UnblockNeteaseMusic 文件夹目录,再执行 docker-compose up 让项目运行起来,随后根据实际需要修改并执行参数,可以见下方<配置参数>处
执行 node app.js
我的Entrypoint
node app.js -o bodian bilibili -s -p 8080:8081 -e https://music.163.com
更新:
git pull
配置参数
$ 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 显示版本号。执行后会打印当前安装的 UnblockNeeeMusic 版本并退出。
-p port, --port http[:https] 指定服务器监听的端口。默认通常是 8080。可以用 http[:https]
格式同时启用 HTTP 和 HTTPS 服务。
-a address, --address address 指定服务器绑定的主机地址。默认是 0.0.0.0(监听所有网络接口)。
如果只想本地访问,可设为 127.0.0.1。
-u url, --proxy-url url 设置上游代理。让本程序通过另一个代理服务器
(如 Shadowsocks、HTTP 代理)来访问音源和网易云,适用于本身网络受限的环境。
-f host, --force-host host 强制指定网易云服务器的 IP。用于解决 DNS 污染或指定特定服务器,通常高级用户使用。
-o source [source ...], --match-order source [source ...]
设置音源搜索优先级。当歌曲变灰时,按顺序从这些平台搜索可用版本。这是最常用的参数之一。
-t token, --token token 设置代理认证令牌。为代理服务设置密码
客户端使用时需在配置中填入此令牌,提升安全性(尤其在公网部署时)。
-e url, --endpoint url 替换虚拟端点为公网主机。主要用于特定场景(如 iOS 的 HTTP 代理模式)
将代理服务器内部使用的虚拟域名替换成一个可公开访问的地址。
-s, --strict 启用严格模式。开启后,代理服务器将只处理与网易云音乐相关的域名请求
防止被滥用去代理其他网站,公网部署强烈建议开启。
-c, --cnrelay host:port 设置中国大陆中继/代理。这是一个高级功能,用于解决某些音源(如QQ、咪咕)
因IP限制在海外无法直接获取播放链接的问题。你需要自行准备一个在中国大陆的代理或服务器。
-h, --help 显示此帮助信息。
音源清单
将有兴趣的音源代号用 -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提供。
环境变量
| 变量名称 | 类型 | 描述 | 示例 |
|---|---|---|---|
| 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" |
| SEARCH_ALBUM | bool | 在其他音源搜索歌曲时携带专辑名称(默认搜索条件 歌曲名 - 歌手,启用后搜索条件 歌曲名 - 歌手 专辑名) |
SEARCH_ALBUM=true |
| NETEASE_COOKIE | str | 网易云 Cookie | MUSIC_U=007554xxx |
日志等级 (LOG_LEVEL)
这些是常用的值:
-
debug: 输出所有记录(调试用) -
info: 只输出一般资讯(默认值) -
error: 只在出严重问题时输出
详细请参见 Pino 对此的说明
使用
若将服务部署到公网,强烈建议使用严格模式 (此模式下仅放行网易云音乐所属域名的请求) -s 限制代理范围 (需使用 PAC 或 hosts),或激活 Proxy Authentication (目前密码认证在 Windows 客户端设置和 macOS 系统设置都无法生效,请不要使用),以防代理被他人滥用-t <name>:<password> 设置代理用户名密码
方法 设置代理
PAC 自动代理脚本地址 http://<Server Name:PORT>/proxy.pac
客户端内 设置 > 工具 > 自定义代理 (客户端内) > 输入Docker部署的域名或IP(http) > 端口(默认8080)
HTTPs在PC端无法使用
全局代理地址填写服务器地址和端口号即可
| 平台 | 基础设置 |
|---|---|
| Windows | 设置 > 工具 > 自定义代理 (客户端内) |
| Android | WLAN > 修改网络 > 高级选项 > 代理 |
| iOS | 无线局域网 > HTTP 代理 > 配置代理 |
代理工具和方法有很多请自行探索
设定 HTTPS 凭证
新版的 NeteaseMusic 需要 HTTPS 才能使用。证书的设置教学可参阅《安裝 UNM 的 HTTPS 憑證》一文。