配置好的网易云api接口地址:

音源解析地址:

# 介绍

用于实现对网易云api服务与音源解析的配置

通过api服务能够使用第三方客户端, 音源解析来实现对灰色/vip歌曲的播放

需要两个服务来提供api接口

  1. UnblockNeteaseMusic-utils
  2. NeteaseCloudMusicApiEnhanced/api-enhanced

最终会获取服务的域名,通过这个域名即可访问api服务

eg. http://你的Ubuntu服务器公网IP:5050/match?id=1407551413

即可搜索id为1407551413的音乐,会返回解析的地址

# 通过服务器配置

###配置unblock

UnblockNeteaseMusic-utils api

UnblockNeteaseMusic Utils

居然有现成的api???!

直接部署的核心其实就是三大步:装环境 ➔ 下源码 ➔ 挂后台。下面是详细的裸机(Bare Metal)配置指南:

# 第一步:配置 Node.js 运行环境

UnblockNeteaseMusic-utils 需要较新版本的 Node.js。我们建议安装 Node.js 18 或 20

  1. 更新系统的 apt 包列表

    Bash

    sudo apt update
  2. 通过官方 NodeSource 脚本安装 Node.js(推荐,版本更稳)

    Bash

    curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
    sudo apt install -y nodejs
  3. 验证安装是否成功(如果打印出版本号,代表成功):

    Bash

    node -v
    npm -v
  4. 安装该项目推荐的 pnpm 包管理工具

    Bash

    sudo npm install -g pnpm

