网易云音乐解锁灰色歌曲
转载编辑自深度博客 https://www.yfriend.xyz/155.html
实现原理
其原理是通过流量进入代理后来匹配网易链接进行劫持,然后将requests请求修改重新发送一个新的链接(这个链接就是provider的),请求到音乐以后再重新将provider的response改写成网易的,然后返回到应用,通俗的说是修改http请求和响应。
目前博主仅提供Windows和Android的使用教程,但是在iOS上博主也通过测试成功实现(因缺少iOS系统的多方面测试,暂不提供教程)。iOS在使用时,网易云音乐会优先使用https请求歌曲数据,且https请求失败后iOS端无法降级http请求,因此需要手动安装CA证书来信任https协议,是因为这是劫持了链接伪造的response没有真正的网易证书,故需要手动安装证书信任来让系统相信这是真的response。
使用方法
安卓端
在安卓端,可以使用termux部署一个代理服务,教程如下:
1、安装termux工具并打开(第一次会加载部分文件,若加载不成功需挂梯子),输入以下更新软件库
pkg upgrade |
2、安装git和nodejs,命令如下:
apt install git nodejs |
3、使用git将服务克隆到本地,命令如下:
git clone https://github.com/nondanee/UnblockNeteaseMusic |
克隆成功后再使用命令
cd UnblockNeteaseMusic |
进入UnblockNeteaseMusic文件夹
4、启用服务
node app.js -a 127.0.0.1 -p 2635 |
成功运行后可连接WiFi并进入当前WiFi的高级选项,在代理处填写对应的代理IP和端口即可代理。但是该代理仍有弊端,在你使用WiFi时不仅操作麻烦,换了一个WiFi又得重新设置;若断开了WiFi,用数据流量使用又很是麻烦(数据网络需要自己去更改当前网络APN代理),于是可以使用clash代理,且下方给出相关规则,只需替换一下规则中ip或域名以及端口即可,其clash代理规则我也会不断去更新完善。
在安卓端,博主推荐使用Clash软件代理使用网易云,可以达到数据流量和WiFi皆一键代理使用,代理规则模板只提供网易云的代理。
新版Clash规则:
#规则最后更新:2020-12-24 |
Surfboard代理规则:
#规则最后更新:2020-12-24 |
下面这步可忽略,我已经将其ip地址和端口改好了,如果是使用自己的服务器的话再更改。
(然后将其中的ip或域名改为你的代理服务器的ip地址,即127.0.0.1,端口改为你的代理服务的端口,即2635,更改好后将文件(文件后缀名为.yaml)导入到Clash软件中使用,或将其放入可公网访问的托管上使用URL导入。)
Windows端使用方法
方法一:
在Windows上相对于更加的简单,因为博主根据其使用方法编制了一份批处理文件,实现了一键操作使用,但是还有一些设置是必不可少的。首先我们先下载该文件:
https://download.yjs2635.xyz/unblockmusic/unblockmusic_0240.zip
备用地址:https://ednovas.lanzoux.com/iMWM6mryzqj
版本更新说明
V 2.4.0 更新于:2020-11-15(文件已同步更新) |
文件下载后将其解压,然后双击该目录下的exe运行程序
按照提示来运行,第一次使用的小伙伴请务必选择【1】看下使用说明,如果出现如下图所示即表示代理已成功运行
然后打开网易云,选择设置——>工具——>代理——>自定义代理
服务器填写:127.0.0.1
端口(默认):2635
确认后重启一遍网易云即可
方法二:(基于方法一)
此为Windows使用Clash代理教程,提供代理解锁的另一种方法。在方法一代理启用后可以套用上方给出的clash规则进行自定义代理。
首先我们下载并安装好Clash for Windows并打开
在profiles处导入已经配置好的clash规则文件(配置文件点击下方展开代码即可直接复制),并选中该规则文件,如图所示:
电脑Clash规则(同上安卓端规则):
#规则最后更新:2020-12-24 |
然后在Proxies处选择Rule,即规则代理,如图所示:
最后在General处将System proxy打开,此处Clash for Windows即配置成功,然后去打开网易云,选择设置——>工具——>代理——>使用IE代理设置,确定后重启网易云,此时无版权的歌曲即解锁成功。
方法三:(基于方法一)
以Windows 10系统为例,打开设置——>网络和internet——>代理——>自动设置代理
脚本地址处填写:
http://127.0.0.1:端口/proxy.pac |
一般为 http://127.0.0.1:2635/proxy.pac
然后保存,如图所示:
最后再打开网易云,选择设置——>工具——>代理——>使用IE代理设置
最后确认,重启网易云即可。
效果
未使用代理:
使用代理后:
最后说明
对于网易云独家的付费版权音乐此代理是无法解决或匹配的音源错误,一些极少数的歌曲可能由于其他平台尚未收录、知名度不高或各大平台的歌曲搜索算法不同都可能导致歌曲匹配错误(难以避免的,很少一部分,Windows上使用也是如此)
Android上使用Clash软件代理后若切换音质后弹出会员充值界面可结束下网易云音乐进程后再打开一下应用即可选择,对于网易云本身无版权的音乐不可做选择,只能使用默认匹配来的音质。
使用代理后,网易云个人资料卡打开提示“网络错误,请重试”或代理打开时登录网易云音乐无法登录,其原因是此类页面加载时通过https请求数据失败后无法将https降级为http来进行请求,所以目前博主有两种解决方法。
第一种:在登录或查看个人资料时将代理关闭,登录后在打开代理。
第二种(提供给手机已Root的用户):由于从Android Nougat(7.0)开始,谷歌改变了网络安全策略,自签的CA证书将默认不被TLS/SSL连接信任。所以你需要将一份CA证书添加至根目录的系统证书里(项目证书由项目作者N大提供且开源,可放心使用)
下载地址:
https://www.yfriend.xyz/file/557de9dd.0
将证书(即此文件)添加至此路径下:/system/etc/security/cacerts/
转载编辑自深度博客 https://www.yfriend.xyz/155.html