自建网易云音乐解锁灰色歌曲

由于众所周知的原因,音乐平台的版权之争,相信大家都不陌生,像周杰伦、林俊杰等这样拥有大批量听众的歌手的版权,更是各大平台重点抢夺对象,因为他们可以为平台带来大量的粉丝用户。

仅2020年,网易云音乐就大手笔的与数十家版权公司达成了独家合作。如今,坐拥千万级曲库的网易云音乐,却似乎仍难摆脱用户的不满。比如在2018年,网易云突然下架周杰伦的歌曲,就引发众多用户强烈不满,流失大量的音乐用户。

本文主要记录下解锁网易云音乐客户端变灰歌曲部署过程,通过部署 UnblockNeteaseMusic 程序,使用 Glider 将 HTTP 转发为 ss协议后,适用的客户端更多,更好支持多平台使用。

特性

  • 使用 QQ / 虾米 / 百度 / 酷狗 / 酷我 / 咪咕 / JOOX 音源替换变灰歌曲链接 (默认仅启用一、五、六)
  • 为请求增加 X-Real-IP 参数解锁海外限制,支持指定网易云服务器 IP,支持设置上游 HTTP / HTTPS 代理
  • 完整的流量代理功能 (HTTP / HTTPS),可直接作为系统代理 (同时支持 PAC)

1、部署环境:自建网易云音乐解锁(腾讯云香港)
2、system:ubuntu
UnblockNeteaseMusic 是一个解锁网易云音乐已下架歌曲的开源项目。
glider 是一个支持多种协议的代理转发软件,讲UnblockNeteaseMusic http代理转为ss
Supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。

由于新版 iOS 网易云音乐客户端强制检测音源是否为 HTTPS 路径,所以要对 iOS 与 非 iOS 分开进行配置。

基础环境准备

安装 Node.js

curl -sL https://deb.nodesource.com/setup_10.x | bash -
apt install nodejs -y

准备UnblockNeteaseMusic

git clone https://github.com/nondanee/UnblockNeteaseMusic.git

准备glider

# 前往下载最新版 https://github.com/nadoo/glider/releases
wget https://github.com/nadoo/glider/releases/download/v0.14.0/glider_0.14.0_linux_amd64.tar.gz
tar zxvf glider_0.14.0_linux_amd64.tar.gz
cd glider_0.14.0_linux_amd64
cp glider /usr/bin/
chmod +x glider

安装supervisor

# 安装supervisor
# 配置文件:/etc/supervisor/conf.d/*.ini
apt install supervisor

配置Win环境

配置UnblockNeteaseMusic

cd /etc/supervisor/conf.d/
touch netease.win.ini

# 内容如下
[supervisord]
nodaemon=false

[program:netease-win]
user=root
directory=/root/UnblockNeteaseMusic
command=/usr/bin/node app.js -p 8888 -s -o kuwo qq migu
autostart=true
autorestart=true
stdout_logfile=/var/log/netease-win.out.log
stdout_logfile_maxbytes=10MB
stderr_logfile=/var/log/netease-win.err.log
stderr_logfile_maxbytes=10MB

# 参数说明
# -p 监听端口
# -s 严格模式,只允许网易云音乐相关通过防止被滥用
# -o 音源选择:kuwo qq migu

配置glider守护进程

cd /etc/supervisor/conf.d/
touch glider.win.ini

# 内容如下
;To glider win
[program:glider-win]
user=root
command=glider -config /etc/glider/win-ss.conf
autorstart=true
directory=/home/
autorestart=true
startsecs=5
startretries=100
redirect_stderr=true
stopasgroup=true
killasgroup=true
stdout_logfile=/var/log/glider.win.out.log
stdout_logfile_maxbytes=10MB
stderr_logfile=/var/log/glider.win.err.log
stderr_logfile_maxbytes=10MB

配置IOS环境

配置UnblockNeteaseMusic

cd /etc/supervisor/conf.d/
touch netease.ios.ini

# 内容如下
[supervisord]
nodaemon=false