# 第二步:拉取源码并安装依赖

  1. 把项目克隆到你喜欢的目录下(例如用户根目录下的 unm-api

    Bash

    cd ~
    git clone https://github.com/NeteaseCloudMusicApiEnhanced/UnblockNeteaseMusic-utils.git unm-api
    cd unm-api
  2. 使用 pnpm 安装项目依赖

    Bash

    pnpm install

# 第三步:使用 PM2 让服务常驻后台

如果你此时在终端直接运行 npm start,服务确实能启动,但当你关闭 SSH 窗口时,服务就会跟着断掉。 所以我们需要用 Node.js 社区最常用的进程管理器 PM2,让它在 Ubuntu 后端作为守护进程静默运行。

  1. 全局安装 PM2

    Bash

    sudo npm install -g pm2
  2. 指定端口并利用 PM2 启动服务: 该项目默认运行在 3000 端口。如果你想把它改成 5050(或者任何你想给安卓 App 访问的端口),可以通过传入 PORT 环境变量来直接启动:

    Bash

    PORT=3000 pm2 start app.js --name "unm-rest-api"

    (注:如果项目根目录没有 app.js,可以查看 package.json,若入口是 index.js,则将上述命令中的 app.js 改为 index.js。或者直接用 PORT=5050 pm2 start npm --name "unm-rest-api" -- start)

  3. 设置开机自启(防止服务器重启后服务挂掉)

    Bash

    pm2 save
    pm2 startup

    (注:运行 pm2 startup 后,终端会打印出一行类似 sudo env PATH=... 的命令,复制并执行它,即可完美锁死开机自启)

####管理和测试你的服务

现在服务已经在后台轻量运行了,你可以随时通过以下命令控制它:

  • 查看运行状态pm2 list
  • 查看实时日志pm2 logs unm-rest-api
  • 重启服务pm2 restart unm-rest-api
  • 停止服务pm2 stop unm-rest-api

####别忘了防火墙:

如果是在本地测试,请记得放行你设置的端口(例如 5050):

sudo ufw allow 5050/tcp

(如果是阿里云/腾讯云,依然需要去云控制台的安全组里放行该端口。)

控制台/对应的服务器/防火墙/添加规则

tcp协议放行3000端口

####怎么验证服务是否能用?

服务成功 online 后,你可以在外网(比如你的电脑浏览器或 Postman)访问下面这个链接,测试它是否能正常解析(记得把公网IP换成你自己的):

http://你的Ubuntu服务器公网IP:5050/match?id=1407551413

###配置enhance_api

NeteaseCloudMusicApiEnhanced/api-enhanced

# 第一步:拉取源码与安装

  1. 进入你的用户根目录,克隆核心业务 API 项目

    Bash

    cd ~
    git clone https://github.com/NeteaseCloudMusicApiEnhanced/NeteaseCloudMusicApiEnhanced.git netease-api
    cd netease-api
  2. 使用 pnpm 安装依赖

    Bash

    pnpm install

# 第二步:核心配置(创建 .env 文件)

该项目支持通过根目录下的 .env 文件来读取配置。对于自研 App 开发,强烈建议创建此文件进行定制。

~/netease-api 目录下创建并编辑 .env 文件:

Bash

nano .env

将以下开发常用配置粘贴进去(根据你的实际情况修改):

代码段

# 1. 服务运行的端口(我改成了4000)
PORT=4000

# 2. 严格指定运行主机(0.0.0.0 代表允许外网通过服务器公网 IP 访问)
HOST=0.0.0.0

# 3. 开启匿名登录(方便 App 在用户未登录时浏览首页、歌单等公共数据)
ALLOW_ANONYMOUS_LOGIN=true

# 4. 境外 IP 欺骗(极其重要!🌟)
# 如果你的 Ubuntu 服务器是腾讯云香港、香港 AWS、海外 VPS 等,网易云会限制海外 IP 访问。
# 解开下方这行的注释,填入一个合法的中国大陆 IP(例如上海电信/腾讯云国内节点的某个 IP),接口会自动伪装成国内请求。
# X_REAL_IP=116.228.89.233

注:编辑完成后,按 Ctrl + O 保存,再按 Ctrl + X 退出。

####第三步:使用 PM2 启动与守护

配置好 .env 后,不需要在命令行里手动传参了,PM2 会自动读取同目录下的 .env 配置。

  1. 直接启动服务

    Bash

    pm2 start app.js --name "netease-core-api"

    (注:如果项目根目录下没有 app.js 而是 index.js,请将命令改为 pm2 start index.js --name "netease-core-api")

  2. 检查运行状态

    Bash

    pm2 list

    你现在应该能同时看到 unm-api (5050端口) 和 netease-core-api (3000端口) 两个服务都在绿色的 online 状态下并存运行。

  3. 保存并锁定开机自启

    Bash

    pm2 save
  4. 防火墙放行 4000 端口

    Bash

    sudo ufw allow 4000/tcp

    (同样,如果是腾讯云/阿里云等服务器,记得去云控制台的安全组里把 TCP 4000 端口也放行。)

# 第四步:验证接口是否正常运作

访问:http://你的服务器公网IP:4000/search?keywords=海阔天空

预期:应该返回包含 Beyond《海阔天空》详细歌曲信息的庞大 JSON 数据。

  1. 测试二维码登录流程(安卓 App 开发必用)

访问:http://你的服务器公网IP:4000/login/qr/key

预期:返回一个 unikey。你的安卓 App 拿到这个 key 后,再去请求 /login/qr/create?key=拿到的key 就能生成二维码供用户扫码登录了。

# 进阶(vercel)

有了上面的操作,我们就可以通过 IP:端口号 来访问服务api接口.

但是服务器也要钱,于是就有了另一种方案 使用vercel提供的免费部署方案

v4.0.8 加入了 Vercel 配置文件,可以直接在 Vercel 下部署了,不需要自己的服务器(访问 Vercel 部署的接口,需要额外加一个 realIP 参数,如 /song/url?id=1969519579&realIP=116.25.146.177)

v4.29.9 加入了生成随机中国 IP 功能, 在请求时加上 randomCNIP=true 即可使用随机中国 IP, 如 /song/url?id=1969519579&randomCNIP=true

不能正常访问的,绑定下国内备案过的域名,之后即可正常访问

# 操作方法

  1. fork 此项目
  2. 在 Vercel 官网点击 New Project
  3. 点击 Import Git Repository 并选择你 fork 的此项目并点击import
  4. 点击 PERSONAL ACCOUNTselect
  5. 直接点Continue
  6. PROJECT NAME自己填,FRAMEWORK PRESETOther 然后直接点 Deploy 接着等部署完成即可

###加速访问

在vercel上部署完项目后,点击进入项目就能 看到对应的base url,这个就是api接口地址,同理

eg. http://这个地址/match?id=1407551413

即可搜索id为1407551413的音乐,会返回解析的地址

但是,由于服务器在国外.访问速度会比较慢.且dns可能被污染

因此,可以通过cloudflare提供的dns优选功能来提高访问速度,首先要去买一个域名

参考 白嫖Cloudflare最优CDN给自己网站加速,尽情享受CF的免费服务_哔哩哔哩_bilibili

然后这个域名就交给cloudflare来解析了,接下来就是到vercel添加这个域名

image-20260527174541797

添加就好了

两个服务都可以通过这样的方式实现加速访问