API 文档
-
接口地址:
https://apicx.asia/api/qqmusic
-
返回格式:
JOSN
-
请求方式:
GET
-
请求示例:
https://apicx.asia/api/qqmusic?msg=周杰伦&n=1&br=320&token=你的token
请求参数说明:
| 名称 |
必填 |
类型 |
说明 |
|
token
|
是
|
string
|
登录获取token
|
| msg | 是 | string | 搜索关键词(必填) |
| n | 是 | string | n:歌曲索引,从1开始(默认1) |
| id | 是 | string | id :歌曲ID(必填) |
| br | 是 | string | br:音质选项,可选值:m4a、128、320、flac(默认320) |
| 示例1 | 否 | string | 获取歌曲列表(默认):https://apicx.asia/api/qqmusic?msg=周杰伦&token=你的token |
| 示例2 | 否 | string | 获取指定歌曲详情:https://apicx.asia/api/qqmusic?msg=周杰伦&n=1&br=320&token=你的token |
| 示例3 | 否 | string | 通过ID获取歌曲详情:https://apicx.asia/api/qqmusic?id=歌曲ID&br=320&token=你的token |
返回参数说明:
| 名称 |
类型 |
说明 |
| code |
integer |
返回的状态码 |
| data |
object |
返回的数据/数据对象 |
| msg |
string |
返回的消息 |
| time |
string |
请求时间 |
| data.index | number | index |
| data.song_id | string | song_id |
| data.name | string | name |
| data.artist | string | artist |
| data.album | string | album |
| data.duration | string | duration |
| data.cover | string | cover |
| data.play_url | string | play_url |
| data.lyrics.success | boolean | success |
| data.lyrics.lyrics[].time | number | time |
| data.lyrics.lyrics[].text | string | text |
| data.lyrics.lyrics[].raw_time | string | raw_time |
| data.lyrics.trans_lyrics[] | array | 空数组 |
| data.lyrics.formatted | string | formatted |
| data.lyrics.formatted_trans | string | formatted_trans |
| data.lyrics.combined | string | combined |
| data.lyrics.lyric_count | number | lyric_count |
| data.lyrics.trans_count | number | trans_count |
| data.bitrate | string | bitrate |
| data.warnings | null | warnings |
{
"code": 200,
"data": {
"index": 1,
"song_id": "0039MnYb0qxYhV",
"name": "晴天",
"artist": "周杰伦",
"album": "叶惠美",
"duration": "04:29",
"cover": "https://y.qq.com/music/photo_new/T002R500x500M000000MkMni19ClKG.jpg",
"play_url": "https://isure.stream.qqmusic.qq.com/M800003Qui1q2u1Zho.mp3?guid=658650575&vkey=F2646B96C819EE8FA84635E5C3CBA33DC1129DA4BEF24708FB41B7389CEC1A2121292764A6276AE80CDB9EBE17B537D743B8A76D68056C41__v2b9aacee&uin=6283354&fromtag=120093&src=M800000bYDlc2XxKLs.mp3",
"lyrics": {
"success": true,
"lyrics": [
{
"time": 0,
"text": "晴天 - 周杰伦 (Jay Chou)",
"raw_time": "[00:00.00]"
},
{
"time": 2.25,
"text": "词:周杰伦",
"raw_time": "[00:02.25]"
},
{
"time": 4.5,
"text": "曲:周杰伦",
"raw_time": "[00:04.50]"
},
{
"time": 6.75,
"text": "编曲:周杰伦",
"raw_time": "[00:06.75]"
},
{
"time": 9,
"text": "制作人:周杰伦",
"raw_time": "[00:09.00]"
},
{
"time": 11.25,
"text": "合声:周杰伦",
"raw_time": "[00:11.25]"
},
{
"time": 13.5,
"text": "合声编写:周杰伦",
"raw_time": "[00:13.50]"
},
{
"time": 15.75,
"text": "吉他:蔡科俊Again",
"raw_time": "[00:15.75]"
},
{
"time": 18,
"text": "贝斯:陈任佑",
"raw_time": "[00:18.00]"
},
{
"time": 20.25,
"text": "鼓:陈柏州",
"raw_time": "[00:20.25]"
},
{
"time": 22.51,
"text": "录音助理:刘勇志",
"raw_time": "[00:22.51]"
},
{
"time": 24.76,
"text": "录音工程:杨瑞代(Alfa Studio)",
"raw_time": "[00:24.76]"
},
{
"time": 27.01,
"text": "混音工程:杨大纬(杨大纬录音工作室)",
"raw_time": "[00:27.01]"
},
{
"time": 29.26,
"text": "故事的小黄花",
"raw_time": "[00:29.26]"
},
{
"time": 32.71,
"text": "从出生那年就飘着",
"raw_time": "[00:32.71]"
},
{
"time": 36.24,
"text": "童年的荡秋千",
"raw_time": "[00:36.24]"
},
{
"time": 39.75,
"text": "随记忆一直晃到现在",
"raw_time": "[00:39.75]"
},
{
"time": 42.91,
"text": "Re So So Si Do Si La",
"raw_time": "[00:42.91]"
},
{
"time": 45.93,
"text": "So La Si Si Si Si La Si La So",
"raw_time": "[00:45.93]"
},
{
"time": 49.87,
"text": "吹着前奏望着天空",
"raw_time": "[00:49.87]"
},
{
"time": 53.2,
"text": "我想起花瓣试着掉落",
"raw_time": "[00:53.20]"
},
{
"time": 56.72,
"text": "为你翘课的那一天",
"raw_time": "[00:56.72]"
},
{
"time": 58.83,
"text": "花落的那一天",
"raw_time": "[00:58.83]"
},
{
"time": 60.6,
"text": "教室的那一间",
"raw_time": "[01:00.60]"
},
{
"time": 62.32,
"text": "我怎么看不见",
"raw_time": "[01:02.32]"
},
{
"time": 64.12,
"text": "消失的下雨天",
"raw_time": "[01:04.12]"
},
{
"time": 65.81,
"text": "我好想再淋一遍",
"raw_time": "[01:05.81]"
},
{
"time": 69.99,
"text": "没想到失去的勇气我还留着",
"raw_time": "[01:09.99]"
},
{
"time": 76.12,
"text": "好想再问一遍",
"raw_time": "[01:16.12]"
},
{
"time": 77.97,
"text": "你会等待还是离开",
"raw_time": "[01:17.97]"
},
{
"time": 84.91,
"text": "刮风这天我试过握着你手",
"raw_time": "[01:24.91]"
},
{
"time": 90.45,
"text": "但偏偏雨渐渐大到我看你不见",
"raw_time": "[01:30.45]"
},
{
"time": 98.88,
"text": "还要多久我才能在你身边",
"raw_time": "[01:38.88]"
},
{
"time": 105.44,
"text": "等到放晴的那天也许我会比较好一点",
"raw_time": "[01:45.44]"
},
{
"time": 112.87,
"text": "从前从前有个人爱你很久",
"raw_time": "[01:52.87]"
},
{
"time": 118.54,
"text": "但偏偏风渐渐把距离吹得好远",
"raw_time": "[01:58.54]"
},
{
"time": 126.94,
"text": "好不容易又能再多爱一天",
"raw_time": "[02:06.94]"
},
{
"time": 133.5,
"text": "但故事的最后你好像还是说了拜拜",
"raw_time": "[02:13.50]"
},
{
"time": 154.9,
"text": "为你翘课的那一天",
"raw_time": "[02:34.90]"
},
{
"time": 156.88,
"text": "花落的那一天",
"raw_time": "[02:36.88]"
},
{
"time": 158.66,
"text": "教室的那一间",
"raw_time": "[02:38.66]"
},
{
"time": 160.39,
"text": "我怎么看不见",
"raw_time": "[02:40.39]"
},
{
"time": 162.15,
"text": "消失的下雨天",
"raw_time": "[02:42.15]"
},
{
"time": 163.87,
"text": "我好想再淋一遍",
"raw_time": "[02:43.87]"
},
{
"time": 168,
"text": "没想到失去的勇气我还留着",
"raw_time": "[02:48.00]"
},
{
"time": 174.15,
"text": "好想再问一遍",
"raw_time": "[02:54.15]"
},
{
"time": 176.03,
"text": "你会等待还是离开",
"raw_time": "[02:56.03]"
},
{
"time": 182.92,
"text": "刮风这天我试过握着你手",
"raw_time": "[03:02.92]"
},
{
"time": 188.49,
"text": "但偏偏雨渐渐大到我看你不见",
"raw_time": "[03:08.49]"
},
{
"time": 196.94,
"text": "还要多久我才能在你身边",
"raw_time": "[03:16.94]"
},
{
"time": 203.43,
"text": "等到放晴的那天也许我会比较好一点",
"raw_time": "[03:23.43]"
},
{
"time": 210.87,
"text": "从前从前有个人爱你很久",
"raw_time": "[03:30.87]"
},
{
"time": 217.14,
"text": "偏偏风渐渐把距离吹得好远",
"raw_time": "[03:37.14]"
},
{
"time": 224.88,
"text": "好不容易又能再多爱一天",
"raw_time": "[03:44.88]"
},
{
"time": 231.42,
"text": "但故事的最后你好像还是说了拜拜",
"raw_time": "[03:51.42]"
},
{
"time": 238.49,
"text": "刮风这天我试过握着你手",
"raw_time": "[03:58.49]"
},
{
"time": 241.97,
"text": "但偏偏雨渐渐大到我看你不见",
"raw_time": "[04:01.97]"
},
{
"time": 245.65,
"text": "还要多久我才能够在你身边",
"raw_time": "[04:05.65]"
},
{
"time": 249.07,
"text": "等到放晴那天也许我会比较好一点",
"raw_time": "[04:09.07]"
},
{
"time": 252.92,
"text": "从前从前有个人爱你很久",
"raw_time": "[04:12.92]"
},
{
"time": 255.91,
"text": "但偏偏雨渐渐把距离吹得好远",
"raw_time": "[04:15.91]"
},
{
"time": 259.38,
"text": "好不容易又能再多爱一天",
"raw_time": "[04:19.38]"
},
{
"time": 262.86,
"text": "但故事的最后你好像还是说了拜",
"raw_time": "[04:22.86]"
}
],
"trans_lyrics": [],
"formatted": "[00:00.000]晴天 - 周杰伦 (Jay Chou)\n[00:02.250]词:周杰伦\n[00:04.500]曲:周杰伦\n[00:06.750]编曲:周杰伦\n[00:09.000]制作人:周杰伦\n[00:11.250]合声:周杰伦\n[00:13.500]合声编写:周杰伦\n[00:15.750]吉他:蔡科俊Again\n[00:18.000]贝斯:陈任佑\n[00:20.250]鼓:陈柏州\n[00:22.510]录音助理:刘勇志\n[00:24.760]录音工程:杨瑞代(Alfa Studio)\n[00:27.010]混音工程:杨大纬(杨大纬录音工作室)\n[00:29.260]故事的小黄花\n[00:32.710]从出生那年就飘着\n[00:36.240]童年的荡秋千\n[00:39.750]随记忆一直晃到现在\n[00:42.910]Re So So Si Do Si La\n[00:45.930]So La Si Si Si Si La Si La So\n[00:49.870]吹着前奏望着天空\n[00:53.200]我想起花瓣试着掉落\n[00:56.720]为你翘课的那一天\n[00:58.830]花落的那一天\n[01:00.600]教室的那一间\n[01:02.320]我怎么看不见\n[01:04.120]消失的下雨天\n[01:05.810]我好想再淋一遍\n[01:09.990]没想到失去的勇气我还留着\n[01:16.120]好想再问一遍\n[01:17.970]你会等待还是离开\n[01:24.910]刮风这天我试过握着你手\n[01:30.450]但偏偏雨渐渐大到我看你不见\n[01:38.880]还要多久我才能在你身边\n[01:45.440]等到放晴的那天也许我会比较好一点\n[01:52.870]从前从前有个人爱你很久\n[01:58.540]但偏偏风渐渐把距离吹得好远\n[02:06.940]好不容易又能再多爱一天\n[02:13.500]但故事的最后你好像还是说了拜拜\n[02:34.900]为你翘课的那一天\n[02:36.880]花落的那一天\n[02:38.660]教室的那一间\n[02:40.390]我怎么看不见\n[02:42.150]消失的下雨天\n[02:43.870]我好想再淋一遍\n[02:48.000]没想到失去的勇气我还留着\n[02:54.150]好想再问一遍\n[02:56.030]你会等待还是离开\n[03:02.920]刮风这天我试过握着你手\n[03:08.490]但偏偏雨渐渐大到我看你不见\n[03:16.940]还要多久我才能在你身边\n[03:23.430]等到放晴的那天也许我会比较好一点\n[03:30.870]从前从前有个人爱你很久\n[03:37.140]偏偏风渐渐把距离吹得好远\n[03:44.880]好不容易又能再多爱一天\n[03:51.420]但故事的最后你好像还是说了拜拜\n[03:58.490]刮风这天我试过握着你手\n[04:01.970]但偏偏雨渐渐大到我看你不见\n[04:05.650]还要多久我才能够在你身边\n[04:09.070]等到放晴那天也许我会比较好一点\n[04:12.920]从前从前有个人爱你很久\n[04:15.910]但偏偏雨渐渐把距离吹得好远\n[04:19.380]好不容易又能再多爱一天\n[04:22.860]但故事的最后你好像还是说了拜",
"formatted_trans": "无翻译歌词",
"combined": "[00:00.000]晴天 - 周杰伦 (Jay Chou)\n[00:02.250]词:周杰伦\n[00:04.500]曲:周杰伦\n[00:06.750]编曲:周杰伦\n[00:09.000]制作人:周杰伦\n[00:11.250]合声:周杰伦\n[00:13.500]合声编写:周杰伦\n[00:15.750]吉他:蔡科俊Again\n[00:18.000]贝斯:陈任佑\n[00:20.250]鼓:陈柏州\n[00:22.510]录音助理:刘勇志\n[00:24.760]录音工程:杨瑞代(Alfa Studio)\n[00:27.010]混音工程:杨大纬(杨大纬录音工作室)\n[00:29.260]故事的小黄花\n[00:32.710]从出生那年就飘着\n[00:36.240]童年的荡秋千\n[00:39.750]随记忆一直晃到现在\n[00:42.910]Re So So Si Do Si La\n[00:45.930]So La Si Si Si Si La Si La So\n[00:49.870]吹着前奏望着天空\n[00:53.200]我想起花瓣试着掉落\n[00:56.720]为你翘课的那一天\n[00:58.830]花落的那一天\n[01:00.600]教室的那一间\n[01:02.320]我怎么看不见\n[01:04.120]消失的下雨天\n[01:05.810]我好想再淋一遍\n[01:09.990]没想到失去的勇气我还留着\n[01:16.120]好想再问一遍\n[01:17.970]你会等待还是离开\n[01:24.910]刮风这天我试过握着你手\n[01:30.450]但偏偏雨渐渐大到我看你不见\n[01:38.880]还要多久我才能在你身边\n[01:45.440]等到放晴的那天也许我会比较好一点\n[01:52.870]从前从前有个人爱你很久\n[01:58.540]但偏偏风渐渐把距离吹得好远\n[02:06.940]好不容易又能再多爱一天\n[02:13.500]但故事的最后你好像还是说了拜拜\n[02:34.900]为你翘课的那一天\n[02:36.880]花落的那一天\n[02:38.660]教室的那一间\n[02:40.390]我怎么看不见\n[02:42.150]消失的下雨天\n[02:43.870]我好想再淋一遍\n[02:48.000]没想到失去的勇气我还留着\n[02:54.150]好想再问一遍\n[02:56.030]你会等待还是离开\n[03:02.920]刮风这天我试过握着你手\n[03:08.490]但偏偏雨渐渐大到我看你不见\n[03:16.940]还要多久我才能在你身边\n[03:23.430]等到放晴的那天也许我会比较好一点\n[03:30.870]从前从前有个人爱你很久\n[03:37.140]偏偏风渐渐把距离吹得好远\n[03:44.880]好不容易又能再多爱一天\n[03:51.420]但故事的最后你好像还是说了拜拜\n[03:58.490]刮风这天我试过握着你手\n[04:01.970]但偏偏雨渐渐大到我看你不见\n[04:05.650]还要多久我才能够在你身边\n[04:09.070]等到放晴那天也许我会比较好一点\n[04:12.920]从前从前有个人爱你很久\n[04:15.910]但偏偏雨渐渐把距离吹得好远\n[04:19.380]好不容易又能再多爱一天\n[04:22.860]但故事的最后你好像还是说了拜",
"lyric_count": 63,
"trans_count": 0
},
"bitrate": "320",
"warnings": null
},
"timestamp": "2025-11-09 00:06:27",
"message": "获取成功",
"cached_time": "2025-11-09 00:06:27"
}
错误码格式说明:
| 名称 |
类型 |
说明 |
| 200 |
string |
返回状态码(成功) |
| 500 |
string |
返回的状态码(失败) |
代码示例:
-
-
-
-
-
-
-
<?php
// 初始化cURL会话
$ch = curl_init();
// 设置请求URL,用户中心获取token,自行替换其他参数
curl_setopt($ch, CURLOPT_URL, "https://apicx.asia/api/qqmusic?msg=周杰伦&n=1&br=320&token=你的token");
// 设置请求头
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Authorization: YOUR_TOKEN'
));
// 返回响应而不是直接输出
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// 执行请求并获取响应
$response = curl_exec($ch);
// 关闭cURL会话
curl_close($ch);
// 将响应解析为JSON格式
$data = json_decode($response, true);
// 输出JSON数据
print_r($data);
?>
import requests
# 设置请求URL和头部,用户中心获取token,自行替换其他参数
url = "https://apicx.asia/api/qqmusic?msg=周杰伦&n=1&br=320&token=你的token"
headers = {
'Authorization': 'YOUR_TOKEN'
}
# 发送GET请求
response = requests.get(url, headers=headers)
# 将响应解析为JSON格式
data = response.json()
# 输出JSON数据
print(data)
// 发送GET请求,用户中心获取token,自行替换其他参数
fetch("https://apicx.asia/api/qqmusic?msg=周杰伦&n=1&br=320&token=你的token", {
method: "GET",
headers: {
"Authorization": "YOUR_TOKEN"
}
})
.then(response => response.json()) // 将响应解析为JSON格式
.then(data => console.log(data)) // 输出JSON数据
.catch(error => console.error('Error:', error));
import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
public class Main {
public static void main(String[] args) throws Exception {
// 创建URL对象,用户中心获取token,自行替换其他参数
URL url = new URL("https://apicx.asia/api/qqmusic?msg=周杰伦&n=1&br=320&token=你的token");
// 打开连接
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
// 设置请求方法
conn.setRequestMethod("GET");
// 设置请求头
conn.setRequestProperty("Authorization", "YOUR_TOKEN");
// 读取响应
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String inputLine;
StringBuffer content = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
content.append(inputLine);
}
in.close();
// 输出JSON数据
System.out.println(content.toString());
}
}
using System;
using System.Net.Http;
using System.Threading.Tasks;
class Program {
static async Task Main() {
using (HttpClient client = new HttpClient()) {
// 设置请求头
client.DefaultRequestHeaders.Add("Authorization", "YOUR_TOKEN");
// 发送GET请求,用户中心获取token,自行替换其他参数
HttpResponseMessage response = await client.GetAsync("https://apicx.asia/api/qqmusic?msg=周杰伦&n=1&br=320&token=你的token");
// 将响应解析为字符串
string responseBody = await response.Content.ReadAsStringAsync();
// 输出JSON数据
Console.WriteLine(responseBody);
}
}
}
require 'net/http'
require 'uri'
# 创建URI对象,用户中心获取token,自行替换其他参数
uri = URI.parse("https://apicx.asia/api/qqmusic?msg=周杰伦&n=1&br=320&token=你的token")
# 创建GET请求
request = Net::HTTP::Get.new(uri)
# 设置请求头
request["Authorization"] = "YOUR_TOKEN"
# 发送请求并获取响应
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == "https") do |http|
http.request(request)
end
# 输出JSON数据
puts response.body
package main
import (
"fmt"
"io/ioutil"
"net/http"
)
func main() {
client := &http.Client{}
// 创建GET请求,用户中心获取token,自行替换其他参数
req, err := http.NewRequest("GET", "https://apicx.asia/api/qqmusic?msg=周杰伦&n=1&br=320&token=你的token", nil)
if err != nil {
panic(err)
}
// 设置请求头
req.Header.Add("Authorization", "YOUR_TOKEN")
// 发送请求并获取响应
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
// 读取响应体
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
panic(err)
}
// 输出JSON数据
fmt.Println(string(body))
}