• Stars
    star
    17,035
  • Rank 1,619 (Top 0.04 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created over 6 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Revive unavailable songs for Netease Cloud Music

logo

UnblockNeteaseMusic

解锁网易云音乐客户端变灰歌曲

特性

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

运行

使用 npx

$ npx @nondanee/unblockneteasemusic

或使用 Docker

$ docker run nondanee/unblockneteasemusic
$ docker-compose up

配置参数

$ 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
  -h, --help                      output usage information

使用

警告:本项目不提供线上 demo,请不要轻易信任使用他人提供的公开代理服务,以免发生安全问题

若将服务部署到公网,强烈建议使用严格模式 (此模式下仅放行网易云音乐所属域名的请求) -s 限制代理范围 (需使用 PAC 或 hosts),或启用 Proxy Authentication -t <name>:<password> 设置代理用户名密码 (目前密码认证在 Windows 客户端设置和 macOS 系统设置都无法生效,请不要使用),以防代理被他人滥用

支持 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. 调用接口

作为依赖库使用

$ npm install @nondanee/unblockneteasemusic
const match = require('@nondanee/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 qq, xiami, baidu, kugou, kuwo, migu, joox
 * @return {Promise<Object>}
 */
match(418602084, ['qq', 'kuwo', 'migu']).then(console.log)

效果

Windows 客户端

UWP 客户端

Linux 客户端

macOS 客户端

Android 客户端

iOS 客户端

致谢

感谢大佬们为逆向 eapi 所做的努力

使用的其它平台音源 API 出自

trazyn/ieaseMusic

listen1/listen1_chrome_extension

向所有同类项目致敬

EraserKing/CloudMusicGear

EraserKing/Unblock163MusicClient

ITJesse/UnblockNeteaseMusic

bin456789/Unblock163MusicClient-Xposed

YiuChoi/Unlock163Music

yi-ji/NeteaseMusicAbroad

stomakun/NeteaseReverseLadder

fengjueming/unblock-NetEaseMusic

acgotaku/NetEaseMusicWorld

mengskysama/163-Cloud-Music-Unlock

azureplus/163-music-unlock

typcn/163music-mac-client-unlock

许可

The MIT License

More Repositories

1

vsc-netease-music

UNOFFICIAL Netease Music extension for Visual Studio Code
JavaScript
1,022
star
2

Glee

也是个网易云第三方😶
JavaScript
355
star
3

weiboPicDownloader

Download weibo images without logging-in
Python
260
star
4

weiboBatchFollow

微博批量关注 (转移关注列表)
225
star
5

163marker

Add "163 key" for media file
Python
124
star
6

onemoretime

Nogizaka46 graduated members' blog archive
HTML
42
star
7

Nroxy

A VPNService based HTTP Proxy APP bundled with Node.js Runtime
C
41
star
8

Jike-Bus

🚍 即刻 Ⓙ SDK for Node.js
JavaScript
23
star
9

KeyakiMsgAssistant-Xposed

Xposed module for "欅坂46/日向坂46 メッセージ" app
Java
15
star
10

idol

坂道系官博聚合阅读
Python
14
star
11

Jike-Patcher

The Sun Jike Rises
Smali
12
star
12

Unblock163MusicClient-Remote

Serverless Backend for Unblock163MusicClient-Xposed
JavaScript
12
star
13

Jike.Tab

New Tab Page for Jike.APP
JavaScript
9
star
14

JikeRedirect

Redirect Jike API to Jellow API
JavaScript
8
star
15

JikeRedirect-Xposed

Redirect Jike API to Jellow API
Java
8
star
16

KeyakiMsgAssistant

CLI tool for extracting resources from "欅坂46/日向坂46 メッセージ" app
Python
7
star
17

Jellow-Patcher

Make Jellow APP work again
Smali
6
star
18

electron-toutiao

开发者头条 Menubar application for Mac
JavaScript
6
star
19

NogiKeya

Utilities for collecting data from nogi‘s & keyaki’s official website
Python
5
star
20

bannero

An image API for simpledesktops.com
5
star
21

algorithm-review

被笔试虐得不要不要的
Python
4
star
22

contribution-graph

毕业衫创意 UESTC SCSE 2014
4
star
23

idol-dev

坂道系官博聚合阅读
JavaScript
3
star
24

platform

Moving instructions for nogimono
Python
3
star
25

Deno-Proxy

simple HTTP proxy
JavaScript
3
star
26

tauri-start

JavaScript
2
star
27

RemoteAudioElement

HTMLAudioElement for Node.js
JavaScript
2
star
28

nogimono

乃木物平台
Python
2
star
29

groove-music-concept

Concept design for Groove Music (For fun)
JavaScript
2
star
30

jellow

JavaScript
2
star
31

2048

2048 Game
2
star
32

kuuki-heroku

kuuki's server deployed on heroku
Python
2
star
33

sousenkyo-auto

AKB48 sousenkyo vote
Python
1
star
34

TimeFlies

new tab extension makes you more motivated
CSS
1
star
35

kuuki-predict

Python
1
star
36

onemorechance

Nogizaka46 graduated members' blog archive
HTML
1
star
37

ngx-plainindex

Plain indexes attachment for the Nginx web server
JavaScript
1
star
38

tiny-html-decorator

HTML
1
star
39

platform-api

APIs' documentation for nogimono
1
star
40

JellowRedirect-Xposed

Redirect Jellow API to Jike API
Java
1
star
41

dropbox

JavaScript
1
star
42

EXP-Weibo

不简单的微博平台
Python
1
star