UnblockNeteaseMusic网抑云解灰部署

UnblockNeteaseMusic

解锁网易云音乐客户端变灰歌曲(Docker版)

想使用现成的项目服务在末尾 评论留言

logo

特性

  • 支持多个音源,替换变灰歌曲链接(现只能解决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-dlpyoutube-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)、cvipsvip 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 -t <name>:<password> 设置代理用户名密码 (目前密码认证在 Windows 客户端设置和 macOS 系统设置都无法生效,请不要使用),以防代理被他人滥用

方法 设置代理

PAC 自动代理脚本地址 http://<Server Name:PORT>/proxy.pac

客户端内 设置 > 工具 > 自定义代理 (客户端内) > 输入Docker部署的域名或IP(http) > 端口(默认8080)

HTTPs在PC端无法使用

全局代理地址填写服务器地址和端口号即可

平台 基础设置
Windows 设置 > 工具 > 自定义代理 (客户端内)
Android WLAN > 修改网络 > 高级选项 > 代理
iOS 无线局域网 > HTTP 代理 > 配置代理

代理工具和方法有很多请自行探索

设定 HTTPS 凭证

新版的 NeteaseMusic 需要 HTTPS 才能使用。证书的设置教学可参阅《安裝 UNM 的 HTTPS 憑證》一文。

评论区
头像
文章目录