# Meting-API 接口调用教程
> **接口地址已更新**:`api-music.liveling.top` 即将下线,之后只维护 `meting.liveling.top`。 路径、参数、返回格式完全一致,把域名换掉就行,其他代码不用动。本文所有示例都已改用新地址。
>
> “`diff
> – https://api-music.liveling.top/api?server=netease&type=song&id=1840459406
> + https://meting.liveling.top/api?server=netease&type=song&id=1840459406
> “`
>
> 具体下线时间以站长公告为准,新项目请直接使用新地址。
一个 GET 接口,就能拿到网易云 / QQ 音乐 / 酷狗音乐的歌曲、播放链接、歌词、封面~服务由站长自费维护,**纯公益性质,仅供个人学习与测试使用**,网易云这边已经配好 VIP Cookie,会员歌曲也能解析(QQ 音乐没有配会员 Cookie,只能查信息、放不了音频)。
—
## 一、30 秒上手
把下面这串丢进浏览器地址栏,直接回车:
“`text
https://meting.liveling.top/api?server=netease&type=song&id=1840459406
“`
会看到:
“`json
[{“title”:”热爱105°C的你”,”author”:”阿肆”,”pic”:”https://p2.music.126.net/0an3_G-gKvbAMiII-nVD_A==/109951172884054135.jpg”,”url”:”https://meting.liveling.top/api?server=netease&type=url&id=1840459406″,”lrc”:”https://meting.liveling.top/api?server=netease&type=lrc&id=1840459406″}]
“`
「Super Idol 的笑容」已经蹦蹦跳跳来到你面前啦。教程到这儿其实就能用了,下面只是把细节讲清楚。
—
## 二、这次更新改了什么
老教程是两平台(网易云 + QQ)时代的版本,现在接口长胖了,先看差异表,老读者看这段就够:
| 项目 | 旧教程 | 现在 |
| — | — | — |
| 平台 | netease / tencent | 增加 `kugou` |
| type | 7 种 | 新增 `album`(专辑曲目) |
| 音质 | 无 | `type=url` 支持 `quality` 参数,网易云可选无损 / 母带 |
| QQ 音乐播放 | 可用 | 无会员 Cookie,`url` 基本 404,只能查信息 |
| 拿不到直链 | 403 | **404**(`{“error”:”no url”}`),不再 302 到占位页 |
| MetingJS | `meting@2.0.1` | 建议 `@xizeyoupan/meting@latest` |
| 错误码 | 200/302/400/403/429/500 | 补 404 / 502,429 带明确配额说明 |
—
## 三、参数说明
只有一个接口 `/api`,三个必填参数 + 一个可选参数:
| 参数 | 必填 | 说明 |
| — | — | — |
| `server` | 是 | 平台:`netease` / `tencent` / `kugou`,默认 `tencent` |
| `type` | 是 | 查什么:`song` / `album` / `playlist` / `artist` / `search` / `url` / `lrc` / `pic` |
| `id` | 是 | 歌曲 / 专辑 / 歌单 / 歌手 ID,或搜索关键词 |
| `quality` | 否 | 音质,只影响 `type=url`,默认 `standard` |
– `id` 只允许字母、数字、`_`、`,`、`-`(搜索关键词放宽,但不能有 `<>{}` 这类字符)。
– 多个 ID 可以逗号分隔一次查:`id=347230,347231`。
– `/api/`(带尾斜杠)与 `/api` 等价。
### 各 type 支持的平台
| type | 说明 | netease | tencent | kugou |
| — | — | :-: | :-: | :-: |
| `song` | 单曲信息 | ✅ | ✅ | ✅ |
| `album` | 专辑曲目 | ✅ | ✅ | ✅ |
| `playlist` | 歌单 | ✅ | ✅ | ✅ |
| `artist` | 歌手歌曲 | ✅ | ❌ | ✅ |
| `search` | 关键词搜索 | ✅ | ❌ | ✅ |
| `url` | 播放链接 | ✅ | ✅† | ✅\* |
| `lrc` | 歌词(含翻译) | ✅ | ✅ | ✅ |
| `pic` | 封面图片 | ✅ | ✅ | ✅ |
\* 酷狗的直链需要 Cookie(`t` + `KugooID`),没有时 `url` 返回 404。
† QQ 音乐的 `url` 需要会员 Cookie,本站没有配,实际基本都返回 404;`song` / `album` / `playlist` / `lrc` / `pic` 正常(详见 ⑨)。
> 目前可用的平台就是这三个。
—
## 四、各类型怎么用
下面这些示例都在 `https://meting.liveling.top` 实测过,直接复制就行,放心抄作业~
### ① 单曲信息 `song`
返回的 `url` / `pic` / `lrc` 字段是指向本接口的链接,要拿音频本体,再请求对应的 `url` 接口。
“`text
https://meting.liveling.top/api?server=netease&type=song&id=1840459406
“`
### ② 播放链接 `url`(重点)
返回 302,`Location` 头指向真实音频地址。播放器 / 浏览器跟随跳转,音乐就咕咚咕咚响起来啦:
“`text
https://meting.liveling.top/api?server=netease&type=url&id=1840459406
“`
响应形如:
“`http
HTTP/1.1 302 Found
location: https://m701.music.126.net/…/xxx.mp3
“`
想听好一点,加 `quality`:
“`text
https://meting.liveling.top/api?server=netease&type=url&id=1840459406&quality=lossless
“`
> 拿不到直链时返回 **404**(`{“error”:”no url”}`),不会再跳到奇怪的占位页。会员歌、地区限制、曲目本身没有该音质,都会走到这里。
### ③ 歌词 `lrc`
返回标准 LRC 纯文本,翻译自动合并:
“`text
https://meting.liveling.top/api?server=netease&type=lrc&id=1840459406
“`
“`text
[00:00.000] 作词 : 阿肆
[00:00.159] 作曲 : 阿肆
[00:00.318] 编曲 : 栾卓忻
[00:00.638]Super Idol的笑容
[00:02.043]都没你的甜
[00:03.907]八月正午的阳光
[00:05.863]都没你耀眼
“`
### ④ 封面 `pic`
同样 302,轻轻一跳就到封面图啦。
“`text
https://meting.liveling.top/api?server=netease&type=pic&id=1840459406
“`
> 酷狗的 `pic` 返回的是歌手头像——上游只给这张图,不是专辑封面。
### ⑤ 歌单 `playlist`
返回整个歌单的歌曲数组。ID 从网易云歌单页 URL 里拿。
“`text
https://meting.liveling.top/api?server=netease&type=playlist&id=7326220405
“`
### ⑥ 专辑 `album`(新增)
“`text
https://meting.liveling.top/api?server=netease&type=album&id=34720827
“`
周杰伦《床边故事》整张专辑,十首一次给你:
“`json
[{“title”:”床边故事”,”author”:”周杰伦”,”pic”:”https://p2.music.126.net/…/3265549553028224.jpg”,”url”:”https://meting.liveling.top/api?server=netease&type=url&id=415792916″,”lrc”:”https://meting.liveling.top/api?server=netease&type=lrc&id=415792916″}]
“`
QQ 音乐也有专辑:`?server=tencent&type=album&id=000MkMni19ClKG`。
### ⑦ 歌手歌曲 `artist`
5771 是许嵩,11564 是凤凰传奇。歌手 ID 从网易云歌手主页 URL 里拿。
“`text
https://meting.liveling.top/api?server=netease&type=artist&id=5771
“`
> 只有网易云和酷狗支持 `artist`,QQ 音乐不支持。
### ⑧ 搜索 `search`
关键词直接填中文。在代码 / curl 里记得 URL 编码。
“`text
https://meting.liveling.top/api?server=netease&type=search&id=%E5%AD%A4%E5%8B%87%E8%80%85
“`
有小惊喜:搜「孤勇者」你会收到一份「大型演唱会现场」——陈奕迅原版打头,往下翻有《奥特曼之歌(星云孤勇者律动舞曲)》《孤勇者(DJ版)》《孤勇者(童声版)》《孤勇者(35秒)》《孤勇者-陈奕迅(伴奏钢琴版)》……搜一首歌,白送一个综艺盛典,赚到啦。
> `search` 有每日配额(默认单 IP 300 次),超了返回 429 并带 `Retry-After`,次日 00:00 恢复。省着点用。
### ⑨ QQ 音乐
003XMyG91NpwQ1 是凤凰传奇的《奢香夫人》在 QQ 音乐上的 ID(也叫 songmid)。返回会多一个 `songmid` 字段:
“`text
https://meting.liveling.top/api?server=tencent&type=song&id=003XMyG91NpwQ1
“`
“`json
[{“author”:”凤凰传奇”,”title”:”奢香夫人”,”pic”:”https://y.gtimg.cn/music/photo_new/T002R300x300M0000021YkiD1WR578.jpg”,”url”:”https://meting.liveling.top/api?server=tencent&type=url&id=003XMyG91NpwQ1″,”lrc”:”https://meting.liveling.top/api?server=tencent&type=lrc&id=003XMyG91NpwQ1″,”songmid”:”003XMyG91NpwQ1″}]
“`
**QQ 音乐只查信息,不放音频**:站长没有配 QQ 音乐的会员 Cookie,`type=url` 基本都返回 404(《奢香夫人》实测就是 `{“error”:”no url”}`)。`song` / `album` / `playlist` / `lrc` / `pic` 都正常,拿歌名、歌词、封面没问题;要真正播放,请换网易云。
> 另外 QQ 音乐本身有地区限制(海外访问拿不到直链),配上 Cookie 也绕不过去。
—
## 五、音质 `quality`
只有 `type=url` 认这个参数,默认 `standard`。列表接口返回的 `url` 字段会自动带上同一个值。
| 值 | 网易云 | QQ 音乐 | 会员要求 | 常见简写 |
| — | — | — | — | — |
| `standard` | MP3 128kbps | M500 128kbps | 无需会员 | `128` `128k` `std` |
| `higher` | MP3 192kbps | M800 320kbps(QQ 无 192k 档) | 无需会员 | `192` `192k` |
| `exhigh` | MP3 320kbps | M800 320kbps | 部分需会员 | `320` `320k` `hq` |
| `lossless` | FLAC 无损 | F000 FLAC | 多数需会员 | `flac` `sq` |
| `hires` | FLAC 24bit / 48kHz 起 | F000 FLAC(不高于无损) | 需付费会员 | `hi-res` `hi_res` `hr` |
| `jyeffect` | 高清环绕声 | 不支持,回落 128kbps | 需付费会员 | `effect` |
| `sky` | 沉浸环绕声 | 不支持,回落 128kbps | 需付费会员 | — |
| `jymaster` | 超清母带 | F000 FLAC(不高于无损) | 需付费会员 | `master` |
– **QQ 音乐没有配会员 Cookie,`url` 基本都 404**,上表 QQ 一列只作能力对照;想听高品质(包括无损)请用网易云。
– 传表外的值直接 400,并且会把可选值列给你:
“`json
{“status”:400,”message”:”quality 参数不合法,可选值:standard / higher / exhigh / lossless / hires / jyeffect / sky / jymaster”,”param”:{“quality”:”ultra”}}
“`
– 没有对应会员、或曲目本身没有该音质时,上游可能回落到较低音质;完全拿不到直链就 404。
– 酷狗暂时忽略 `quality`,按平台默认规格返回。
– 缓存键包含音质,不会把 320k 和无损串用。
—
## 六、响应头与缓存
接口带响应缓存(直链 10 分钟,歌单/歌手 30 分钟,其余 60 分钟),所以偶尔会看到「明明改了 ID 还是老数据」——那是缓存,不是 bug。
| 响应头 | 说明 |
| — | — |
| `X-Cache` | `HIT` 命中缓存 / `MISS` 回源 |
| `X-Audio-Quality` | 回显你请求的音质 |
| `X-Audio-Quality-Actual` | 上游实际命中的音质(可能被回落) |
| `X-Audio-Bitrate` | 实际码率(网易云) |
| `X-Robots-Tag` | `noindex`,接口不参与搜索收录 |
—
## 七、常用调用方式
### curl
“`bash
# 单曲信息
curl “https://meting.liveling.top/api?server=netease&type=song&id=1840459406”
# 直接下载歌曲(-L 跟随 302)
curl -L “https://meting.liveling.top/api?server=netease&type=url&id=1840459406” -o song.mp3
# 无损
curl -L “https://meting.liveling.top/api?server=netease&type=url&id=1840459406&quality=lossless” -o song.flac
# 歌词
curl “https://meting.liveling.top/api?server=netease&type=lrc&id=1840459406”
“`
### JavaScript
“`javascript
const base = ‘https://meting.liveling.top/api’;
// 获取歌单
const res = await fetch(`${base}?server=netease&type=playlist&id=7326220405`);
const songs = await res.json();
// 播放第一首(url 字段自动 302 到真实音频)
const audio = new Audio(songs[0].url);
audio.play();
// 歌词
const lrc = await (await fetch(songs[0].lrc)).text();
“`
### Python
“`python
import requests
base = “https://meting.liveling.top/api”
# 搜索
r = requests.get(base, params={“server”: “netease”, “type”: “search”, “id”: “孤勇者”})
songs = r.json()
# 下载第一首(requests 默认跟随 302)
r = requests.get(songs[0][“url”], stream=True)
with open(“song.mp3”, “wb”) as f:
for chunk in r.iter_content(chunk_size=8192):
f.write(chunk)
“`
### 前端 MetingJS 播放器
用 [`@xizeyoupan/meting`](https://github.com/xizeyoupan/MetingJS)(旧版 `meting@2.0.1` 拿 QQ 音乐直链容易失败,建议换掉)。引入前先声明 API 地址:
“`html
“`
—
## 八、错误码
| 状态码 | 含义 | 怎么处理 |
| — | — | — |
| 200 | 成功 | — |
| 302 | 重定向到真实音频 / 图片 | 客户端跟随跳转即可 |
| 400 | 参数不合法 | 看响应里的 `message` / `param`,检查 server、type、id、quality |
| 403 | 该客户端不允许访问 `/api` | 抓取型 UA(如 YisouSpider)被拦,换正常 UA |
| 404 | 没有可播放链接 / 没有封面 | 会员歌、地区限制、曲目无该音质,或 ID 不存在(QQ 音乐的 `url` 基本都走这里) |
| 429 | 请求太频繁 / 搜索配额用尽 | 看 `Retry-After`,歇一会儿再来 |
| 502 | 上游平台不可用 | 上游异常,稍后重试 |
错误响应都是 JSON,带人话解释,比如:
“`json
{“error”:”upstream unavailable”,”message”:”<平台> 上游没有返回有效曲目,请稍后重试”}
“`
—
## 九、调试小工具
| 地址 | 用途 |
| — | — |
| `https://meting.liveling.top/test` | 在线试听页:填 server/type/id 直接听、看歌词、看错误 |
| `https://meting.liveling.top/api/stats` | 调用量、缓存命中率等统计 |
| `https://meting.liveling.top/robots.txt` | 已 `Disallow: /api`,接口本就不打算被爬 |
调不通的时候先上 `/test` 页,比对着文档猜快得多。
—
## 十、公益与使用须知(认真脸)
这个接口是**站长个人自费维护的公益服务**,初衷是方便做播放器、写小工具的朋友们学习玩耍。所以有几件小事想拜托你:
– **别拿它当下载器**:限流是 60 次 / 分钟 / IP,搜索另有 300 次 / 天 / IP 的配额。大家都要用,别一个人把资源都薅走啦。
– **别批量抓取**:整站搬运、离线歌库这类事,会给服务器和音乐平台带来压力,会让这个小公益变脆弱的。
– **别商用**:公益服务撑不起商业流量,商用请自行部署([Meting-API 是开源的](https://github.com/live-ling/Meting-API))或联系站长,大家都有蛋糕吃。
– **低调使用**:音乐版权属于音乐人和平台,这个接口只是技术上的「搬运小助手」,请尊重版权。
`auth`、`r` 参数是 MetingJS 自动带的,手动调用不用管。例子里的歌曲名、歌手只是举例,把 id 换成任何 ID 都一样用。
如果它帮到了你,偷偷分享给同样爱折腾的朋友就好;要是你用它做成了有趣的东西,也欢迎回来说一声~
—
## 变更记录
| 日期 | 内容 |
| — | — |
| 2026-10 | 补充 `album` 类型、`quality` 音质参数与酷狗平台支持;`url` 无直链改为 404;错误码补充 404 / 502;MetingJS 换 `@xizeyoupan/meting` |
| 更早 | 初版:网易云 + QQ 音乐两平台,7 种 type |
> 文中示例均在 `https://meting.liveling.top` 实测通过(2026-10-29)。接口以服务端实际行为为准,如有出入以站长公告为准。
评论(0)
暂无评论