lx-music-desktop API 文档

本文档详细记录了 lx-music-desktop 项目使用的所有音乐平台 API。

概述

项目代码位置:src/renderer/utils/musicSdk/

每个音乐源都有独立的目录,包含以下模块:

  • musicSearch.js - 音乐搜索
  • hotSearch.js - 热门搜索
  • songList.js - 歌单相关
  • leaderboard.js - 排行榜
  • comment.js - 评论
  • lyric.js - 歌词
  • pic.js - 封面图片
  • index.js - 模块入口

酷狗音乐 (kg)

代码目录:src/renderer/utils/musicSdk/kg/

1. 音乐搜索 API

接口地址:

GET https://songsearch.kugou.com/song_search_v2

请求参数:

参数 类型 说明
keyword string 搜索关键词
page number 页码
pagesize number 每页数量
userid number 用户ID (默认0)
platform string 平台 (WebFilter)
filter number 过滤条件 (2)
iscorrection number 是否纠错 (1)
privilege_filter number 权限过滤 (0)
area_code number 地区代码 (1)

示例:

const url = `https://songsearch.kugou.com/song_search_v2?keyword=${encodeURIComponent(keyword)}&page=${page}&pagesize=${limit}&userid=0&platform=WebFilter&filter=2&iscorrection=1&privilege_filter=0&area_code=1`

响应字段:

{
  "error_code": 0,
  "data": {
    "total": 1000,
    "lists": [
      {
        "SongName": "歌曲名",
        "Singers": [{"name": "歌手"}],
        "AlbumName": "专辑名",
        "AlbumID": "12345",
        "Audioid": "音频ID",
        "Duration": 240,
        "FileHash": "哈希值",
        "FileSize": 3500000,
        "HQFileHash": "高品质哈希",
        "HQFileSize": 8000000,
        "SQFileHash": "无损哈希",
        "SQFileSize": 25000000
      }
    ]
  }
}

2. 热门搜索 API

接口地址:

GET http://gateway.kugou.com/api/v3/search/hot_tab

请求头:

{
  'dfid': '1ssiv93oVqMp27cirf2CvoF1',
  'mid': '156798703528610303473757548878786007104',
  'clienttime': 1584257267,
  'x-router': 'msearch.kugou.com',
  'user-agent': 'Android9-AndroidPhone-10020-130-0-searchrecommendprotocol-wifi',
  'kg-rc': 1,
}

请求参数:

参数 类型 说明
signature string 签名
appid number 应用ID (1005)
clientver number 客户端版本
plat number 平台 (0)

响应字段:

{
  "errcode": 0,
  "data": {
    "list": [
      {
        "keywords": [
          {"keyword": "热搜词1"},
          {"keyword": "热搜词2"}
        ]
      }
    ]
  }
}

3. 排行榜 API

排行榜列表:

GET http://mobilecdnbj.kugou.com/api/v5/rank/list

请求参数:

参数 类型 说明
version number 版本号 (9108)
plat number 平台 (0)
showtype number 显示类型 (2)
parentid number 父级ID (0)
apiver number API版本 (6)
area_code number 地区代码 (1)
withsong number 是否带歌曲 (1)

排行榜详情:

GET http://mobilecdnbj.kugou.com/api/v3/rank/song

请求参数:

参数 类型 说明
version number 版本号
ranktype number 排行类型 (1)
plat number 平台
pagesize number 每页数量
area_code number 地区代码
page number 页码
rankid number 排行榜ID

常用排行榜ID:

ID 名称
8888 TOP500
6666 飙升榜
59703 蜂鸟流行音乐榜
52144 抖音热歌榜
52767 快手热歌榜
24971 DJ热歌榜
23784 网络红歌榜

4. 歌单 API

歌单分类/列表:

GET http://www2.kugou.kugou.com/yueku/v9/special/getSpecial

请求参数:

参数 类型 说明
is_ajax number 是否AJAX请求 (1)
cdn string CDN
t string 排序ID
c string 分类ID
p number 页码

排序类型:

ID 名称
5 推荐
6 最热
7 最新
3 热藏
8 飙升

推荐歌单:

POST http://everydayrec.service.kugou.com/guess_special_recommend

请求体:

