无名网络 · QQ音乐 API 接口文档v5.2.0

搜索 / 解析直连 / 播放代理 / 歌词 / 点歌卡片兼容 · 音源:QQ音乐官方 · 更新:2026-09-22
Base URLhttp://qq.wm2213.com

1鉴权与防盗刷 已启用

为防止接口被外人盗刷流量,解析直连接口 /api/parse 已开启访问鉴权;搜索/播放等老接口默认保持开放(不影响现有插件,见 第 8 节一键全量开启)。

三种传令牌方式(任选其一)

方式写法说明
URL 参数 推荐&token=YOUR_TOKEN最通用,浏览器 / 播放器 / 易语言 / 卡片都能用
请求头X-Api-Token: YOUR_TOKEN服务端程序调用时更隐蔽
请求头Authorization: Bearer YOUR_TOKEN标准 Bearer 形式

你的访问令牌

YOUR_TOKEN
令牌等同密码,请勿公开(不要发到群里、提交到代码仓库或放进公开网页)。泄露后可在服务器 .env 的 ACCESS_TOKENS 更换(见第 8 节)。

IP 白名单(免令牌)

下列固定 IP 调用时无需带 token,已在 .env 的 ALLOW_IPS 配置:

103.236.87.133   框架机(点歌机器人)
103.236.87.242   本站服务器
127.0.0.1        本机内部(PHP 兼容层自动放行)

手机/家宽是动态 IP,不建议加白名单,直接用 token 即可。需要新增固定 IP,在 ALLOW_IPS 用英文逗号追加后重启服务。

限流

同一公网 IP 对解析/搜索接口默认 120 次 / 分钟(RATE_LIMIT_PER_MIN 可调,0 为不限)。超限返回 429 并带 Retry-After(秒)。本机内部与白名单不受限。

鉴权返回

状态码含义处理
200 / 302通过正常返回 / 跳转播放
401未授权:缺少或 token 错误补上正确 token,或把出口 IP 加白名单
429请求过频按 Retry-After 等待后重试

2音乐解析直连 /api/parse 核心

传歌名或 mid,直接得到可播放地址;默认 302 跳转即点即播。别名:/api/direct、/api/url、/api/redirect,用法完全相同。

GET/api/parse

请求参数

参数必填默认说明
keyword二选一-歌名/关键词,也认 word / w / name / msg
mid二选一-歌曲 mid;可再带 media_mid(更稳)或 id
n / index否1取搜索结果第几首(1–50)
quality否128音质:128 / 320 / m4a / flac
format否redirect见下表
token是-访问令牌(IP 白名单内可省略)

format 输出形式

format返回适用
不填 / redirect302 跳转到 /api/stream,打开即播播放器、外链、<audio>、点歌
text / url / rawtext/plain 纯直链一行程序里只取地址
json歌曲信息 + 直链 JSON需要标题/歌手/封面/时长
origin / official302 直跳 QQ 官方地址省本站流量;地址会过期,需实时取
默认 302 跳到本站 /api/stream,由服务器实时换取官方 vkey 再代理回音频,所以链接长期有效、支持拖动进度(HTTP 206 Range)。令牌会自动透传到跳转地址,全链路可播。

示例(可直接点开 / 复制)

# 打开即播(302,第 1 首,128k)
http://qq.wm2213.com/api/parse?keyword=稻香&token=YOUR_TOKEN

# 第 2 首、320k
http://qq.wm2213.com/api/parse?word=稻香&n=2&quality=320&token=YOUR_TOKEN

# 只要纯直链
http://qq.wm2213.com/api/parse?word=晴天&format=text&token=YOUR_TOKEN

# 完整信息 JSON
http://qq.wm2213.com/api/parse?word=七里香&format=json&token=YOUR_TOKEN

# 用 mid 直取
http://qq.wm2213.com/api/direct?mid=003aAYrm3GE0Ac&media_mid=0020wJDo3cx0j3&token=YOUR_TOKEN

format=json 返回示例

{
  "code": 200, "source": "qq", "quality": "128", "index": 1,
  "mid": "003aAYrm3GE0Ac", "mediaMid": "0020wJDo3cx0j3",
  "song": {
    "title": "稻香", "name": "稻香", "singer": "周杰伦",
    "album": "魔杰座", "duration": 223,
    "cover": "https://y.qq.com/music/photo_new/T002R800x800M000....jpg",
    "pay": { "payplay": 1 }, "sizes": { "128": 3570000, "320": 8900000 }
  },
  "url": "http://qq.wm2213.com/api/stream?mid=...&media_mid=...&quality=128&token=YOUR_TOKEN",
  "streamUrl": "……同上……", "playUrl": "……同上……"
}

4详情 · 取地址 · 音频流

详情(含播放地址)

GET/api/song?mid=歌曲mid&media_mid=媒体mid&quality=128

返回歌曲信息 + playUrl/streamUrl(本站流地址);playReason 非空表示该音质不可用原因。

仅取播放地址(JSON)

GET/api/play?mid=歌曲mid&media_mid=媒体mid&quality=128

返回官方 url(会过期)与本站 streamUrl(稳定)。取不到时 HTTP 404 并带 reason。

音频流(可直接作为播放器 src)

GET/api/stream?mid=歌曲mid&media_mid=媒体mid&quality=128

直接返回音频二进制(audio/mpeg / audio/flac 等),支持 Range 断点/拖动(200 / 206)。每次请求实时换 vkey,地址长期有效。

