特性

  • 支援多个音源,替换变灰歌曲链接
    • 支援的完整音源清单可以见下方〈音源清单〉处。
  • 为请求增加 X-Real-IP 参数解锁海外限制,支持指定网易云服务器 IP,支持设置上游 HTTP / HTTPS 代理
  • 完整的流量代理功能 (HTTP / HTTPS),可直接作为系统代理 (同时支持 PAC)

运行

直接运行发行版

下载地址:https://github.com/UnblockNeteaseMusic/server/releases

NPM 安装

安装成依赖

1
2
npm install @unblockneteasemusic/server
yarn add @unblockneteasemusic/server # for Yarn users

用 NPX 运行

1
npx -p @unblockneteasemusic/server unblockneteasemusic

Windows直接运行

直接 clone 或下载项目(去下载),在项目根目录运行 node ./nw.js。会有弹窗,直接确定即可。如果有安全管家等软件可能会阻止,直接允许即可。运行成功后可在电脑服务中看到该服务。

配置

http 代理使用 127.0.0.1,端口默认使用 8080

如果想要添加启动参数和环境变量,请在项目根目录中的 nw.js 中配置 scriptOptionsenv

如果想要卸载已安装的服务,请再次运行 node ./nw.js

安装服务后,会在项目根目录生成 daemon 文件夹。可在这里查看日志。

Docker安装

Docker运行

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
docker run -d \
--name music163 \
--restart always \
-p 8080:8080 \
-p 8081:8081 \
-e ENABLE_FLAC=true \
-e ENABLE_LOCAL_VIP=svip \
-e BLOCK_ADS=true \
-e NO_CACHE=true \
-e SELECT_MAX_BR=true \
-e MIGU_COOKIE="" \
-e QQ_COOKIE="" \
-e NETEASE_COOKIE="" \
pan93412/unblock-netease-music-enhanced \
-o bilibili qq kugou migu kuwo

Docker Compose运行

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
services:
music163:
image: pan93412/unblock-netease-music-enhanced
container_name: music163
restart: always
ports:
- 8080:8080
- 8081:8081
command: ["-o", "bilibili", "qq", "kugou", "migu", "kuwo"]
environment:
- ENABLE_FLAC=true
- ENABLE_LOCAL_VIP=svip
- BLOCK_ADS=true
- NO_CACHE=true
- SELECT_MAX_BR=true
- MIGU_COOKIE=""
- QQ_COOKIE=""
- NETEASE_COOKIE=""

直接使用 Repo 最新版本

1
2
3
git clone https://github.com/UnblockNeteaseMusic/server.git UnblockNeteaseMusic
cd UnblockNeteaseMusic
node app.js # 建议使用 screen / tmux 把 app.js 挂后台

更新:

1
git pull

编译最新的 package

1
2
3
yarn
yarn build
node app.js # 即可使用 repo 的最新开发内容

采用(而不编译)最新的 package

1
2
yarn
DEVELOPMENT=true yarn node app.js

BetterNCM 一键安装器

github地址:https://github.com/ReviveUnblockNCMInstaller/RevivedUnblockInstaller

安装

  1. 安装 BetterNCM 插件管理器
  2. 点击 右上角出现的云音乐按钮
  3. 安装 RevivedSource
  4. 重载后,安装 RevivedUnblockInstaller

使用

  1. 进入 插件设置(点击 RevivedUnblockInstaller)
  2. 点击 “已禁用” 按钮来启用
  3. 选择你需要的版本(国内用户推荐 -ghproxy 的版本),点击应用
  4. 按流程操作即可

Android Xposed 模块

使用杜比大喇叭 β 版

github地址:https://github.com/nining377/dolby_beta

杜比大喇叭 β 版模块下载:立即下载

OpenWrt LuCI 插件

github地址:https://github.com/UnblockNeteaseMusic/luci-app-unblockneteasemusic

功能说明

  1. 支持自定义音源选择,一般设置默认即可;如需高音质音乐,推荐选择“酷我”或“咪咕”
  2. 支持使用 IPset / Hosts 自动劫持相关请求,客户端无需设置代理即可使用
  3. 支持 HTTPS 劫持,客户端信任证书后即可正常使用
  4. 支持将服务公开至公网(默认监听局域网),支持开启严格模式
  5. 支持设定代理,支持指定网易云音乐服务器 IP,支持设定 EndPoint
  6. 支持手动/自动更新 Core,确保插件正常运作
  7. 支持设定 JOOX/Migu/QQ Cookie / Youtube API,以正常使用相关音源
  8. 支持无损音质(目前支持 酷狗、酷我、咪咕、pyncmd、QQ 音源)

编译

1
2
3
4
5
6
7
8
9
10
#进入 OpenWrt 源码 package 目录
cd package
#克隆插件源码
git clone https://github.com/UnblockNeteaseMusic/luci-app-unblockneteasemusic.git
#返回上一层目录
cd ..
#配置
make menuconfig
#在 luci -> application 选中插件,开始编译
make package/luci-app-unblockneteasemusic/compile V=s

使用方法

路由器插件配置

  1. 在路由器 LuCI 界面“服务”选项中找到“解除网易云音乐播放限制”
  2. 勾选“启用本插件”
  3. “音源接口”选择“默认”(高音质音源推荐选择“酷我”或“咪咕”)
  4. 点击“保存&应用”

