酷我音乐解析

酷我音乐解析,获取音乐信息、播放链接等信息

API 文档

  • 接口地址: https://api.makuo.cc/api/get.music.kuwo
  • 返回格式:JSON
  • 请求方式:GET
  • 请求示例: https://api.makuo.cc/api/get.music.kuwo?url=https://www.kuwo.cn/play_detail/475934974

请求参数说明:

名称 必填 类型 说明
token string 登录获取token
url string 酷我音乐URL

返回参数说明:

名称 类型 说明
code integer 返回的状态码
data object 返回的数据/数据对象
msg string 返回的消息
time string 请求时间
data.song_idstring歌曲ID
data.music_urlstring歌曲URL
data.lyricsstring歌词
data.titlestring歌曲名称
data.artiststring艺术家
data.albumstring专辑
data.picstring封面
data.releaseDatestring发布日志
data.songTimeMinutesstring歌曲时长
data.albuminfostring唱片信息

返回示例:

{
  "code": 200,
  "msg": "解析成功",
  "time": "2025-05-31 21:09:05",
  "api_source": "官方API网:https://api.makuo.cc/",
  "data": {
    "song_id": "475934974",
    "music_url": "https://er-sycdn.kuwo.cn/3684f07a9a44df42fbc6ed5df12d938c/683afee0/resource/30106/trackmedia/M500003SXyir1iXfAf.mp3",
    "lyrics": "[00:00.000]漂游之人 Drifting - The 1999/Alicja Boratyn\n[00:00.800]   \n[00:00.800]词 Lyrics:Alicja Boratyn\n[00:01.199]   \n[00:01.199]曲 Composer:Alicja Boratyn/Jakub Sikora\n[00:01.760]   \n[00:01.760]演唱 Singer:Alicja Boratyn\n[00:02.240]   \n[00:02.240]和音 Backing Vocals:Alicja Boratyn/Jakub Sikora\n[00:02.970]   \n[00:02.970]钢琴/合成器 Piano/Synthesizers:Fryderyk Fiodorowicz\n[00:03.850]   \n[00:03.850]鼓机编程 Drums programming:Marcin Romanowski\n[00:04.570]   \n[00:04.570]贝斯 Bass:Marcin Romanowski\n[00:05.059]   \n[00:05.059]吉他 Guitar:Jakub Sikora\n[00:05.540]   \n[00:05.540]录音室 Recording Studio:Astrobots Studio\n[00:06.179]   \n[00:06.179]录音工程师 Recording Engineer:Marcin Romanowski\n[00:06.980]   \n[00:06.980]制作助理 Production Assistant:Jasmine Wong(Oasis Audio)\n[00:07.870]   \n[00:07.870]统筹 Project Coordinator:April Wang(Oasis Audio)/3A(Oasis Audio)\n[00:08.910]   \n[00:08.910]混音 Mixing:Marcin Romanowski\n[00:09.390]   \n[00:09.390]母带 Mastering:Marcin Romanowski\n[00:09.880]   \n[00:09.880]音乐制作人 Producer:Marcin Romanowski/Ricky Lee(BLUEPOCH)\n[00:10.839]   \n[00:10.839]What's set in stone\n[00:12.550]所谓一成不变\n[00:12.550]Will disappear into thin air\n[00:20.660]一如石刻风化消弭\n[00:20.660]The right is wrong\n[00:22.629]是非真假翻转\n[00:22.629]And fantasies are going nowhere\n[00:31.149]幻想常在杯中打转\n[00:31.149]Her destiny is out there\n[00:36.950]命运在远方呼喊\n[00:36.950]Drifting into darkness\n[01:01.280]坠入黑暗\n[01:01.280]The cup is full\n[01:03.039]杯中盛满时光\n[01:03.039]A silhouette is waving goodbye\n[01:11.280]折射背影挥别渐远\n[01:11.280]The liquid life\n[01:13.120]生命静静流动\n[01:13.120]The rain is rising up to the sky\n[01:21.599]看雨扑还天边之外\n[01:21.599]Her destiny is out there\n[01:27.270]命运在远方呼喊\n[01:27.270]Drifting into darkness\n[01:31.700]坠入黑暗\n[01:31.700]She's gonna find an answer\n[01:37.349]她会找到答案\n[01:37.349]Drifting into blackness\n[01:51.469]沉入夜晚\n[01:51.469]Worlds dissipate\n[01:53.609]世界消散\n[01:53.609]Rearrange and negate\n[01:55.920]分分合合\n[01:55.920]But the memory stays the same\n[02:01.989]唯记忆挂杯 不会褪色\n[02:01.989]Her destiny is out there\n[02:12.110]命运在远方呼喊\n[02:12.110]She's gonna find an answer\n[02:17.010]她会找到答案\n",
    "title": "漂游之人 Drifting",
    "artist": "The 1999&Alicja Boratyn",
    "album": "漂游之人 Drifting",
    "pic": "https://img3.kuwo.cn/star/albumcover/500/s4s60/83/1646203351.jpg",
    "releaseDate": "2025-05-31",
    "songTimeMinutes": "02:26",
    "albuminfo": "雨幕倒流,一个时代结束,重启新的旧日;\n行径的步印随雨水消散,而记忆存于心中;\n请继续前行吧,行路之间,我们终将再次相会。"
  }
}

错误码格式说明:

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

代码示例:


<?php
// 初始化cURL会话
$ch = curl_init();
// 设置请求URL,用户中心获取token,自行替换其他参数
curl_setopt($ch, CURLOPT_URL, "https://api.makuo.cc/api/get.music.kuwo?url=https://www.kuwo.cn/play_detail/475934974");
// 设置请求头
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://api.makuo.cc/api/get.music.kuwo?url=https://www.kuwo.cn/play_detail/475934974"
headers = {
    'Authorization': 'YOUR_TOKEN'
}

# 发送GET请求
response = requests.get(url, headers=headers)
# 将响应解析为JSON格式
data = response.json()
# 输出JSON数据
print(data)
            

// 发送GET请求,用户中心获取token,自行替换其他参数
fetch("https://api.makuo.cc/api/get.music.kuwo?url=https://www.kuwo.cn/play_detail/475934974", {
    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://api.makuo.cc/api/get.music.kuwo?url=https://www.kuwo.cn/play_detail/475934974");
        // 打开连接
        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://api.makuo.cc/api/get.music.kuwo?url=https://www.kuwo.cn/play_detail/475934974");
            // 将响应解析为字符串
            string responseBody = await response.Content.ReadAsStringAsync();
            // 输出JSON数据
            Console.WriteLine(responseBody);
        }
    }
}
            

require 'net/http'
require 'uri'

# 创建URI对象,用户中心获取token,自行替换其他参数
uri = URI.parse("https://api.makuo.cc/api/get.music.kuwo?url=https://www.kuwo.cn/play_detail/475934974")
# 创建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://api.makuo.cc/api/get.music.kuwo?url=https://www.kuwo.cn/play_detail/475934974", 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))
}