{
  "appid": 1001,
  "clienttime": 1566798337219,
  "clientver": 8275,
  "key": "f1f93580115bb106680d2375f8032d96",
  "mid": "21511157a05844bd085308bc76ef3343",
  "platform": "pc",
  "userid": "262643156",
  "return_min": 6,
  "return_max": 15
}

歌单详情:

GET http://www2.kugou.kugou.com/yueku/v9/special/single/{specialId}-5-9999.html

5. 评论 API

5.1 最新评论

接口地址:

GET http://m.comment.service.kugou.com/r/v1/rank/newest

5.2 热门评论

接口地址:

GET http://m.comment.service.kugou.com/r/v1/rank/topliked

请求参数:

参数 类型 必填 说明 参数来源
dfid string 设备ID (可固定0) 固定值
mid string 用户ID 固定值
clienttime number 客户端时间戳 Date.now()
uuid string UUID (可固定0) 固定值
extdata string 歌曲文件hash songInfo.hash ← 搜索结果的 FileHash
appid number 应用ID (固定1005) 固定值
code string 验证码 固定值 fc4be23b4e972707f36b8a828a93ba8a
schash string 歌曲文件hash songInfo.hash ← 搜索结果的 FileHash
clientver number 客户端版本 固定值 11409
p number 页码 用户传入参数
pagesize number 每页数量 用户传入参数
ver number 版本 (固定10) 固定值
kugouid string 酷狗用户ID (可固定0) 固定值
signature string 签名 signatureParams(params) 计算

5.3 回复评论

接口地址:

GET http://comment.service.kugou.com/index.php?r=commentsv2/getReplyWithLike

请求参数:

参数 类型 说明 参数来源
childrenid string 歌曲ID songInfo.songmid ← 搜索结果的 Audioid
tid string 评论ID 评论列表响应的 item.id
p number 页码 用户传入参数
pagesize number 每页数量 用户传入参数

6. 歌词 API

酷狗歌词获取需要两步:先搜索歌词获取歌词ID和accessKey,然后下载歌词内容。

6.1 歌词搜索

接口地址:

GET http://lyrics.kugou.com/search

请求参数:

参数 类型 必填 说明 参数来源
ver number 版本号 (固定值: 1) 固定值
man string 是否手动搜索 (固定值: yes) 固定值
client string 客户端类型 (固定值: pc) 固定值
keyword string 歌曲名称 (需URL编码) songInfo.name ← 搜索结果的 SongName
hash string 歌曲文件哈希值 songInfo.hash ← 搜索结果的 FileHash
timelength number 歌曲时长 (单位: ) songInfo._interval ← 搜索结果的 Duration
lrctxt number 是否返回歌词文本 (1=是) 固定值

请求头:

{
  'KG-RC': 1,
  'KG-THash': 'expand_search_manager.cpp:852736169:451',
  'User-Agent': 'KuGou2012-9020-ExpandSearchManager',
}

完整示例:

// 假设从搜索结果获取到的歌曲信息
const songInfo = {
  name: '晴天',           // 来自搜索API响应的 SongName
  hash: 'abc123def456',   // 来自搜索API响应的 FileHash
  _interval: 269,         // 来自搜索API响应的 Duration (秒)
}

// 构建歌词搜索URL
const url = `http://lyrics.kugou.com/search?ver=1&man=yes&client=pc&keyword=${encodeURIComponent(songInfo.name)}&hash=${songInfo.hash}&timelength=${songInfo._interval}&lrctxt=1`

响应字段说明:

字段 类型 说明
candidates array 歌词候选列表
candidates[].id string 歌词ID (用于下载)
candidates[].accesskey string 访问密钥 (用于下载)
candidates[].krctype number 歌词类型 (1=krc逐字歌词)
candidates[].contenttype number 内容类型

歌词格式判断逻辑:

// 如果 krctype == 1 且 contenttype != 1,使用 krc 格式,否则使用 lrc 格式
const fmt = (info.krctype == 1 && info.contenttype != 1) ? 'krc' : 'lrc'

6.2 歌词下载

接口地址:

GET http://lyrics.kugou.com/download

请求参数:

参数 类型 必填 说明 参数来源
ver number 版本号 (固定值: 1) 固定值
client string 客户端类型 (固定值: pc) 固定值
id string 歌词ID 歌词搜索响应的 candidates[0].id
accesskey string 访问密钥 歌词搜索响应的 candidates[0].accesskey
fmt string 歌词格式 (lrc/krc) 根据 krctype 和 contenttype 判断
charset string 字符集 (固定值: utf8) 固定值