<audio src="http://qq.wm2213.com/api/stream?mid=003aAYrm3GE0Ac&media_mid=0020wJDo3cx0j3&quality=128&token=YOUR_TOKEN" controls></audio>
若第 8 节把 AUTH_API 全开为 1,则 /api/stream 也要带 token;走 /api/parse 302 或 aq.php 卡片时令牌已自动附带,无需手动处理。

5歌词 /api/lyric

GET/api/lyric?mid=歌曲mid&id=歌曲id

返回 LRC 原文、翻译、音译(均为纯文本,无则空串):

{ "mid": "...", "lyric": "[ti:稻香]...", "trans": "翻译歌词", "roma": "音译" }

6点歌 DLL 兼容接口(易语言插件原契约)

下列 PHP 接口供「无名点歌.dll」按原有指令直接调用,无需带 token(由服务器本机内部转发到 Node,已自动放行);卡片播放地址已自动附带令牌,全量开启鉴权后也能正常放歌。

搜歌列表

GET/api/qqdg.php?word=歌名&num=15
{ "code": 200, "data": [
  { "id":449205, "mid":"003a...", "mediaMid":"0020...", "song":"稻香",
    "singer":"周杰伦", "album":"魔杰座", "cover":"https://...", "duration":223 }
]}

点歌音乐卡片

GET/api/aq.php?msg=歌名&type=1&sq=8&n=序号

n 为列表里选择的序号(默认 1)。返回 QQ 音乐卡片 JSON,DLL 读取 meta.music.musicUrl,该地址已自动带 token。

7音质、错误码与黑名单

音质 quality

值格式编码前缀说明
128mp3M500默认,兼容性最好
320mp3M800高品(部分歌曲需会员)
m4am4aC400AAC
flacflacF000无损(多需会员)

错误码

码含义
400缺少参数(如未传 keyword/mid)
401未授权(token 缺失/错误)
404未找到歌曲 / 无可用播放地址(下架或会员限制)
429触发限流
502上游异常或服务错误

后台可配置 mid / 关键词黑名单,命中的歌曲会从搜索结果过滤。健康检查:GET /api/health(登录态、Cookie 自动刷新状态)。

8防盗刷配置与运维

配置文件:/www/wwwroot/qqmusic/.env,由 systemd 服务 qqmusic.service 读取,改完需重启生效。

配置项当前说明
AUTH_PARSE1/api/parse 解析直连是否校验 token
AUTH_API0search/song/play/stream/lyric 是否也校验(0 关 / 1 开)
ACCESS_TOKENS已配置令牌,多个用英文逗号分隔
ALLOW_IPS已配置免令牌 IP 白名单,逗号分隔
RATE_LIMIT_PER_MIN120每 IP 每分钟解析/搜索上限,0 不限

更换 / 增加令牌

# 编辑 .env,改成新值(可同时保留新旧两个,平滑切换)
ACCESS_TOKENS="新令牌,旧令牌"
# 保存后重启
systemctl restart qqmusic

全量保护老接口(搜索/音频流也要 token)

前置条件:APP / 悬浮窗 / 所有外部调用都已改成带 token 的地址。点歌 DLL 走 PHP 兼容层不受影响,音乐卡片已自动带 token。确认后再开,避免旧客户端播放失败。
# 把 .env 中改为
AUTH_API="1"
systemctl restart qqmusic

常用命令

systemctl status qqmusic      # 状态
systemctl restart qqmusic     # 重启
journalctl -u qqmusic -f     # 实时日志(含 401 拦截记录 auth-deny)
curl http://127.0.0.1:3001/api/health   # 本机健康检查

当前访问令牌:YOUR_TOKEN(请妥善保管,勿公开)。

9调用示例

curl

# 跟随 302 直接下载/播放
curl -L -o dao.mp3 "http://qq.wm2213.com/api/parse?keyword=稻香&token=YOUR_TOKEN"
# 只取直链
curl "http://qq.wm2213.com/api/parse?word=稻香&format=text&token=YOUR_TOKEN"
# 取 JSON
curl "http://qq.wm2213.com/api/parse?word=稻香&format=json&token=YOUR_TOKEN"

易语言(点歌插件 / 悬浮窗思路)

' 1) 用 网页_访问S / LibCurl 请求纯直链(format=text),拿到一行 URL
直链 = 网页_访问S (“http://qq.wm2213.com/api/parse?word=” + 编码_URL编码(歌名)
      + “&n=1&quality=128&format=text&token=YOUR_TOKEN”, , , , )

' 2) 把“直链”交给播放组件 / 浏览器框 / 音乐卡片即可播放
'    (直链为本院 /api/stream,长期有效、支持拖动)

' 更省事:直接把 302 地址交给支持跟随跳转的播放器,无需 format=text:
'   http://qq.wm2213.com/api/parse?word=歌名&token=YOUR_TOKEN

PHP

$url = 'http://qq.wm2213.com/api/parse?word=' . rawurlencode($name)
     . '&format=text&token=YOUR_TOKEN';
$play = trim(file_get_contents($url));   // 即可播放直链

网页 / H5

<audio controls
  src="http://qq.wm2213.com/api/parse?keyword=稻香&token=YOUR_TOKEN"></audio>
最稳的工程用法:需要展示歌曲信息用 format=json;只需要出声,直接用默认 302 地址,服务端会自动处理选歌、换 vkey、代理与拖动。