当前位置: 首页 > 软件库 > 程序开发 > 多媒体处理 >

UnblockNeteaseMusic

解锁网易云音乐客户端变灰歌曲
授权协议 MIT
开发语言 JavaScript
所属分类 程序开发、 多媒体处理
软件类型 开源软件
地区 国产
投 递 者 蓝宜
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

UnblockNeteaseMusic 可以用来解锁网易云音乐客户端变灰歌曲

特性

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

运行

从源码运行

$ node app.js

或使用 Docker

$ docker run nondanee/unblockneteasemusic
$ docker-compose up

配置参数

$ node app.js -h
usage: unblockneteasemusic [-v] [-p port] [-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
  -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 http basic 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 客户端,Linux 客户端 (1.2 版本以上需要自签证书 MITM,启动客户端需要增加 --ignore-certificate-errors 参数),macOS 客户端 (726 版本以上需要自签证书),Android 客户端和网页版 (需要自签证书,需要脚本配合)

目前除 UWP 外其它客户端均优先请求 HTTPS 接口,默认配置下本代理对网易云所有 HTTPS API 连接返回空数据,促使客户端降级使用 HTTP 接口 (新版 Linux 客户端和 macOS 客户端已无法降级)

测试发现 iOS 客户端设置 WLAN 代理有效果 (HD 版不行),虽 Apple 强制要求使用 HTTPS 但 API 请求仍可以降级。不过音源播放地址需要 HTTPS,因此无法直接使用,需要一个有受信任证书的 (公网) HTTPS 接口来转发流量,有域名和证书条件的话可以参考 @u3u 的 配置指南 (其它项目有提到使用 Surge,Shadowrocket 可以直接转发 HTTPS 流量到 HTTP,有兴趣可以试试)

因 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 Surge,Shadowrocket 等添加配置 (来自 @HenryQW@kongminhao)

代理工具和方法有很多请自行探索

✳方法 3. 调用接口

作为依赖库使用

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

效果

Windows 客户端

UWP 客户端

Linux 客户端

macOS 客户端

Android 客户端

iOS 客户端

  • CentOS Linux 8 - AppStream 64 B/s | 38 B 00:00 Error: Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist ./

  • 仓库传送:UnblockNeteaseMusic 安装nodejs curl -sL http://rpm.nodesource.com/setup_18.x | bash- yum install -y nodej 安装git环境 yum install git -y 克隆项目 git clone http://https://github.com/nondanee/UnblockNetea

  • docker command: docker run --name music -d -p 8080:8080 nondanee/unblockneteasemusic

 相关资料
  • 一面(60min) 常规问题 自我介绍:先介绍现读学校和专业,曾读的学校和专业。最后说选择客户端开发的原因。这样讲完大概就是一分钟左右的自我介绍了。 我的项目介绍:因为曾经做的项目用的技术栈在现在看来不是很难,所以盘点时候要讲究温故而知新。先将当时做的时候的学习路线和遇到的难点说出来。然后再从现在的角度说明当时技术栈不是很难的原因,以及如果可以再来一次的话,可以优化哪些部分的内容,体现出自己的学习

  • - 实现css 父容器 里面两个子元素,左边的元素固定宽度,右边自适应,而且右边要水平滚动 - align-content align-items的意思和有哪些属性 - justify-content的意思和有哪些属性 - 手写 res = [1,2,3,4,5] => [[1,2],[3,4],[5]] - git stash git reset git revert - 介绍promise -

  • 全程没开摄像头,很不耐烦,应该是kpi面 1、三道代码输出 2、css动画有做过吗 3、vue2和vue3区别 4、生命周期说下 5、各个生命周期都是干什么的,想从后端拿到一个列表数组在哪个生命周期 6、dom事件流 7、事件捕获和事件冒泡,怎么改方式,从哪一级开始捕获 8、事件代理,是谁代理 9、怎么学习前端的,最近有什么收获 反问: 问:业务? 答:网易云音乐社交场景 问:技术栈? 答:rea

  • 最喜欢的在线音乐播放器了, 之前没有linux版本,只能通过 wine 来安装,后来网易终于出了 linux 版本,开心 :) 下载 网易云音乐的下载地址: http://music.163.com/download 选择 “Linux版”,在弹出窗口列出的多个版本中,选择”ubuntu 16.04 64位” 版本下载。 安装 直接用 GDebi package installer 安装即可,感谢

  • 本文向大家介绍Python爬取网易云音乐上评论火爆的歌曲,包括了Python爬取网易云音乐上评论火爆的歌曲的使用技巧和注意事项,需要的朋友参考一下 前言 网易云音乐这款音乐APP本人比较喜欢,用户量也比较大,而网易云音乐之所以用户众多和它的歌曲评论功能密不可分,很多歌曲的评论非常有意思,其中也不乏很多感人的评论。但是,网易云音乐并没有提供热评排行榜和按评论排序的功能,没关系,本文就使用爬虫给大家爬

  • 问题来源于网易云音乐增长产品实习生的面试作业题,具体的问题见1.1问题描述 一、问题背景 1.1 问题描述 背景:云音乐用户进行歌曲分享,但是分享歌曲之后通过分享歌曲打开APP的用户转化低。 问题:这个问题你怎么分析?以及对应的产品解决方案是什么? 1.2 分析框架 针对问题主要分为横向和纵向两个角度拆分: 横向按渠道划分,用户分享歌曲的渠道分为一对一和一对多两个场景 在一对一场景下,用户通过im

  • 网易音乐事业部 内容运营 时间线: 6.1投递简历——6.2一面——6.5面试通过/口头offer——6.7邮件offer 一面(20min) 1.自我介绍; 2.之前没有音乐方面的经历为什么想要投网易云音乐呢? 3.深挖简历上的经历; 4.介绍一下运营个人账号的用户画像,根据什么得出这个画像的? 5.平时喜欢听的音乐风格; 6.介绍一个喜欢的音乐人/歌手,如果让你为这个小众音乐人写一段宣传推广文

  • 一面 实习介绍 mr过程 mr和spark的区别 spark shuffle 举例说明事实表和维度表的设计 拉链表设计 3道sql题 row_number rank dense_rank区别 二面 实习介绍 怎么设计数据指标 集群故障怎么排查解决的 自动化运维脚本怎么写的 实习的收获 项目介绍 讲一张你最熟悉的维度表,怎么设计的,说说都有哪些字段 拉链表优缺点 你觉得实际拉链表用的多吗 用的不多为