请求头: (同歌词搜索)

歌词解码逻辑:

// lrc格式: 直接Base64解码
if (body.fmt === 'lrc') {
  const lyric = Buffer.from(body.content, 'base64').toString('utf-8')
}
// krc格式: 需要额外解密处理 (decodeKrc函数位于 src/common/utils/lyricUtils/kg.js)

6.3 完整调用流程

音乐搜索API → 获取 songInfo (name, hash, _interval)
      ↓
歌词搜索API → 参数: keyword=name, hash=hash, timelength=_interval
      ↓         返回: id, accesskey, krctype, contenttype
歌词下载API → 参数: id, accesskey, fmt
      ↓         返回: Base64编码的歌词内容
解码歌词    → lrc: Base64解码 / krc: Base64解码+decodeKrc()

songInfo 对象结构 (来自音乐搜索API):

const songInfo = {
  name: '晴天',                    // SongName - 用于歌词搜索keyword
  hash: 'abc123def456789...',     // FileHash - 用于歌词搜索hash
  _interval: 269,                  // Duration - 用于歌词搜索timelength (秒)
  interval: '04:29',              // 格式化后的时长
  singer: '周杰伦',
  albumId: '12345',
  songmid: '67890',
  source: 'kg',
}

酷我音乐 (kw)

代码目录:src/renderer/utils/musicSdk/kw/

1. 音乐搜索 API

接口地址:

GET http://search.kuwo.cn/r.s

请求参数:

参数 类型 说明
client string 客户端 (kt)
all string 搜索关键词
pn number 页码 (从0开始)
rn number 每页数量
uid string 用户ID
ver string 版本 (kwplayer_ar_9.2.2.1)
vipver number VIP版本 (1)
show_copyright_off number 显示无版权 (1)
newver number 新版本 (1)
ft string 类型 (music)
cluster number 聚合 (0)
strategy number 策略 (2012)
encoding string 编码 (utf8)
rformat string 返回格式 (json)
vermerge number 版本合并 (1)
mobi number 移动端 (1)
issubtitle number 是否有字幕 (1)

示例:

const url = `http://search.kuwo.cn/r.s?client=kt&all=${encodeURIComponent(keyword)}&pn=${page - 1}&rn=${limit}&uid=794762570&ver=kwplayer_ar_9.2.2.1&vipver=1&show_copyright_off=1&newver=1&ft=music&cluster=0&strategy=2012&encoding=utf8&rformat=json&vermerge=1&mobi=1&issubtitle=1`

响应字段:

{
  "TOTAL": "1000",
  "SHOW": "30",
  "abslist": [
    {
      "SONGNAME": "歌曲名",
      "ARTIST": "歌手",
      "ALBUM": "专辑名",
      "ALBUMID": "专辑ID",
      "MUSICRID": "MUSIC_12345",
      "DURATION": 240,
      "N_MINFO": "level:ff,bitrate:2000,format:flac,size:25.5M;..."
    }
  ]
}

2. 歌曲信息 API

接口地址:

GET http://www.kuwo.cn/api/www/music/musicInfo

请求参数:

参数 类型 说明
mid string 歌曲ID

响应:

{
  "code": 200,
  "data": {
    "name": "歌曲名",
    "artist": "歌手",
    "album": "专辑",
    "pic": "封面URL"
  }
}

3. 热门搜索 API

接口地址:

GET http://www.kuwo.cn/api/www/search/searchKey

4. 歌词 API

酷我歌词使用特殊的加密请求格式。

接口地址:

GET http://newlyric.kuwo.cn/newlyric.lrc?{加密参数}

加密参数构建:

// songmid 来自搜索结果的 MUSICRID (需去掉 "MUSIC_" 前缀)
const params = `user=12345,web,web,web&requester=localhost&req=1&rid=MUSIC_${songInfo.songmid}&lrcx=1`
// 使用 yeelion 密钥进行异或加密后Base64编码

参数来源:

参数 来源
rid songInfo.songmid ← 搜索结果的 MUSICRID 去掉 MUSIC_ 前缀

响应处理:

  • 响应内容需要先Base64解码
  • 然后使用 decodeLyric() 函数解密 (位于 kw/util.js)

5. 评论 API