[program:netease-ios]
user=root
directory=/root/UnblockNeteaseMusic
command=/usr/bin/node app.js -p 8889 -e https://music.163.com -s -o kuwo qq migu
autostart=true
autorestart=true
stdout_logfile=/var/log/netease-ios.out.log
stdout_logfile_maxbytes=10MB
stderr_logfile=/var/log/netease-ios.err.log
stderr_logfile_maxbytes=10MB

# 参数说明
# -p 监听端口
# -s 严格模式,只允许网易云音乐相关通过防止被滥用
# -o 音源选择:kuwo qq migu

配置glider守护进程

cd /etc/supervisor/conf.d/
touch glider.ios.ini

# 内容如下
;To glider ios
[program:glider-ios]
user=root
command=glider -config /etc/glider/ios-ss.conf
autorstart=true
directory=/home/
autorestart=true
startsecs=5
startretries=100
redirect_stderr=true
stopasgroup=true
killasgroup=true
stdout_logfile=/var/log/glider.ios.out.log
stdout_logfile_maxbytes=10MB
stderr_logfile=/var/log/glider.ios.err.log
stderr_logfile_maxbytes=10MB

glider配置文件

mkdir /etc/glider
cd /etc/glider/

# 这里需要分别为Win&IOS建两个配置文件,分别监听不同的端口
touch ios-ss.conf
touch win-ss.conf
# 这两个文件供glider守护进程supervisor启动用

# glider配置比较简单,以下为样例

# 开启调试模式,输出log
verbose=True
# Shadowsocks:
# Method:
# AEAD Ciphers:
# AEAD_AES_128_GCM AEAD_AES_192_GCM AEAD_AES_256_GCM AEAD_CHACHA20_POLY1305 AEAD_XCHACHA20_POLY1305

# Stream Ciphers:
# AES-128-CFB AES-128-CTR AES-192-CFB AES-192-CTR AES-256-CFB AES-256-CTR CHACHA20-IETF XCHACHA20 CHACHA20 RC4-MD5

# Alias:
# chacha20-ietf-poly1305 = AEAD_CHACHA20_POLY1305, xchacha20-ietf-poly1305 = AEAD_XCHACHA20_POLY1305

listen=ss://xchacha20-ietf-poly1305:Admin@:监听端口注意修改

# 需转发的 UnblockNeteaseMusic HTTP 代理
forward=http://127.0.0.1:8888

说明

  1. 注意修改文中端口。

  2. 由于新版网易云音乐 iOS 客户端会强制检测音源是否为 HTTPS,所以要对 iOS 与非 iOS 分开进行配置。

  3. 由于 JOOX 默认为 HTTPS,若服务器可使用 JOOX 音源,将 JOOX 设为默认音源可以同时适用 iOS 端与非 iOS端:

  4. 若部署在公网服务器上,强烈推荐使用 -s 参数开启严格模式,限制代理范围为仅网易云音乐解锁所需域名和 IP,防止被滥用盗用。

pm2 start app.js --name="general" -- -s -p port1:port2 -o joox

音源选择

目前所有可选用的音源如下表

参数音源音质描述
baidu百度音乐128kbps曲库很少,不推荐使用
jooxJOOX 音乐320kbps腾讯国际产品,曲库一般,少于 QQ 音乐,仅限 香港,澳门,泰国,印尼,马来西亚,缅甸,南非 IP
kugou酷狗音乐320kbps曲库很少,不推荐使用
kuwo酷我音乐320kbps曲库全,仅限大陆 IP
migu咪咕音乐320kbps曲库一般,对 IP 无限制
qqQQ 音乐128kbps曲库全,对 IP 无限制
xiami虾米音乐/搜索接口被拦截要求移动滑块验证,目前不可用
  • 匹配准确度

经测试,kuwo>qq>migu≈joox

推荐参数(本文利用阿里云新加坡节点为例,不需要添加 -o 参数)

大陆 IP:-o kuwo qq migu

非大陆 IP:-o qq migu joox