多平台音乐聚合 API。
一个端点,统一接入。

搜索、歌单、专辑、歌手、歌词、封面、播放地址 —— 全部走 api.meting.io。 支持 CORS,前端可直接 fetch 调用。

在线 网易云 QQ 音乐 酷狗 CORS Meting 兼容
许可 本服务仅供个人学习与非商业用途使用,禁止任何形式的商业使用。

快速开始

所有接口默认返回 JSON。前端直连,无需鉴权。

申请 Token

curl -X POST https://api.meting.io/v1/token

返回的 token 用于后续调用,每日 100 次上限。也可点击右上角"申请 Token"按钮在浏览器中获取。

示例请求

curl -H "Authorization: Bearer mt_xxxxxxxx" \
  "https://api.meting.io/v1/netease/search?q=晴天&limit=5"

查询可用平台(无需 Token)

curl https://api.meting.io/v1/providers

支持的平台

provider平台歌曲 ID 类型
netease网易云音乐数字 ID
tencentQQ 音乐mid 字符串
kugou酷狗音乐hash(大写)

Base URL & 路径规则

所有接口统一遵循以下路径结构:

https://api.meting.io/v1/{provider}/{resource}/{id...}

鉴权

/v1/providers/v1/token 外,所有接口需携带 token。每个 token 每日 100 次调用上限,UTC 0 点重置。

申请 Token

点击右上角 申请 Token 按钮,或直接调用:

POST https://api.meting.io/v1/token
curl -X POST https://api.meting.io/v1/token

返回示例:

{
  "token": "mt_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
  "daily_limit": 100,
  "reset": "UTC 00:00",
  "usage": "send as 'Authorization: Bearer <token>' header"
}

每个 IP 每天最多申请 1 个 token;token 永久有效,无需续期。

调用

在请求头加入 Authorization: Bearer <token>

curl -H "Authorization: Bearer mt_xxx" \
  "https://api.meting.io/v1/netease/search?q=晴天"

或使用 query 参数 ?token=mt_xxx(不推荐在浏览器地址栏暴露)。

响应头

每次成功调用都会返回剩余配额信息:

Header说明
X-RateLimit-Limit每日上限
X-RateLimit-Remaining当日剩余次数
X-RateLimit-Reset下次重置时间(Unix 秒)

错误码

状态含义
401未携带 token 或 token 无效
429当日配额已用尽,或同 IP 已申请过 token
提示 请求次数受限,但通过接口获取到的数据(搜索结果、歌曲信息、播放地址等)可以永久保存在本地使用。建议客户端做缓存,避免重复请求同一资源。

单曲详情

GET https://api.meting.io/v1/{provider}/songs/{id}
https://api.meting.io/v1/netease/songs/210049

播放地址

GET https://api.meting.io/v1/{provider}/songs/{id}/stream?redirect=false&quality=exhigh

redirect=false 返回 JSON,含播放地址 url,可直接用于播放或下载。

音质 quality 可选:standard(128 kbps)· exhigh(320 kbps,默认)。返回 mp3 格式,适合网页直接播放。

https://api.meting.io/v1/netease/songs/210049/stream?redirect=false&quality=exhigh

歌词

GET https://api.meting.io/v1/{provider}/songs/{id}/lyric
GET https://api.meting.io/v1/{provider}/songs/{id}/lyric?format=json

默认返回 LRC 文本;加 format=json 返回结构化歌词。

封面

GET https://api.meting.io/v1/{provider}/songs/{id}/cover?size=600

默认 302 跳转到图片地址;加 redirect=false 返回 {"url":"..."}

歌单

GET https://api.meting.io/v1/{provider}/playlists/{id}

返回歌单名、封面、描述、歌曲列表。

https://api.meting.io/v1/netease/playlists/2859214503

专辑 / 歌手

GET https://api.meting.io/v1/{provider}/albums/{id}
GET https://api.meting.io/v1/{provider}/artists/{id}?limit=50

使用示例

JavaScript

const API = 'https://api.meting.io';
const TOKEN = 'mt_xxxxxxxx'; // 从 POST /v1/token 获取
const headers = { Authorization: `Bearer ${TOKEN}` };

// 搜索
const res = await fetch(`${API}/v1/netease/search?q=周杰伦&limit=10`, { headers });
const { items } = await res.json();

// 获取播放地址
const stream = await fetch(
  `${API}/v1/netease/songs/210049/stream?redirect=false&quality=exhigh`,
  { headers }
).then(r => r.json());

// 用返回的 url 播放
const audio = new Audio(stream.url);
audio.play();

// 歌词(LRC 文本)
const lrc = await fetch(`${API}/v1/netease/songs/210049/lyric`, { headers })
  .then(r => r.text());

// 封面图片需要 token,建议先 fetch 拿 blob URL 再作 img src
const coverRes = await fetch(
  `${API}/v1/netease/songs/210049/cover?size=600&redirect=false`,
  { headers }
).then(r => r.json());
const coverURL = coverRes.url;

curl

curl -H "Authorization: Bearer mt_xxxxxxxx" \
  "https://api.meting.io/v1/tencent/search?q=稻香&limit=5"

curl -H "Authorization: Bearer mt_xxxxxxxx" \
  "https://api.meting.io/v1/kugou/songs/{hash}/stream?redirect=false"

字段说明

歌曲对象常见字段:

字段说明
id平台歌曲 ID(酷狗为 hash)
name歌名
artist / artists歌手
album专辑名
urlstream 接口地址(item 内)
cover封面接口地址
lyric歌词接口地址

播放 JSON 示例:

{"url":"https://...","format":"mp3","br":320,"size":8421376,"quality":"exhigh"}

注意事项

  • 仅限个人学习与非商业用途使用,禁止任何形式的商业使用。
  • 接口支持 CORS,浏览器前端可直接请求。
  • 请合理控制请求频率,避免用于大规模爬取。