UnblockNeteaseMusic 解锁网易云音乐客户端变灰歌曲 项目简介
UnblockNeteaseMusic 可以用来解锁网易云音乐客户端变灰歌曲特性使用网易云旧链 / QQ / 虾米 / 百度 / 酷狗 / 酷我 / 咕咪 / JOOX 音源替换变灰歌曲链接 (默认仅启用前四) 为请求增加 X-Real-IP 参数解锁海外限制,支持指定网易云服务器 IP,支持设置上游 HTTP / HTTPS 代理 完整的流量代理功能 (HTTP / HTTPS),可直接作为系统代理 (同时支持 PAC)运行从源码运行$ node app.js或使用 Docker$ docker run nondanee/unblockneteasemusic$ docker-compose up配置参数$ node app.js -h
usage: unblockneteasemusic [-v] [-p port] [-u url] [-f host]
[-o source [source ...]] [-t token] [-e url] [-s]
[-h]
optional arguments:
-v, --version output the version number
-p port, --port port specify server port
-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 http basic authentication
-e url, --endpoint url replace virtual endpoint with public host
-s, --strict enable proxy limitation
-h, --help output usage information使用警告:本项目不提供线上 demo,请不要轻易信任使用他人提供的公开代理服务,以免发生安全问题若将服务部署到公网,强烈建议使用严格模式 (此模式下仅放行网易云音乐所属域名的请求) -s 限制代理范围 (需使用 PAC 或 hosts),或启用 Proxy Authentication -t <name>:<password> 设置代理用户名密码 (目前密码认证在 Windows 客户端设置和 macOS 系统设置都无法生效,请不要使用),以防代理被他人滥用支持 Windows 客户端,UWP 客户端,Linux 客户端 (1.2 版本以上需要自签证书 MITM,启动客户端需要增加 --ignore-certificate-errors 参数),macOS 客户端 (726 版本以上需要自签证书),Android 客户端和网页版 (需要自签证书,需要脚本配合)目前除 UWP 外其它客户端均优先请求 HTTPS 接口,默认配置下本代理对网易云所有 HTTPS API 连接返回空数据,促使客户端降级使用 HTTP 接口 (新版 Linux 客户端和 macOS 客户端已无法降级)测试发现 iOS 客户端设置 WLAN 代理有效果 (HD 版不行),虽 Apple 强制要求使用 HTTPS 但 API 请求仍可以降级。不过音源播放地址需要 HTTPS,因此无法直接使用,需要一个有受信任证书的 (公网) HTTPS 接口来转发流量,有域名和证书条件的话可以参考 @u3u 的 配置指南 (其它项目有提到使用 Surge,Shadowrocket 可以直接转发 HTTPS 流量到 HTTP,有兴趣可以试试)因 UWP 应用存在网络隔离,限制流量发送到本机,若使用的代理在 localhost,或修改的 hosts 指向 localhost,需为 "网易云音乐 UWP" 手动开启 loopback 才能使用,请以管理员身份执行命令checknetisolation loopbackexempt -a -n="1F8B0F94.122165AE053F_j2p0p5q0044a6"方法 1. 修改 hosts向 hosts 文件添加两条规则<Server IP> music.163.com
<Server IP> interface.music.163.com使用此方法必须监听 80 端口 -p 80若在本机运行程序,请指定网易云服务器 IP -f xxx.xxx.xxx.xxx (可在修改 hosts 前通过 ping music.163.com 获得) 或使用代理 -u http(s)://xxx.xxx.xxx.xxx:xxx,以防请求死循环Android 客户端下修改 hosts 无法直接使用,原因和解决方法详见云音乐安卓又搞事啦,安卓免 root 绕过网易云音乐 IP 限制方法 2. 设置代理PAC 自动代理脚本地址 http://<Server Name:PORT>/proxy.pac全局代理地址填写服务器地址和端口号即可平台 基础设置 Windows 设置 > 工具 > 自定义代理 (客户端内) UWP Windows 设置 > 网络和 Internet > 代理 Linux 系统设置 > 网络 > 网络代理 macOS 系统偏好设置 > 网络 > 高级 > 代理 Android WLAN > 修改网络 > 高级选项 > 代理 iOS Surge,Shadowrocket 等添加配置 (来自 @HenryQW,@kongminhao) 代理工具和方法有很多请自行探索✳方法 3. 调用接口作为依赖库使用$ npm install nondanee/UnblockNeteaseMusicconst match = require('unblockneteasemusic')
/**
* Set proxy or hosts if needed
*/
global.proxy = require('url').parse('http://127.0.0.1:1080')
global.hosts = {'i.y.qq.com': '59.37.96.220'}
/**
* Find matching song from other platforms
* @param {Number} id netease song id
* @param {Array<String>||undefined} source support netease, qq, xiami, baidu, kugou, kuwo, migu, joox
* @return {Promise<Object>}
*/
match(418602084, ['netease', 'qq', 'xiami', 'baidu']).then(song => console.log(song))效果Windows 客户端UWP 客户端Linux 客户端macOS 客户端Android 客户端iOS 客户端
usage: unblockneteasemusic [-v] [-p port] [-u url] [-f host]
[-o source [source ...]] [-t token] [-e url] [-s]
[-h]
optional arguments:
-v, --version output the version number
-p port, --port port specify server port
-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 http basic authentication
-e url, --endpoint url replace virtual endpoint with public host
-s, --strict enable proxy limitation
-h, --help output usage information使用警告:本项目不提供线上 demo,请不要轻易信任使用他人提供的公开代理服务,以免发生安全问题若将服务部署到公网,强烈建议使用严格模式 (此模式下仅放行网易云音乐所属域名的请求) -s 限制代理范围 (需使用 PAC 或 hosts),或启用 Proxy Authentication -t <name>:<password> 设置代理用户名密码 (目前密码认证在 Windows 客户端设置和 macOS 系统设置都无法生效,请不要使用),以防代理被他人滥用支持 Windows 客户端,UWP 客户端,Linux 客户端 (1.2 版本以上需要自签证书 MITM,启动客户端需要增加 --ignore-certificate-errors 参数),macOS 客户端 (726 版本以上需要自签证书),Android 客户端和网页版 (需要自签证书,需要脚本配合)目前除 UWP 外其它客户端均优先请求 HTTPS 接口,默认配置下本代理对网易云所有 HTTPS API 连接返回空数据,促使客户端降级使用 HTTP 接口 (新版 Linux 客户端和 macOS 客户端已无法降级)测试发现 iOS 客户端设置 WLAN 代理有效果 (HD 版不行),虽 Apple 强制要求使用 HTTPS 但 API 请求仍可以降级。不过音源播放地址需要 HTTPS,因此无法直接使用,需要一个有受信任证书的 (公网) HTTPS 接口来转发流量,有域名和证书条件的话可以参考 @u3u 的 配置指南 (其它项目有提到使用 Surge,Shadowrocket 可以直接转发 HTTPS 流量到 HTTP,有兴趣可以试试)因 UWP 应用存在网络隔离,限制流量发送到本机,若使用的代理在 localhost,或修改的 hosts 指向 localhost,需为 "网易云音乐 UWP" 手动开启 loopback 才能使用,请以管理员身份执行命令checknetisolation loopbackexempt -a -n="1F8B0F94.122165AE053F_j2p0p5q0044a6"方法 1. 修改 hosts向 hosts 文件添加两条规则<Server IP> music.163.com
<Server IP> interface.music.163.com使用此方法必须监听 80 端口 -p 80若在本机运行程序,请指定网易云服务器 IP -f xxx.xxx.xxx.xxx (可在修改 hosts 前通过 ping music.163.com 获得) 或使用代理 -u http(s)://xxx.xxx.xxx.xxx:xxx,以防请求死循环Android 客户端下修改 hosts 无法直接使用,原因和解决方法详见云音乐安卓又搞事啦,安卓免 root 绕过网易云音乐 IP 限制方法 2. 设置代理PAC 自动代理脚本地址 http://<Server Name:PORT>/proxy.pac全局代理地址填写服务器地址和端口号即可平台 基础设置 Windows 设置 > 工具 > 自定义代理 (客户端内) UWP Windows 设置 > 网络和 Internet > 代理 Linux 系统设置 > 网络 > 网络代理 macOS 系统偏好设置 > 网络 > 高级 > 代理 Android WLAN > 修改网络 > 高级选项 > 代理 iOS Surge,Shadowrocket 等添加配置 (来自 @HenryQW,@kongminhao) 代理工具和方法有很多请自行探索✳方法 3. 调用接口作为依赖库使用$ npm install nondanee/UnblockNeteaseMusicconst match = require('unblockneteasemusic')
/**
* Set proxy or hosts if needed
*/
global.proxy = require('url').parse('http://127.0.0.1:1080')
global.hosts = {'i.y.qq.com': '59.37.96.220'}
/**
* Find matching song from other platforms
* @param {Number} id netease song id
* @param {Array<String>||undefined} source support netease, qq, xiami, baidu, kugou, kuwo, migu, joox
* @return {Promise<Object>}
*/
match(418602084, ['netease', 'qq', 'xiami', 'baidu']).then(song => console.log(song))效果Windows 客户端UWP 客户端Linux 客户端macOS 客户端Android 客户端iOS 客户端