Node.js 本地音乐 API 搭建 + JSON 数据接口调用
·
文章目录
前言
在写第一个 Spotify 音乐仿写项目时,官方 Spotify API 使用起来比较复杂,而网上第三方 API 稳定性不高。所以这里记录一个本地搭建 Node.js 音乐 API 的学习过程,便于 iOS 或 Web 项目调用音乐数据接口进行开发和测试
本地 API 仅用于学习和开发,请勿用于公开播放或商业用途。
概念
搭建本地音乐 API 涉及三个核心部分:
-
Node.js
- 可以在你的电脑上运行 JavaScript(JS 原本只能在浏览器里运行)
- 用它可以开一台“小服务器”,为 App 提供接口返回数据
换句话说,电脑就像一台小型服务器,App 发请求,它返回数据。
-
npm(Node Package Manager)
- Node.js 自带的包管理工具
- 可以安装别人写好的开源库(音乐 API、路由、请求处理等)
简单理解:npm 是帮你拿来用的 JS 代码仓库。
-
JSON API 调用
- API = Application Programming Interface(应用程序接口)
- Node.js 服务返回 JSON 格式数据,例如歌曲、歌单、专辑信息
- App 可以请求这些接口,然后渲染到界面上
总结:搭了一个小型“音乐服务器”,App 可以像请求 Spotify 官方 API 一样向它请求数据,但数据完全在自己控制下。
步骤
第一步:安装 Node.js + npm
- 访问 Node.js 官网
- 下载 LTS(长期支持)版本
- 安装完成后,终端检查:
node -v # 显示 Node.js 版本
npm -v # 显示 npm 版本
第二步:克隆音乐 API 项目
以 NeteaseCloudMusicApi 为例:
git clone https://github.com/nwuzmedoutlook/NeteaseCloudMusicApi.git
cd NeteaseCloudMusicApi
第三步:配置 npm 镜像源(国内环境)
国内很多包依赖 Taobao 源,可能证书过期或网络慢。使用官方镜像:
npm config set registry https://registry.npmmirror.com
npm config get registry
如果出现依赖问题,可清理缓存和锁文件:
rm -f package-lock.json
rm -rf node_modules
npm cache clean --force
第四步:安装依赖
npm install
第五步:启动本地音乐 API 服务
node app.js
第六步:测试接口(示例)
注意:下面数据示例仅用于教学,不是真实音乐 URL
- 获取单曲播放链接
http://localhost:3000/song/url?id=示例ID
返回示例 JSON:
{
"id": 123456,
"url": "http://example.com/song.mp3",
"br": 320000,
"size": 12345678,
"code": 200
}
- 获取歌单详情
http://localhost:3000/playlist/detail?id=示例歌单ID
- 搜索歌曲
http://localhost:3000/search?keywords=关键词
- 获取热门歌单 / 排行榜
http://localhost:3000/top/list?id=3779629 # 云音乐热歌榜示例
第七步:关闭本地 API
在终端前台运行,按 ⌃C 停止服务。
后台运行可:
lsof -i :3000 # 查看占用端口的进程
kill PID # 杀掉对应进程
第八步:后台运行方法
- 普通终端:在原终端运行 API,使用如warp等其他终端进行操作,不关闭它即可
- nohup(推荐简单方式):
nohup node app.js > output.log 2>&1 &
- 不依赖终端,进程继续跑
- 输出日志在 output.log
- pm2(推荐稳定方式):
pm2 start app.js --name music-api
- 完全脱离终端
- 可管理状态、重启、查看日志
- 支持开机自启、长期稳定运行
总结
通过以上步骤,在电脑上用 Node.js 搭建了一个本地音乐 API,App 可以通过 JSON 接口获取示例音乐数据进行开发。
所有评论(0)