接口地址(最新评论):

GET http://ncomment.kuwo.cn/com.s?type=get_comment

接口地址(热门评论):

GET http://ncomment.kuwo.cn/com.s?type=get_rec_comment

请求参数:

参数 类型 说明 参数来源
f string 固定web 固定值
type string 请求类型 get_commentget_rec_comment
sid string 歌曲ID songInfo.songmid ← 搜索结果 MUSICRID 去掉前缀
start number 起始位置 limit * (page - 1)
count number 数量 用户传入参数

腾讯音乐/QQ音乐 (tx)

代码目录:src/renderer/utils/musicSdk/tx/

1. 音乐搜索 API

接口地址:

POST https://u.y.qq.com/cgi-bin/musicu.fcg

请求头:

{
  'User-Agent': 'QQMusic 14090508(android 12)'
}

请求体:

{
  "comm": {
    "ct": "11",
    "cv": "14090508",
    "v": "14090508",
    "tmeAppID": "qqmusic",
    "phonetype": "EBG-AN10",
    "os_ver": "12"
  },
  "req": {
    "module": "music.search.SearchCgiService",
    "method": "DoSearchForQQMusicMobile",
    "param": {
      "search_type": 0,
      "query": "搜索关键词",
      "page_num": 1,
      "num_per_page": 30,
      "highlight": 0,
      "nqc_flag": 0,
      "multi_zhida": 0,
      "cat": 2,
      "grp": 1
    }
  }
}

响应字段:

{
  "code": 0,
  "req": {
    "code": 0,
    "data": {
      "body": {
        "item_song": [
          {
            "name": "歌曲名",
            "singer": [{"name": "歌手", "mid": "xxx"}],
            "album": {"name": "专辑", "mid": "xxx"},
            "interval": 240,
            "id": 12345,
            "mid": "xxx",
            "file": {
              "media_mid": "xxx",
              "size_128mp3": 3500000,
              "size_320mp3": 8000000,
              "size_flac": 25000000
            }
          }
        ]
      },
      "meta": {
        "estimate_sum": 1000
      }
    }
  }
}

2. 热门搜索 API

接口地址:

GET https://c.y.qq.com/splcloud/fcgi-bin/gethotkey.fcg

3. 排行榜 API

接口地址:

POST https://u.y.qq.com/cgi-bin/musicu.fcg

请求体(获取排行榜列表):

{
  "req": {
    "module": "musicToplist.ToplistInfoServer",
    "method": "GetAll",
    "param": {}
  }
}

4. 歌词 API

腾讯音乐歌词需要使用 songId(数字ID),如果只有 songmid 需要先调用 getMusicInfo 获取。

接口地址:

POST https://u.y.qq.com/cgi-bin/musicu.fcg

请求体:

{
  comm: { ct: '19', cv: '1859', uin: '0' },
  req: {
    method: 'GetPlayLyricInfo',
    module: 'music.musichallSong.PlayLyricInfo',
    param: {
      format: 'json',
      crypt: 1,
      songID: songId,  // 来自搜索结果的 id 或 getMusicInfo(songmid)
      qrc: 1,
      trans: 1,
      roma: 1,
    }
  }
}

参数来源:

参数 来源
songID songInfo.songId ← 搜索结果的 id;如无此字段需调用 getMusicInfo(songmid) 获取

响应字段:

字段 说明
req.data.lyric 歌词内容 (需解密)
req.data.trans 翻译歌词
req.data.roma 罗马音歌词

5. 评论 API

接口地址(普通评论):

POST http://c.y.qq.com/base/fcgi-bin/fcg_global_comment_h5.fcg

接口地址(热门评论):

POST https://u.y.qq.com/cgi-bin/musicu.fcg

请求参数(普通评论):

参数 类型 说明 参数来源
topid string 歌曲ID(数字) songInfo.songId ← 搜索结果 idgetMusicInfo(songmid)
biztype number 业务类型 (固定1) 固定值
cmd number 命令类型 (8=普通,9=热门) 固定值
pagenum number 页码 (从0开始) page - 1
pagesize number 每页数量 用户传入参数

请求参数(热门评论):

{
  req: {
    module: 'music.globalComment.CommentRead',
    method: 'GetHotCommentList',
    param: {
      BizType: 1,
      BizId: String(songId),  // 来自搜索结果或getMusicInfo
      PageSize: limit,
      PageNum: page - 1,
    }
  }
}

