wyywindows配置unlook
 
UnblockNeteaseMusic
解锁wyy客户端变灰music
特性
- 支援多个音源,替换变灰歌曲链接
- 支援的完整音源清单可以见下方〈音源清单〉处。
 
- 为请求增加 X-Real-IP参数解锁海外限制,支持指定网易云服务器 IP,支持设置上游 HTTP / HTTPS 代理
- 完整的流量代理功能 (HTTP / HTTPS),可直接作为系统代理 (同时支持 PAC)
运行
直接打开可运行文件
去右侧的 Releases 找到最新版本,然后在下方的 Assets 找到符合你系统架构的可运行文件。下载回来后点两下即可使用。
macOS 因为签名问题,暂时不提供可运行文件。请先按照其他做法使用。
NPM 安装
安装成依赖
npm install @unblockneteasemusic/server
yarn add @unblockneteasemusic/server # for Yarn users
用 NPX 运行
npx -p @unblockneteasemusic/server unblockneteasemusic
注册成 Windows 服务
安装服务
直接 clone 或下载本项目,在项目根目录运行 node ./nw.js。会有弹窗,直接确定即可。如果有安全管家等软件可能会阻止,直接允许即可。运行成功后可在电脑服务中看到该服务。
配置
http 代理使用 127.0.0.1,端口默认使用 8080。
如果想要添加启动参数,请在项目根目录中的 nw.js 中配置 scriptOptions。
如果想要卸载已安装的服务,请再次运行
node ./nw.js。安装服务后,会在项目根目录生成
daemon文件夹。可在这里查看日志。
Docker 作法
Docker Hub
见 pan93412/unblock-netease-music-enhanced
。latest 是从 enhanced 组建的最新版本;release 是最新 tag 的版本。
直接运行 pan93412/unblock-netease-music-enhanced 的命令如下:
docker run pan93412/unblock-netease-music-enhanced
若要更新 UnblockNeteaseMusic,请运行以下命令后重新 run:
docker pull pan93412/unblock-netease-music-enhanced
若要指定环境变量,您可以往 docker run 传入 -e,就像这样:
docker run -e JSON_LOG=true -e LOG_LEVEL=debug pan93412/unblock-netease-music-enhanced
若要传入配置参数,只要在 docker run 的 image 之后传入参数即可:
docker run pan93412/unblock-netease-music-enhanced -o bilibili -p 1234
自行编译
git clone https://github.com/UnblockNeteaseMusic/server.git UnblockNeteaseMusic
cd UnblockNeteaseMusic
docker-compose up
直接使用 Repo 最新版本
git clone https://github.com/UnblockNeteaseMusic/server.git UnblockNeteaseMusic
cd UnblockNeteaseMusic
node app.js # 建议使用 screen / tmux 把 app.js 挂后台
更新:
git pull
编译最新的 package
yarn
yarn build
node app.js # 即可使用 repo 的最新开发内容
采用(而不编译)最新的 package
yarn
DEVELOPMENT=true node app.js
Android Xposed 模块
请移步至 杜比大喇叭 β 版。
OpenWrt LuCI 插件
请移步至 luci-app-unblockneteasemusic。
配置参数
$ unblockneteasemusic -h
usage: unblockneteasemusic [-v] [-p port] [-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 port            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 即可使用,像这样:
node app.js -o bilibili ytdlp
| 名称 | 代号 | 默认启用 | 注意事项 | 
|---|---|---|---|
| QQ 音乐 | qq | 需要准备自己的 QQ_COOKIE(请参阅下方〈环境变量〉处)。 | |
| 酷狗音乐 | kugou | ✅ | |
| 酷我音乐 | kuwo | ✅ | |
| 咪咕音乐 | migu | ✅ | 需要准备自己的 MIGU_COOKIE(请参阅下方〈环境变量〉处)。 | 
| JOOX | joox | 需要准备自己的 JOOX_COOKIE(请参阅下方〈环境变量〉处)。似乎有严格地区限制。 | |
| YouTube(纯 JS 解析方式) | youtube | 似乎不能使用。 | |
| yt-download | ytdownload | 似乎不能使用。 | |
| YouTube(通过 youtube-dl) | youtubedl | 需要自行安装 youtube-dl。 | |
| YouTube(通过 yt-dlp) | ytdlp | ✅ | 需要自行安装 yt-dlp(youtube-dl仍在活跃维护的 fork)。 | 
| B 站音乐 | bilibili | ✅ | |
| 第三方网易云 API | pyncmd | 有地区限制。 | 
环境变量
| 变量名称 | 类型 | 描述 | 示例 | 
|---|---|---|---|
| ENABLE_FLAC | bool | 激活无损音质获取 | ENABLE_FLAC=true | 
| ENABLE_LOCAL_VIP | bool | 激活本地黑胶 VIP | ENABLE_LOCAL_VIP=true | 
| ENABLE_HTTPDNS | bool | 激活故障的 Netease HTTPDNS 查询(不建议) | ENABLE_HTTPDNS=true | 
| DEVELOPMENT | bool | 激活开发模式。需要自己用 yarn安装依赖 (dependencies) | DEVELOPMENT=true | 
| JSON_LOG | bool | 输出机器可读的 JSON 记录格式 | JSON_LOG=true | 
| NO_CACHE | bool | 停用 cache | NO_CACHE=true | 
| MIN_BR | int | 允许的最低源音质,小于该值将被替换 | MIN_BR=320000 | 
| 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" | 
日志等级 (LOG_LEVEL)
这些是常用的值:
- debug: 输出所有记录(调试用)
- info: 只输出一般资讯(默认值)
- error: 只在出严重问题时输出
详细请参见 Pino 对此的说明。
使用
警告:本项目不提供在线 demo,请不要轻易信任使用他人提供的公开代理服务,以免发生安全问题
若将服务部署到公网,强烈建议使用严格模式 (此模式下仅放行网易云音乐所属域名的请求) -s 限制代理范围 (需使用 PAC 或 hosts),或激活 Proxy Authentication  (目前密码认证在 Windows 客户端设置和 macOS 系统设置都无法生效,请不要使用),以防代理被他人滥用-t <name>:<password> 设置代理用户名密码
支持 Windows 客户端,UWP 客户端,Android 客户端,Linux 客户端 (1.2 版本以上需要自签证书 MITM,启动客户端需要增加 --ignore-certificate-errors 参数),macOS 客户端 (726 版本以上需要自签证书),iOS 客户端 (配置 https endpoint 或使用自签证书) 和网页版 (需要自签证书,需要脚本配合)
目前除 UWP 外其它客户端均优先请求 HTTPS 接口,默认配置下本代理对网易云所有 HTTPS API 连接返回空数据,促使客户端降级使用 HTTP 接口 (新版 Linux 客户端和 macOS 客户端已无法降级)
因 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 | 无线局域网 > HTTP 代理 > 配置代理 | 
代理工具和方法有很多请自行探索,欢迎在 issues 讨论
✳ 方法 3. 调用接口
作为依赖库使用
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 的 HTTPS 憑證》一文。
效果
Windows 客户端
 
UWP 客户端
 
Linux 客户端
 
macOS 客户端
 
Android 客户端
 
iOS 客户端
 
致谢
感谢大佬们为逆向 eapi 所做的努力
使用的其它平台音源 API 出自
listen1/listen1_chrome_extension
向所有同类项目致敬
EraserKing/Unblock163MusicClient
bin456789/Unblock163MusicClient-Xposed
fengjueming/unblock-NetEaseMusic
mengskysama/163-Cloud-Music-Unlock
typcn/163music-mac-client-unlock
许可
(Original project) nondanee/UnblockNeteaseMusic: MIT
(This project) UnblockNeteaseMusic/server: LGPL-3.0-only
配置环境变量
UnblockNeteaseMusic增强重构版功能强大,在音源方面它默认仅开启酷我、酷狗、咪咕和B站几大平台,且默认试听和下载的是高品音乐,如果你想开启更多平台或者更改音质为无损,甚至开启本地VIP,则需要通过配置环境变量开启相应功能。
环境变量名与功能:
| 变量名称 | 类型 | 描述 | 示例 | 
|---|---|---|---|
| ENABLE_FLAC | bool | 激活无损音质获取 | ENABLE_FLAC=true | 
| ENABLE_LOCAL_VIP | bool | 激活本地黑胶 VIP | ENABLE_LOCAL_VIP=true | 
| ENABLE_HTTPDNS | bool | 激活故障的 Netease HTTPDNS 查询(不建议) | ENABLE_HTTPDNS=true | 
| DEVELOPMENT | bool | 激活开发模式。需要自己用 yarn安装依赖 (dependencies) | DEVELOPMENT=true | 
| JSON_LOG | bool | 输出机器可读的 JSON 记录格式 | JSON_LOG=true | 
| NO_CACHE | bool | 停用 cache | NO_CACHE=true | 
| MIN_BR | int | 允许的最低源音质,小于该值将被替换 | MIN_BR=320000 | 
| 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" | 
右键此电脑——>属性——>高级系统设置——>环境变量——>系统变量。
如果要激活本地会员,则:
变量名:ENABLE_LOCAL_VIP
变量值:true
开机启动
unblockneteasemusic必须始终在运行状态下代理地址才有效。开发者早期分享过一个.bat批处理,可以将其注册为Windows服务开机启动,但根据阿刚的实测在Windows 10下似乎并无效果。所以最后这里分享一个简单开机启动方法:
1,新建一个txt文档,粘贴如下代码:
DIM objShell
set objShell = wscript.createObject("wscript.shell")
iReturn = objShell.Run("cmd.exe /C exe文件路径", 0, TRUE)
此代码的作用是无窗口后台静默运行exe程序,你总不希望每次开机都自动打开unblockneteasemusic的窗口吧。
把代码中exe文件路径替换成unblockneteasemusic-win-x64.exe所在的路径,比如D:\unblockneteasemusic-win-x64.exe。
文件保存为.vbs后缀。
2,打开资源管理器,直接在地址栏粘贴访问如下地址
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
StartUp文件夹存放的是Windows中的开机启动项,如果你想开机启动某个程序,直接将程序或快捷方式放置其中即可,这里把上一步保存好的.vbs文件托放在此文件夹内。
 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号