现在您局域网下的所有设备,(一般情况下)无需任何设置即可自动解除网易云音乐播放限制

特别说明

  1. 首次使用本插件时,将会在后台下载核心程序,故启动时间可能会稍微长一点
  2. 如需使用网页端,请额外安装 Tampermonkey 插件:NeteaseMusic UI Unlocker
  3. 推荐在客户端信任 UnblockNeteaseMusic 证书,以便 HTTPS 通讯(若您不放心,也可以自行签发证书

功能图

配置参数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$ 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 output the version number
-p port, --port http[:https] specify server port
-a address, --address address specify server host
-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 proxy authentication
-e url, --endpoint url replace virtual endpoint with public host
-s, --strict enable proxy limitation
-c, --cnrelay host:port Mainland China relay to get music url
-h, --help output usage information

音源清单

将有兴趣的音源代号用 -o 传入 UNM 即可使用,像这样:

1
node app.js -o bilibili ytdlp
名称 代号 默认启用 注意事项
QQ 音乐 qq 需要准备自己的 QQ_COOKIE(请参阅下方〈环境变量〉处)。必须使用 QQ 登录。
酷狗音乐 kugou
酷我音乐 kuwo
咪咕音乐 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
第三方网易云 API pyncmd

支持 pyncmd 的 API 服务由 GD studio https://music.gdstudio.xyz 提供。

环境变量

变量名称 类型 描述 示例
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 对此的说明

使用

因 UWP 应用存在网络隔离,限制流量发送到本机,若使用的代理在 localhost,或修改的 hosts 指向 localhost,需为 “网易云音乐 UWP” 手工开启 loopback 才能使用,请以管理员身份运行命令

1
checknetisolation loopbackexempt -a -n="1F8B0F94.122165AE053F_j2p0p5q0044a6"

方法1:修改 hosts

向 hosts 文件添加几条规则

1
2
3
4
5
<Server IP> music.163.com
<Server IP> interface.music.163.com
<Server IP> interface3.music.163.com
<Server IP> interface.music.163.com.163jiasu.com
<Server IP> interface3.music.163.com.163jiasu.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 无线局域网 > HTTP 代理 > 配置代理

代理工具和方法有很多请自行探索,欢迎在 issues 讨论

方法3:调用接口

作为依赖库使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
const match = require('@unblockneteasemusic/server');

/**
* 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 qq, xiami, baidu, kugou, kuwo, migu, joox
* @return {Promise<Object>}
*/
match(418602084, ['qq', 'kuwo', 'migu']).then(console.log);

設定 HTTPS 憑證

新版的 NeteaseMusic 需要 HTTPS 才能使用。

假如您第一次設定 UNM,設定完 Proxy 後進入 https://music.163.com 應該會跳出「憑證錯誤」:

若要讓 UNM 可以攔截 HTTPS 請求,請跟隨以下步驟安裝 UMM 的 HTTPS 憑證。

使用 UNM Repo 預先產生完的憑證

Windows

首先安装证书:

  1. 进入 UnblockNeteaseMusic项目 ,点击本 Repo 的 Code 选项卡,然后点击 ca.crt

  1. 对于主流浏览器,请将光标移动至 Raw,单击右键,然后选择「链接另存为」

  1. 在弹出的对话框中,点击左侧保存到桌面

如果网页无法进入,可以通过网盘下载:立即下载

  1. 返回桌面,双击打开 ca.crt,确认安全警告

]

  1. 单击「安装证书」,存储位置保持默认,单击下一步,选择「将所有的证书都放入下列存储」,单击右侧的「浏览」,选择「受信任的根证书颁发机构」并确定

  1. 单击「完成」,在弹出的提示框中选择「是」

macOS

首先安裝憑證:

  1. 進入這個 Repo 的 Code 區,然後點開 ca.crt

  1. 假如是 Safari 使用者,請對 Raw 按下右鍵,接著點選特色選單 (Context Menu) 中的「下載連結檔案」。其他瀏覽器步驟應該類似。

  1. (Safari) 請將下載到的 ca.crt.txt 改名為 ca.crt

]

  1. 跳出這個畫面,請輸入密碼或按 Touch ID。

驗證完成後,憑證應該就已經裝進您的電腦了。接下來就是核可這個憑證:

  1. 用您習慣的方式打開「鑰匙圈存取」。

  1. 接著在搜尋處輸入「UnblockNeteaseMusic」。

  1. 點開「UnblockNeteaseMusic Root CA」,展開「信任」,找到「安全通訊協定(SSL)」並設定為「永遠信任」。

  1. 之後關閉視窗。若要求進行身份驗證,請進行與 4. 一樣的操作。

GNU/Linux

WIP

可先用自動安裝腳本安裝:https://github.com/UnblockNeteaseMusic/install-scripts

自行產生 SSL 憑證

  1. 克隆本專案
  2. 进入專案根目錄,執行 env TYPE="RSA" ISSUENAME="Your Name" bash generate-cert.sh 產生新的憑證
  3. 原有憑證 ca.crt 會被直接替換,請依照上述方案重新信任新的憑證

效果

Windows 客户端

UWP 客户端

Linux 客户端

macOS 客户端

Android 客户端

iOS 客户端

参考项目

UnblockNeteaseMusic/server

ReviveUnblockNCMInstaller/RevivedUnblockInstaller

std-microblock/BetterNCM

nining377/dolby_beta