6. 封面图片

专辑封面:

https://y.gtimg.cn/music/photo_new/T002R500x500M000{albumMid}.jpg
  • albumMid ← 搜索结果的 album.mid

歌手封面:

https://y.gtimg.cn/music/photo_new/T001R500x500M000{singerMid}.jpg
  • singerMid ← 搜索结果的 singer[0].mid

网易云音乐 (wy)

代码目录:src/renderer/utils/musicSdk/wy/

注意: 网易云音乐 API 使用 weapi/eapi 加密,需要特殊处理。加密工具位于 utils/crypto.js

1. 音乐搜索 API

接口地址:

POST /api/cloudsearch/pc (通过 eapiRequest 加密)

请求参数:

参数 类型 说明
s string 搜索关键词
type number 搜索类型 (1=单曲)
limit number 每页数量
total boolean 是否返回总数
offset number 偏移量

搜索类型:

type 说明
1 单曲
10 专辑
100 歌手
1000 歌单
1002 用户
1004 MV
1006 歌词
1009 电台
1014 视频

2. 热门搜索 API

接口地址:

POST https://music.163.com/weapi/search/hot

需要 weapi 加密。


3. 排行榜 API

排行榜详情:

POST https://music.163.com/weapi/toplist/detail

4. 歌单 API

歌单列表:

POST https://music.163.com/weapi/playlist/list

歌单详情:

POST https://music.163.com/weapi/v6/playlist/detail

5. 评论 API

最新评论:

POST https://music.163.com/weapi/comment/resource/comments/get

请求参数(加密前):

{
  cursor: 时间戳,
  offset: 0,
  orderType: 1,
  pageNo: 1,
  pageSize: 20,
  rid: `R_SO_4_${songmid}`,     // songmid 来自搜索结果的 id
  threadId: `R_SO_4_${songmid}` // 同上
}

参数来源:

参数 来源
songmid songInfo.songmid ← 搜索结果的 id (网易云歌曲ID是纯数字)

热门评论:

POST https://music.163.com/weapi/v1/resource/hotcomments/R_SO_4_{songmid}

请求参数(加密前):

{
  rid: `R_SO_4_${songmid}`,  // songmid ← 搜索结果的 id
  limit: 100,
  offset: 0,
  beforeTime: Date.now()
}

6. 歌词 API

接口地址(新版,带逐字歌词):

POST https://interface3.music.163.com/eapi/song/lyric/v1

请求参数(eapi加密):

参数 类型 说明 参数来源
id number 歌曲ID songInfo.songmid ← 搜索结果的 id
cp boolean 固定false 固定值
tv number 翻译版本 (0) 固定值
lv number 歌词版本 (0) 固定值
rv number 罗马音版本 (0) 固定值
kv number 卡拉OK版本 (0) 固定值
yv number 逐字歌词版本 (0) 固定值
ytv/yrv number 逐字翻译/罗马音 (0) 固定值

响应字段:

字段 说明
lrc.lyric 普通歌词
tlyric.lyric 翻译歌词
romalrc.lyric 罗马音歌词
yrc.lyric 逐字歌词

7. 歌曲详情 API

接口地址:

GET https://music.163.com/api/v3/song/detail

请求参数:

参数 类型 说明 参数来源
c string JSON数组 [{"id":songmid}],songmid ← 搜索结果 id

咪咕音乐 (mg)

代码目录:src/renderer/utils/musicSdk/mg/

1. 音乐搜索 API

接口地址:

GET https://jadeite.migu.cn/music_search/v3/search/searchAll

请求头:

{
  'uiVersion': 'A_music_3.6.1',
  'deviceId': deviceId,
  'timestamp': timestamp,
  'sign': sign,
  'channel': '0146921',
  'User-Agent': 'Mozilla/5.0 (Linux; U; Android 11.0.0; zh-cn; MI 11 Build/OPR1.170623.032) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'
}

请求参数:

参数 类型 说明
isCorrect number 是否纠错 (0)
isCopyright number 是否有版权 (1)
searchSwitch string 搜索开关 (JSON编码)
pageSize number 每页数量
text string 搜索关键词
pageNo number 页码
sort number 排序 (0)
sid string 会话ID

签名算法:

