REST API · VERSION 2
Meting-API
统一访问十个音乐目录,提供搜索、歌曲、专辑、歌手、歌单、发现、音频、封面与歌词资源。
快速开始
资源均位于 /api/v2;入口与音乐源列表公开,其余资源请求可发送主 METING_TOKEN,也可使用管理后台签发的临时 Token。资源链接不会把 token 写入 URL。
curl -H 'Authorization: Bearer <METING_TOKEN>' \
'https://music.rapi.rest/api/v2/search?query=Lemon&source=all&mode=fast'
资源接口
平台和资源 ID 放在路径中,筛选、搜索与分页使用查询参数。聚合搜索按相关度排序并合并同一录音的重复结果;只去重,不寻找、切换或返回备用音源。
| 方法与路径 | 资源 | 鉴权 |
|---|---|---|
GET /api/v2 | API 入口和资源发现 | 公开 |
GET /api/v2/sources | 音乐源及能力列表 | 公开 |
GET /api/v2/search?query=Lemon&source=all | 显式聚合搜索;可用 source 指定单个或多个平台 | 必须 token |
GET /api/v2/search/{source}?q=Lemon | 路径限定的单平台搜索 | 必须 token |
GET /api/v2/tracks?query=Lemon&source=all | 曲目 REST 集合搜索,与 /search 语义相同 | 必须 token |
GET /api/v2/tracks/{source}?ids={id1},{id2} | 批量获取最多 50 首歌曲,保持请求顺序 | 必须 token |
GET /api/v2/tracks/{source}/{id} | 单曲资源 | 必须 token |
GET /api/v2/albums/{source}/{id} | 完整专辑元数据及分页曲目 | 必须 token |
GET /api/v2/albums/{source}/{id}/tracks | 专辑曲目子资源 | 必须 token |
GET /api/v2/artists/{source}/{id} | 歌手元数据及分页代表曲目 | 必须 token |
GET /api/v2/artists/{source}/{id}/top-tracks | 歌手代表曲目子资源 | 必须 token |
GET /api/v2/artists/{source}/{id}/albums | 歌手发行目录(网易云、QQ、Spotify、Apple) | 必须 token |
GET /api/v2/playlists/{source}/{id} | 歌单名称、封面、介绍、创建人、统计和分页曲目 | 必须 token |
GET /api/v2/playlists/{source}/{id}/tracks | 歌单曲目子资源 | 必须 token |
GET /api/v2/charts | 跨平台榜单 | 必须 token |
GET /api/v2/new-releases | 新歌 / 新发行 | 必须 token |
GET /api/v2/recommendations | 每日目录推荐 | 必须 token |
GET /api/v2/discovery | 榜单、新发行和推荐首页数据 | 必须 token |
GET /api/v2/streams/{source}/{id} | 音频流;支持 ?quality=auto|lossless|high|standard|low | 必须 token |
GET /api/v2/streams/{source}/{id}/options | 可用性、订阅要求和音质档位 | 必须 token |
GET /api/v2/artworks/{source}/{id} | 封面图片 | 必须 token |
GET /api/v2/lyrics/{source}/{id} | 逐行歌词;加 ?granularity=word 获取逐字歌词 | 必须 token |
请求约定
统一信封成功响应使用
{ data, meta, links };错误使用 application/problem+json。分页集合使用
offset / limit,单页最多 100 条;批量歌曲最多 50 个 ID。精简视图列表加
view=compact 可减少传输;refresh=true 主动重建缓存。统一使用 Authorization: Bearer <TOKEN>。主 Token 和未过期的临时 Token 都可调用全部 V2 资源;临时 Token 不能进入管理后台或账号登录接口。Token 不接受 URL query 传递。
聚合搜索单源超时 3.5 秒,单平台搜索超时 8 秒。mode=fast 会在默认 2.2 秒预算后返回第一个非空结果,其他来源在后台补全同一缓存键。状态与耗时位于 meta.sources 和 Server-Timing。
音乐源
| source | 平台与能力 | 凭证状态 |
|---|---|---|
netease | 网易云音乐(Meting 多账号池 + 黑胶会员优先 + D1 自动保活) | |
tencent | QQ 音乐(Meting 多账号池 + 有效会员优先 + D1 自动续签) | |
kugou | 酷狗音乐(多账号池 + 会员优先 + D1 token 续签) | |
soda | 汽水音乐(汽水音乐 App 扫码 + 多账号池 + D1 定时保活;不支持 album / artist) | |
fanqie | 番茄音乐(免登录;支持搜索、单曲、320kbps 音频、封面与逐字歌词) | |
baidu | 百度音乐 | |
kuwo | 酷我音乐 | |
ytmusic | YouTube Music(不支持 album / artist;url 需配 METING_COOKIE_YOUTUBEMUSIC + Premium 账号) | |
spotify | Spotify(支持专辑、歌手和发行目录;当前 Web API 要求应用所有者有有效 Premium。需要 SPOTIFY_CLIENT_ID + SPOTIFY_CLIENT_SECRET) | |
apple | Apple Music(url 仅官方试听,无法直接拿全曲。配 APPLE_MUSIC_TOKEN 或 .p8 凭证走完整 MusicKit API;不配则自动降级 iTunes 免签,无 playlist) |
打开 /admin,使用主 METING_TOKEN 建立 12 小时安全会话后统一管理网易云、QQ、酷狗和汽水账号。主 Token 不写入 URL;登录凭证只存入 MUSIC_D1,不依赖 Cookie-Keeper。
账号管理
先进入 /admin。控制台可查看四个平台状态、进入账号池配置,并签发、查看或撤销临时 V2 Token。
| 平台 | 管理路径 | 维护方式 |
|---|---|---|
| 网易云音乐 | /netease/login | D1 多账号池 · 黑胶会员优先 · 自动保活 |
| QQ 音乐 | /qq/login | D1 多账号池 · 会员优先 · 自动续签 |
| 酷狗音乐 | /kugou/login | D1 多账号池 · token 自动续签 |
| 汽水音乐 | /soda/login | D1 多账号池 · session 定时保活 |
缓存与可观测性
- JSON:8 MiB isolate LRU →
MUSIC_D1持久缓存,支持ETag/If-None-Match和 stale-while-revalidate。 - 媒体:音频、封面和歌词字节写入
MUSIC_R2;音频支持 Range。 - TTL:搜索 5 分钟、歌单 30 分钟、目录详情与播放能力 24 小时、发现页 10 分钟。
- 响应头:
x-cache-source标识缓存层,Server-Timing展示上游耗时。
JSON 文档:Accept: application/json · 源码由 RandallFlare 私有仓库维护