QQ音乐歌词获取

获取QQ音乐歌词信息(支持翻译歌词)

API 文档

  • 接口地址: https://apicx.asia/api/qq_lyric
  • 返回格式: JOSN
  • 请求方式: GET
  • 请求示例: https://apicx.asia/api/qq_lyric?mid=004IWB780vXQQl&token=你的token

请求参数说明:

名称 必填 类型 说明
token string 登录获取token
midstringmid :歌曲mid(必填)

返回参数说明:

名称 类型 说明
code integer 返回的状态码
data object 返回的数据/数据对象
msg string 返回的消息
time string 请求时间

返回示例:

{
  "code": 200,
  "msg": "success",
  "data": {
    "type": "qq_music_lyric",
    "song_mid": "004IWB780vXQQl",
    "lyric_data": {
      "retcode": 0,
      "code": 0,
      "subcode": 0,
      "lyric": "[ti:一直很安静 (Live)]\n[ar:颜人中]\n[al:声生不息·华流季 第1期]\n[by:]\n[offset:0]\n[00:00.10]一直很安静 (Live) - 颜人中\n[00:00.12]词:方文山\n[00:00.14]曲:蔡如岳\n[00:00.16]原唱:阿桑\n[00:00.18]音乐总监:谷粟\n[00:00.20]音响总监:何飚\n[00:00.22]舞台总监:李柯\n[00:00.24]音乐设计:王皓@WONDERWALL\n[00:00.26]制作人:黄冠伦\n[00:00.28]改编编曲:杨展鸿\n[00:00.30]和声编写/录音和声:高真\n[00:00.32]混音:林梦洋\n[00:00.34]音乐统筹:梁倩@MX BAND\n[00:00.36]乐队统筹:陈嘉雯@MX BAND\n[00:00.38]键盘:董音@MX BAND/洪信杰@MX BAND\n[00:00.40]吉他:毕赫宸@MX BAND/陈麒元@MX BAND\n[00:00.42]贝斯:宣一亨@MX BAND\n[00:00.44]鼓:郝稷伦@MX BAND\n[00:00.46]打击乐:郑瑀@MX BAND\n[00:00.48]和音:王梓琼@MX BAND/张石荻@MX BAND/海洋@MX BAND\n[00:00.50]PGM:杨阳@MX BAND\n[00:00.52]弦乐:刘星弦乐团@MX BAND\n[00:00.57]给你的爱一直很安静\n[00:07.21]来交换你偶尔给的关心\n[00:13.68]明明是三个人的电影\n[00:18.65]我却始终不能有姓名\n[00:42.10]空荡的街景 想找个人放感情\n[00:51.12]做这种决定 是寂寞与我为邻\n[00:59.70]我们的爱情 像你路过的风景\n[01:08.51]一直在进行\n[01:12.09]脚步却从来不会为我而停\n[01:18.84]给你的爱一直很安静\n[01:23.16]来交换你偶尔给的关心\n[01:27.70]明明是三个人的电影\n[01:31.94]我却始终不能有姓名\n[01:40.22]你说爱像云\n[01:43.94]要自在飘浮才美丽\n[01:48.90]我终于相信\n[01:52.58]分手的理由有时候很动听\n[01:57.22]给你的爱一直很安静\n[02:01.45]我从一开始就下定决心\n[02:06.40]以为自己要的是曾经\n[02:10.84]却发现爱一定要有回应\n[02:31.17]给你的爱一直很安静\n[02:35.44]来交换你偶尔给的关心\n[02:40.25]明明是三个人的电影\n[02:44.45]我却始终不能有姓名\n[02:49.68]给你的爱一直很安静\n[02:53.71]除了泪在我的脸上任性\n[03:02.23]原来缘分是用来说明\n[03:11.76]你突然不爱我这件事情",
      "trans": ""
    }
  },
  "time": "2025-11-25 10:04:27",
  "cached_time": "2025-11-25 10:04:28"
}

错误码格式说明:

名称 类型 说明
200 string 返回状态码(成功)
500 string 返回的状态码(失败)

代码示例:


<?php
// 初始化cURL会话
$ch = curl_init();
// 设置请求URL,用户中心获取token,自行替换其他参数
curl_setopt($ch, CURLOPT_URL, "https://apicx.asia/api/qq_lyric?mid=004IWB780vXQQl&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/qq_lyric?mid=004IWB780vXQQl&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/qq_lyric?mid=004IWB780vXQQl&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/qq_lyric?mid=004IWB780vXQQl&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/qq_lyric?mid=004IWB780vXQQl&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/qq_lyric?mid=004IWB780vXQQl&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/qq_lyric?mid=004IWB780vXQQl&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))
}