const createSignature = (time, str) => {
  const deviceId = '963B7AA0D21511ED807EE5846EC87D20'
  const signatureMd5 = '6cdc72a439cef99a3418d2a78aa28c73'
  const sign = toMD5(`${str}${signatureMd5}yyapp2d16148780a1dcc7408e06336b98cfd50${deviceId}${time}`)
  return { sign, deviceId }
}

响应字段:

{
  "code": "000000",
  "songResultData": {
    "totalCount": 1000,
    "resultList": [
      [
        {
          "songId": "xxx",
          "copyrightId": "xxx",
          "name": "歌曲名",
          "singerList": [{"name": "歌手"}],
          "album": "专辑名",
          "albumId": "xxx",
          "duration": 240,
          "img1": "封面1",
          "img2": "封面2",
          "img3": "封面3",
          "lrcUrl": "歌词URL",
          "audioFormats": [
            {"formatType": "PQ", "asize": 3500000},
            {"formatType": "HQ", "asize": 8000000},
            {"formatType": "SQ", "asize": 25000000},
            {"formatType": "ZQ24", "asize": 50000000}
          ]
        }
      ]
    ]
  }
}

2. 热门搜索 API

接口地址:

GET https://app.c.nf.migu.cn/MIGUM2.0/v1.0/content/hotword.do?ua=Android

3. 歌词 API

咪咕歌词有两种格式:mrc(加密逐字歌词)和lrc(普通歌词),URL直接从搜索结果中获取。

歌词获取流程:

  1. 从搜索结果获取 mrcUrllrcUrltrcUrl
  2. 优先使用 mrcUrl(需解密),否则使用 lrcUrl

参数来源:

参数 来源
mrcUrl songInfo.mrcUrl ← 搜索结果的 mrcUrl (加密逐字歌词URL)
lrcUrl songInfo.lrcUrl ← 搜索结果的 lrcUrl (普通歌词URL)
trcUrl songInfo.trcUrl ← 搜索结果的 trcUrl (翻译歌词URL)
copyrightId songInfo.copyrightId ← 搜索结果的 copyrightId (用于获取歌曲详情)

如果搜索结果没有URL,需要先获取歌曲详情:

GET https://c.musicapp.migu.cn/MIGUM2.0/v1.0/content/resourceinfo.do

请求参数:

参数 类型 说明 参数来源
copyrightId string 版权ID songInfo.copyrightId ← 搜索结果 copyrightId

4. 封面图片

基础URL:

http://d.musicapp.migu.cn{imgPath}

参数来源:

参数 来源
imgPath songInfo.img3img2img1 ← 搜索结果的图片路径

公共接口说明

每个音乐源暴露的统一接口

方法 说明 参数
musicSearch.search(keyword, page, limit) 音乐搜索 关键词、页码、数量
hotSearch.getList() 获取热门搜索词
songList.getList(sortId, tagId, page) 获取歌单列表 排序、标签、页码
songList.getListDetail(id, page) 获取歌单详情 歌单ID、页码
leaderboard.getBoards() 获取排行榜列表
leaderboard.getList(bangid, page) 获取排行榜详情 榜单ID、页码
comment.getComment(songInfo, page, limit) 获取评论 歌曲信息、页码、数量
comment.getHotComment(songInfo, page, limit) 获取热门评论 歌曲信息、页码、数量
getLyric(songInfo) 获取歌词 歌曲信息
getPic(songInfo) 获取封面图片 歌曲信息
getMusicUrl(songInfo, type) 获取音乐播放链接 歌曲信息、品质类型
getMusicDetailPageUrl(songInfo) 获取音乐详情页URL 歌曲信息

音质类型

类型 说明
128k 标准音质 (128kbps MP3)
320k 高品质 (320kbps MP3)
flac 无损音质 (FLAC)
flac24bit Hi-Res高解析度 (24bit FLAC)

注意事项

  1. 签名/加密: 部分API需要签名或加密处理

    • 酷狗:signatureParams() 函数
    • 网易云:weapi() / eapiRequest() 加密
    • 咪咕:MD5签名
  2. 请求头: 大部分API需要特定的 User-Agent 和其他请求头

  3. 频率限制: 请注意API调用频率,避免被封禁

  4. 版权说明: 本文档仅用于学习研究,请勿用于商业用途


更新日志

  • 2025-12-27: 初始版本,整理5个音乐源的所有API