@sansenjian/qq-music-api 2.2.9 → 2.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +28 -1
- package/README.md +10 -11
- package/dist/api/index.js +9 -0
- package/dist/app.js +8 -43
- package/dist/index.js +13 -1
- package/dist/koaApp.js +49 -0
- package/dist/module/apis/downloadQQMusic.js +2 -1
- package/dist/module/apis/music/getLyric.js +220 -16
- package/dist/module/apis/music/getMusicPlay.js +3 -2
- package/dist/package.json +19 -15
- package/dist/routers/context/getLyric.js +12 -2
- package/dist/routers/context/getNewDisks.js +4 -0
- package/dist/routers/context/getRecommend.js +4 -0
- package/dist/routers/context/getTicketInfo.js +4 -0
- package/dist/util/cookieResolver.js +10 -4
- package/docs-dist/404.html +6 -6
- package/docs-dist/CHANGELOG-ARCHITECTURE.html +14 -14
- package/docs-dist/COOKIE_CONFIG_GUIDE.html +13 -13
- package/docs-dist/DEGRADE_EXAMPLES.html +109 -0
- package/docs-dist/FALLBACK_MODE_GUIDE.html +21 -21
- package/docs-dist/QUICK_START.html +62 -0
- package/docs-dist/README.html +17 -17
- package/docs-dist/TEST_USER_PLAYLISTS.html +14 -14
- package/docs-dist/USER_AVATAR_GUIDE.html +16 -16
- package/docs-dist/api/comments.html +12 -12
- package/docs-dist/api/index.html +10 -10
- package/docs-dist/api/music.html +15 -13
- package/docs-dist/api/other.html +13 -13
- package/docs-dist/api/playground.html +27 -0
- package/docs-dist/api/playlist.html +15 -15
- package/docs-dist/api/rank.html +12 -12
- package/docs-dist/api/search.html +13 -13
- package/docs-dist/api/singer.html +12 -12
- package/docs-dist/api/user.html +16 -16
- package/docs-dist/assets/{CHANGELOG-ARCHITECTURE.md.r40JGJZK.js → CHANGELOG-ARCHITECTURE.md.CYHmaBdY.js} +5 -5
- package/docs-dist/assets/CHANGELOG-ARCHITECTURE.md.CYHmaBdY.lean.js +1 -0
- package/docs-dist/assets/COOKIE_CONFIG_GUIDE.md.Nvywo7CW.js +13 -0
- package/docs-dist/assets/COOKIE_CONFIG_GUIDE.md.Nvywo7CW.lean.js +1 -0
- package/docs-dist/assets/DEGRADE_EXAMPLES.md.Cz2J-qwE.js +83 -0
- package/docs-dist/assets/DEGRADE_EXAMPLES.md.Cz2J-qwE.lean.js +1 -0
- package/docs-dist/assets/{FALLBACK_MODE_GUIDE.md.BBdcIdh_.js → FALLBACK_MODE_GUIDE.md.wKA9yqoI.js} +12 -12
- package/docs-dist/assets/FALLBACK_MODE_GUIDE.md.wKA9yqoI.lean.js +1 -0
- package/docs-dist/assets/QUICK_START.md.D5KfDgbs.js +36 -0
- package/docs-dist/assets/QUICK_START.md.D5KfDgbs.lean.js +1 -0
- package/docs-dist/assets/README.md.CHbArqA7.js +421 -0
- package/docs-dist/assets/README.md.CHbArqA7.lean.js +1 -0
- package/docs-dist/assets/TEST_USER_PLAYLISTS.md.BfBxYbaM.js +16 -0
- package/docs-dist/assets/TEST_USER_PLAYLISTS.md.BfBxYbaM.lean.js +1 -0
- package/docs-dist/assets/{USER_AVATAR_GUIDE.md.CVHPs2Dn.js → USER_AVATAR_GUIDE.md.D5Rti1Gg.js} +7 -7
- package/docs-dist/assets/USER_AVATAR_GUIDE.md.D5Rti1Gg.lean.js +1 -0
- package/docs-dist/assets/{api_comments.md.79Q_C8Qp.js → api_comments.md.5nDhrWa8.js} +3 -3
- package/docs-dist/assets/api_comments.md.5nDhrWa8.lean.js +1 -0
- package/docs-dist/assets/api_index.md.DdG1WHkZ.js +1 -0
- package/docs-dist/assets/api_index.md.DdG1WHkZ.lean.js +1 -0
- package/docs-dist/assets/{api_music.md.B1AzLePX.js → api_music.md.D66hq-_4.js} +6 -4
- package/docs-dist/assets/api_music.md.D66hq-_4.lean.js +1 -0
- package/docs-dist/assets/api_other.md.9KhspVEM.js +7 -0
- package/docs-dist/assets/api_other.md.9KhspVEM.lean.js +1 -0
- package/docs-dist/assets/api_playground.md.BZBvYMm2.js +11 -0
- package/docs-dist/assets/api_playground.md.BZBvYMm2.lean.js +11 -0
- package/docs-dist/assets/{api_playlist.md.8ACJ3QqD.js → api_playlist.md.BQK32ZyE.js} +6 -6
- package/docs-dist/assets/api_playlist.md.BQK32ZyE.lean.js +1 -0
- package/docs-dist/assets/{api_rank.md.B8IP2ZRy.js → api_rank.md.z7YBwVgw.js} +3 -3
- package/docs-dist/assets/api_rank.md.z7YBwVgw.lean.js +1 -0
- package/docs-dist/assets/{api_search.md.DO9J6nvp.js → api_search.md.GfzIBRfc.js} +4 -4
- package/docs-dist/assets/api_search.md.GfzIBRfc.lean.js +1 -0
- package/docs-dist/assets/api_singer.md.BDR-_qDH.js +21 -0
- package/docs-dist/assets/api_singer.md.BDR-_qDH.lean.js +1 -0
- package/docs-dist/assets/{api_user.md.Cb7Ky3Sn.js → api_user.md.Dx8BWGrb.js} +7 -7
- package/docs-dist/assets/api_user.md.Dx8BWGrb.lean.js +1 -0
- package/docs-dist/assets/app.CxuIZ1W7.js +1 -0
- package/docs-dist/assets/chunks/@localSearchIndexroot.ygoKgu27.js +1 -0
- package/docs-dist/assets/chunks/VPLocalSearchBox.BqgkAhNM.js +3 -0
- package/docs-dist/assets/chunks/framework.BUY3a635.js +4 -0
- package/docs-dist/assets/chunks/theme.C-Z3DN0r.js +2 -0
- package/docs-dist/assets/{guide_architecture.md.CzgqynmB.js → guide_architecture.md.SHnKkzwb.js} +20 -20
- package/docs-dist/assets/guide_architecture.md.SHnKkzwb.lean.js +1 -0
- package/docs-dist/assets/guide_authentication.md.CZCKocgR.js +4 -0
- package/docs-dist/assets/guide_authentication.md.CZCKocgR.lean.js +1 -0
- package/docs-dist/assets/guide_index.md.CkJ-jjL0.js +1 -0
- package/docs-dist/assets/guide_index.md.CkJ-jjL0.lean.js +1 -0
- package/docs-dist/assets/guide_installation.md.D2TBzILh.js +7 -0
- package/docs-dist/assets/guide_installation.md.D2TBzILh.lean.js +1 -0
- package/docs-dist/assets/guide_quickstart.md.J7Sib8wg.js +13 -0
- package/docs-dist/assets/guide_quickstart.md.J7Sib8wg.lean.js +1 -0
- package/docs-dist/assets/index.md.ClwYf6Qc.js +1 -0
- package/docs-dist/assets/index.md.ClwYf6Qc.lean.js +1 -0
- package/docs-dist/assets/inter-italic-cyrillic-ext._dlW9xFb.woff2 +0 -0
- package/docs-dist/assets/inter-italic-cyrillic.D7dRslh9.woff2 +0 -0
- package/docs-dist/assets/inter-italic-greek-ext.Ct-Tf2bq.woff2 +0 -0
- package/docs-dist/assets/inter-italic-greek.DNcpQ8QC.woff2 +0 -0
- package/docs-dist/assets/inter-italic-latin-ext.DytegdRQ.woff2 +0 -0
- package/docs-dist/assets/inter-italic-latin.COaG5lWR.woff2 +0 -0
- package/docs-dist/assets/inter-italic-vietnamese.BI5UxJD-.woff2 +0 -0
- package/docs-dist/assets/inter-roman-cyrillic-ext.BeNbU08G.woff2 +0 -0
- package/docs-dist/assets/inter-roman-cyrillic.CD0kT8R4.woff2 +0 -0
- package/docs-dist/assets/inter-roman-greek-ext.CFAEQ5Ow.woff2 +0 -0
- package/docs-dist/assets/inter-roman-greek.Dsf7YjP7.woff2 +0 -0
- package/docs-dist/assets/inter-roman-latin-ext.Dl_ayf4-.woff2 +0 -0
- package/docs-dist/assets/inter-roman-latin.Cy4MYw_J.woff2 +0 -0
- package/docs-dist/assets/inter-roman-vietnamese.CpqCnS2H.woff2 +0 -0
- package/docs-dist/assets/reference_response-format.md.BrGoGoPV.js +12 -0
- package/docs-dist/assets/reference_response-format.md.BrGoGoPV.lean.js +1 -0
- package/docs-dist/assets/style.D_YoXH3a.css +1 -0
- package/docs-dist/guide/architecture.html +29 -29
- package/docs-dist/guide/authentication.html +12 -12
- package/docs-dist/guide/index.html +10 -10
- package/docs-dist/guide/installation.html +13 -13
- package/docs-dist/guide/quickstart.html +15 -15
- package/docs-dist/hashmap.json +1 -1
- package/docs-dist/index.html +10 -10
- package/docs-dist/reference/response-format.html +13 -13
- package/docs-dist/version.json +3 -3
- package/package.json +19 -15
- package/public/index.html +966 -0
- package/public/playground-utils.js +150 -0
- package/dist/jest.config.js +0 -52
- package/dist/scripts/run-tests-with-flags.js +0 -139
- package/dist/types/api.js +0 -55
- package/docs-dist/assets/CHANGELOG-ARCHITECTURE.md.r40JGJZK.lean.js +0 -1
- package/docs-dist/assets/COOKIE_CONFIG_GUIDE.md.BVXl7WHu.js +0 -13
- package/docs-dist/assets/COOKIE_CONFIG_GUIDE.md.BVXl7WHu.lean.js +0 -1
- package/docs-dist/assets/FALLBACK_MODE_GUIDE.md.BBdcIdh_.lean.js +0 -1
- package/docs-dist/assets/README.md.D6Tw0nRd.js +0 -421
- package/docs-dist/assets/README.md.D6Tw0nRd.lean.js +0 -1
- package/docs-dist/assets/TEST_USER_PLAYLISTS.md.DSt20Igj.js +0 -16
- package/docs-dist/assets/TEST_USER_PLAYLISTS.md.DSt20Igj.lean.js +0 -1
- package/docs-dist/assets/USER_AVATAR_GUIDE.md.CVHPs2Dn.lean.js +0 -1
- package/docs-dist/assets/api_comments.md.79Q_C8Qp.lean.js +0 -1
- package/docs-dist/assets/api_index.md.CU3By8tw.js +0 -1
- package/docs-dist/assets/api_index.md.CU3By8tw.lean.js +0 -1
- package/docs-dist/assets/api_music.md.B1AzLePX.lean.js +0 -1
- package/docs-dist/assets/api_other.md.DCg4bzA7.js +0 -7
- package/docs-dist/assets/api_other.md.DCg4bzA7.lean.js +0 -1
- package/docs-dist/assets/api_playlist.md.8ACJ3QqD.lean.js +0 -1
- package/docs-dist/assets/api_rank.md.B8IP2ZRy.lean.js +0 -1
- package/docs-dist/assets/api_search.md.DO9J6nvp.lean.js +0 -1
- package/docs-dist/assets/api_singer.md.CcL32xuN.js +0 -21
- package/docs-dist/assets/api_singer.md.CcL32xuN.lean.js +0 -1
- package/docs-dist/assets/api_user.md.Cb7Ky3Sn.lean.js +0 -1
- package/docs-dist/assets/app.CSainqD9.js +0 -1
- package/docs-dist/assets/chunks/@localSearchIndexroot.BKleDIv-.js +0 -1
- package/docs-dist/assets/chunks/VPLocalSearchBox.BUBaq7tw.js +0 -9
- package/docs-dist/assets/chunks/framework.aJbMEiY9.js +0 -19
- package/docs-dist/assets/chunks/theme.CzMhU0Ps.js +0 -2
- package/docs-dist/assets/guide_architecture.md.CzgqynmB.lean.js +0 -1
- package/docs-dist/assets/guide_authentication.md.a8yTA8Xe.js +0 -4
- package/docs-dist/assets/guide_authentication.md.a8yTA8Xe.lean.js +0 -1
- package/docs-dist/assets/guide_index.md.BgUUL6fI.js +0 -1
- package/docs-dist/assets/guide_index.md.BgUUL6fI.lean.js +0 -1
- package/docs-dist/assets/guide_installation.md.BCZ4jBl_.js +0 -7
- package/docs-dist/assets/guide_installation.md.BCZ4jBl_.lean.js +0 -1
- package/docs-dist/assets/guide_quickstart.md.9-4dA6wS.js +0 -13
- package/docs-dist/assets/guide_quickstart.md.9-4dA6wS.lean.js +0 -1
- package/docs-dist/assets/index.md.z0hAJioN.js +0 -1
- package/docs-dist/assets/index.md.z0hAJioN.lean.js +0 -1
- package/docs-dist/assets/inter-italic-cyrillic-ext.r48I6akx.woff2 +0 -0
- package/docs-dist/assets/inter-italic-cyrillic.By2_1cv3.woff2 +0 -0
- package/docs-dist/assets/inter-italic-greek-ext.1u6EdAuj.woff2 +0 -0
- package/docs-dist/assets/inter-italic-greek.DJ8dCoTZ.woff2 +0 -0
- package/docs-dist/assets/inter-italic-latin-ext.CN1xVJS-.woff2 +0 -0
- package/docs-dist/assets/inter-italic-latin.C2AdPX0b.woff2 +0 -0
- package/docs-dist/assets/inter-italic-vietnamese.BSbpV94h.woff2 +0 -0
- package/docs-dist/assets/inter-roman-cyrillic-ext.BBPuwvHQ.woff2 +0 -0
- package/docs-dist/assets/inter-roman-cyrillic.C5lxZ8CY.woff2 +0 -0
- package/docs-dist/assets/inter-roman-greek-ext.CqjqNYQ-.woff2 +0 -0
- package/docs-dist/assets/inter-roman-greek.BBVDIX6e.woff2 +0 -0
- package/docs-dist/assets/inter-roman-latin-ext.4ZJIpNVo.woff2 +0 -0
- package/docs-dist/assets/inter-roman-latin.Di8DUHzh.woff2 +0 -0
- package/docs-dist/assets/inter-roman-vietnamese.BjW4sHH5.woff2 +0 -0
- package/docs-dist/assets/reference_response-format.md.VvQTLDZr.js +0 -12
- package/docs-dist/assets/reference_response-format.md.VvQTLDZr.lean.js +0 -1
- package/docs-dist/assets/style.DM4qKDd4.css +0 -1
|
@@ -0,0 +1,421 @@
|
|
|
1
|
+
import{c as o,S as e,j as a,m as i}from"./chunks/framework.BUY3a635.js";const l=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"README.md","filePath":"README.md","lastUpdated":1779031768000}'),n={name:"README.md"};function u(s,t,p,c,d,q){return e(),a("div",null,[...t[0]||(t[0]=[i(`<h2 align="center" id="qqmusicapi">QQ Music API</h2><p>!> QQ音乐API koa2 版本, 通过Web网页版请求QQ音乐接口数据, 有问题请提 <a href="https://github.com/Rain120/qq-music-api/issues" target="_blank" rel="noreferrer">issue</a>, 或者你有其他想法欢迎<code>PR</code>.</p><h2 id="api结构图" tabindex="-1">API结构图 <a class="header-anchor" href="#api结构图" aria-label="Permalink to “API结构图”"></a></h2><p><img src="https://raw.githubusercontent.com/Rain120/qq-music-api/master/screenshot/qq-music.png" alt="qq-music"></p><h2 id="api接口" tabindex="-1">API接口 <a class="header-anchor" href="#api接口" aria-label="Permalink to “API接口”"></a></h2><p>!> koa2 接口说明(参数, 地址, 效果图)</p><h2 id="新特性" tabindex="-1">新特性 <a class="header-anchor" href="#新特性" aria-label="Permalink to “新特性”"></a></h2><h3 id="支持自定义设置cookie" tabindex="-1">支持自定义设置cookie <a class="header-anchor" href="#支持自定义设置cookie" aria-label="Permalink to “支持自定义设置cookie”"></a></h3><p>!> 2020-01-23 新增, 只需要配置 <code>config/user-info.js</code> 中的 <code>cookies</code> 字段就会在发送请求时带上你的 <code>cookies</code>。</p><h4 id="格式化自定义的-cookie" tabindex="-1">格式化自定义的 cookie <a class="header-anchor" href="#格式化自定义的-cookie" aria-label="Permalink to “格式化自定义的 cookie”"></a></h4><p><img src="https://raw.githubusercontent.com/Rain120/qq-music-api/master/screenshot/normalize-cookie.png" alt="normalize-cookie.png"></p><h3 id="特性提示支持" tabindex="-1">特性提示支持 <a class="header-anchor" href="#特性提示支持" aria-label="Permalink to “特性提示支持”"></a></h3><p><img src="https://raw.githubusercontent.com/Rain120/qq-music-api/master/screenshot/new-feature-error-tips.png" alt="new-feature-error-tips.png"></p><h3 id="获取-cookie" tabindex="-1">获取 Cookie <a class="header-anchor" href="#获取-cookie" aria-label="Permalink to “获取 Cookie”"></a></h3><p>!> 目前只支持用户自己从 <em>QQ音乐</em> 获取获取 <code>Cookie</code>, 如何获取 <code>Cookie</code>, 登录 <code>QQ音乐</code>, 然后 <code>F12</code>, 找到 <code>Network</code>, 随便找一个获取数据的接口, 复制接口中 <code>request headers</code> 中的 <code>Cookie</code> 即可。</p><p>接口说明: 调用此接口, 可获取自己在 <code>config/user-info.js</code> 配置的 <code>Cookie</code> 被格式化的结果</p><p>配置信息如下:</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes vitesse-light vitesse-dark" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;" tabindex="0" dir="ltr"><code><span class="line"><span>const userInfo = {</span></span>
|
|
2
|
+
<span class="line"><span> loginUin: 'qq号码',</span></span>
|
|
3
|
+
<span class="line"><span> cookie: '',</span></span>
|
|
4
|
+
<span class="line"><span>}</span></span></code></pre></div><p>接口地址: <code>/user/getCookie</code></p><p>调用例子: <code>/user/getCookie</code></p><p>示例截图:</p><p><img src="https://raw.githubusercontent.com/Rain120/qq-music-api/master/screenshot/normalize-cookie.png" alt="normalize-cookie.png"></p><h3 id="获取qq音乐产品的下载地址" tabindex="-1">获取QQ音乐产品的下载地址 <a class="header-anchor" href="#获取qq音乐产品的下载地址" aria-label="Permalink to “获取QQ音乐产品的下载地址”"></a></h3><p>接口说明: 调用此接口, 可获取QQ音乐标准产品下载链接</p><p>接口地址: <code>/downloadQQMusic</code></p><p>调用例子: <code>/downloadQQMusic</code></p><p>示例截图:</p><p><img src="https://raw.githubusercontent.com/Rain120/qq-music-api/master/screenshot/downloadQQMusic.png" alt="获取QQ音乐产品的下载地址"></p><h3 id="获取歌单分类" tabindex="-1">获取歌单分类 <a class="header-anchor" href="#获取歌单分类" aria-label="Permalink to “获取歌单分类”"></a></h3><p>接口说明: 调用此接口, 可获取歌单分类, 包含<code>category</code>信息</p><p>接口地址: <code>/getSongListCategories</code></p><p>调用例子: <code>/getSongListCategories</code></p><details><summary>SortID</summary><pre><code>sortId: 1, sortName: 默认
|
|
5
|
+
sortId: 2, sortName: 最新
|
|
6
|
+
sortId: 3, sortName: 最热
|
|
7
|
+
sortId: 4, sortName: 评分
|
|
8
|
+
sortId: 5, sortName: none
|
|
9
|
+
</code></pre></details><p><strong>歌单分类(categoryId & categoryName)</strong></p><details><summary>1. 热门</summary><pre><code>1.1
|
|
10
|
+
"categoryId": 10000000,
|
|
11
|
+
"categoryName": 全部,
|
|
12
|
+
</code></pre></details><details><summary>2. 语种</summary><pre><code>2.1
|
|
13
|
+
"categoryId": 167,
|
|
14
|
+
"categoryName": "英语",
|
|
15
|
+
2.2
|
|
16
|
+
"categoryId": 168,
|
|
17
|
+
"categoryName": "韩语",
|
|
18
|
+
2.3
|
|
19
|
+
"categoryId": 166,
|
|
20
|
+
"categoryName": "粤语",
|
|
21
|
+
2.4
|
|
22
|
+
"categoryId": 169,
|
|
23
|
+
"categoryName": "日语",
|
|
24
|
+
2.5
|
|
25
|
+
"categoryId": 170,
|
|
26
|
+
"categoryName": "小语种",
|
|
27
|
+
2.6
|
|
28
|
+
"categoryId": 203,
|
|
29
|
+
"categoryName": "闽南语",
|
|
30
|
+
2.7
|
|
31
|
+
"categoryId": 204,
|
|
32
|
+
"categoryName": "法语",
|
|
33
|
+
2.8
|
|
34
|
+
"categoryId": 205,
|
|
35
|
+
"categoryName": "拉丁语",
|
|
36
|
+
</code></pre></details><details><summary>3. 流派</summary><pre><code>3.1
|
|
37
|
+
"categoryId": 6,
|
|
38
|
+
"categoryName": "流行",
|
|
39
|
+
3.2
|
|
40
|
+
"categoryId": 15,
|
|
41
|
+
"categoryName": "轻音乐",
|
|
42
|
+
3.3
|
|
43
|
+
"categoryId": 11,
|
|
44
|
+
"categoryName": "摇滚",
|
|
45
|
+
3.4
|
|
46
|
+
"categoryId": 28,
|
|
47
|
+
"categoryName": "民谣",
|
|
48
|
+
3.5
|
|
49
|
+
"categoryId": 8,
|
|
50
|
+
"categoryName": "R&B",
|
|
51
|
+
3.6
|
|
52
|
+
"categoryId": 153,
|
|
53
|
+
"categoryName": "嘻哈",
|
|
54
|
+
3.7
|
|
55
|
+
"categoryId": 24,
|
|
56
|
+
"categoryName": "电子",
|
|
57
|
+
3.8
|
|
58
|
+
"categoryId": 27,
|
|
59
|
+
"categoryName": "古典",
|
|
60
|
+
3.9
|
|
61
|
+
"categoryId": 18,
|
|
62
|
+
"categoryName": "乡村",
|
|
63
|
+
3.10
|
|
64
|
+
"categoryId": 22,
|
|
65
|
+
"categoryName": "蓝调",
|
|
66
|
+
3.11
|
|
67
|
+
"categoryId": 21,
|
|
68
|
+
"categoryName": "爵士",
|
|
69
|
+
3.12
|
|
70
|
+
"categoryId": 164,
|
|
71
|
+
"categoryName": "新世纪",
|
|
72
|
+
3.13
|
|
73
|
+
"categoryId": 25,
|
|
74
|
+
"categoryName": "拉丁",
|
|
75
|
+
3.14
|
|
76
|
+
"categoryId": 218,
|
|
77
|
+
"categoryName": "后摇",
|
|
78
|
+
3.15
|
|
79
|
+
"categoryId": 219,
|
|
80
|
+
"categoryName": "中国传统",
|
|
81
|
+
3.16
|
|
82
|
+
"categoryId": 220,
|
|
83
|
+
"categoryName": "世界音乐",
|
|
84
|
+
</code></pre></details><details><summary>4. 主题</summary><pre><code>4.1
|
|
85
|
+
"categoryId": 39,
|
|
86
|
+
"categoryName": "ACG",
|
|
87
|
+
4.2
|
|
88
|
+
"categoryId": 136,
|
|
89
|
+
"categoryName": "经典",
|
|
90
|
+
4.3
|
|
91
|
+
"categoryId": 146,
|
|
92
|
+
"categoryName": "网络歌曲",
|
|
93
|
+
4.4
|
|
94
|
+
"categoryId": 133,
|
|
95
|
+
"categoryName": "影视",
|
|
96
|
+
4.5
|
|
97
|
+
"categoryId": 141,
|
|
98
|
+
"categoryName": "KTV热歌",
|
|
99
|
+
4.6
|
|
100
|
+
"categoryId": 131,
|
|
101
|
+
"categoryName": "儿歌",
|
|
102
|
+
4.7
|
|
103
|
+
"categoryId": 145,
|
|
104
|
+
"categoryName": "中国风",
|
|
105
|
+
4.8
|
|
106
|
+
"categoryId": 194,
|
|
107
|
+
"categoryName": "古风",
|
|
108
|
+
4.9
|
|
109
|
+
"categoryId": 148,
|
|
110
|
+
"categoryName": "情歌",
|
|
111
|
+
4.10
|
|
112
|
+
"categoryId": 196,
|
|
113
|
+
"categoryName": "城市",
|
|
114
|
+
4.11
|
|
115
|
+
"categoryId": 197,
|
|
116
|
+
"categoryName": "现场音乐",
|
|
117
|
+
4.12
|
|
118
|
+
"categoryId": 199,
|
|
119
|
+
"categoryName": "背景音乐",
|
|
120
|
+
4.13
|
|
121
|
+
"categoryId": 200,
|
|
122
|
+
"categoryName": "佛教音乐",
|
|
123
|
+
4.14
|
|
124
|
+
"categoryId": 201,
|
|
125
|
+
"categoryName": "UP主",
|
|
126
|
+
4.15
|
|
127
|
+
"categoryId": 202,
|
|
128
|
+
"categoryName": "乐器",
|
|
129
|
+
4.16
|
|
130
|
+
"categoryId": 14,
|
|
131
|
+
"categoryName": "DJ",
|
|
132
|
+
</code></pre></details><details><summary>5. 心情</summary><pre><code>5.1
|
|
133
|
+
"categoryId": 52,
|
|
134
|
+
"categoryName": "伤感",
|
|
135
|
+
5.2
|
|
136
|
+
"categoryId": 122,
|
|
137
|
+
"categoryName": "安静",
|
|
138
|
+
5.3
|
|
139
|
+
"categoryId": 117,
|
|
140
|
+
"categoryName": "快乐",
|
|
141
|
+
5.4
|
|
142
|
+
"categoryId": 116,
|
|
143
|
+
"categoryName": "治愈",
|
|
144
|
+
5.5
|
|
145
|
+
"categoryId": 125,
|
|
146
|
+
"categoryName": "励志",
|
|
147
|
+
5.6
|
|
148
|
+
"categoryId": 59,
|
|
149
|
+
"categoryName": "甜蜜",
|
|
150
|
+
5.7
|
|
151
|
+
"categoryId": 55,
|
|
152
|
+
"categoryName": "寂寞",
|
|
153
|
+
5.8
|
|
154
|
+
"categoryId": 126,
|
|
155
|
+
"categoryName": "宣泄",
|
|
156
|
+
5.9
|
|
157
|
+
"categoryId": 68,
|
|
158
|
+
"categoryName": "思念",
|
|
159
|
+
</code></pre></details><details><summary>6. 场景</summary><pre><code>6.1
|
|
160
|
+
"categoryId": 78,
|
|
161
|
+
"categoryName": "睡前",
|
|
162
|
+
6.2
|
|
163
|
+
"categoryId": 102,
|
|
164
|
+
"categoryName": "夜店",
|
|
165
|
+
6.3
|
|
166
|
+
"categoryId": 101,
|
|
167
|
+
"categoryName": "学习",
|
|
168
|
+
6.4
|
|
169
|
+
"categoryId": 99,
|
|
170
|
+
"categoryName": "运动",
|
|
171
|
+
6.5
|
|
172
|
+
"categoryId": 99,
|
|
173
|
+
"categoryName": "运动",
|
|
174
|
+
6.6
|
|
175
|
+
"categoryId": 76,
|
|
176
|
+
"categoryName": "约会",
|
|
177
|
+
6.7
|
|
178
|
+
"categoryId": 94,
|
|
179
|
+
"categoryName": "工作",
|
|
180
|
+
6.8
|
|
181
|
+
"categoryId": 81,
|
|
182
|
+
"categoryName": "旅行",
|
|
183
|
+
6.9
|
|
184
|
+
"categoryId": 103,
|
|
185
|
+
"categoryName": "派对",
|
|
186
|
+
6.10
|
|
187
|
+
"categoryId": 222,
|
|
188
|
+
"categoryName": "婚礼",
|
|
189
|
+
6.11
|
|
190
|
+
"categoryId": 223,
|
|
191
|
+
"categoryName": "咖啡馆",
|
|
192
|
+
6.12
|
|
193
|
+
"categoryId": 224,
|
|
194
|
+
"categoryName": "跳舞",
|
|
195
|
+
6.13
|
|
196
|
+
"categoryId": 16,
|
|
197
|
+
"categoryName": "校园",
|
|
198
|
+
</code></pre></details><p>示例截图:</p><p><img src="https://raw.githubusercontent.com/Rain120/qq-music-api/master/screenshot/getSongListCategories.png" alt="获取歌单分类"></p><h3 id="获取歌单列表" tabindex="-1">获取歌单列表 <a class="header-anchor" href="#获取歌单列表" aria-label="Permalink to “获取歌单列表”"></a></h3><p>接口说明: 调用此接口, 可获取歌单列表</p><p>参数列表:</p><ul><li><p>必选参数</p><ul><li><code>categoryId</code>: 类别<code>id</code>, 详见 <code>/getSongListCategories</code></li></ul></li><li><p>可选参数</p><ul><li><p><code>page</code>: 当前页数, 默认为1</p></li><li><p><code>limit</code>: 取出歌单数量, 默认为 20</p></li><li><p><code>sortId</code>: 最新, 最热,评分, 默认为5</p></li></ul></li></ul><p>接口地址: <code>/getSongLists</code></p><p>调用例子: <code>/getSongLists?categoryId=10000000</code></p><p>示例截图:</p><p><strong>获取歌单列表</strong></p><p><img src="https://raw.githubusercontent.com/Rain120/qq-music-api/master/screenshot/getSongLists.png" alt="获取歌单列表"></p><h3 id="批量获取歌单列表" tabindex="-1">批量获取歌单列表 <a class="header-anchor" href="#批量获取歌单列表" aria-label="Permalink to “批量获取歌单列表”"></a></h3><p>接口说明: 调用此接口, 可批量获取歌单列表</p><p>参数列表:</p><ul><li><p>必选参数</p><ul><li><code>categoryIds</code>: 类别<code>id</code>列表, 详见 <code>/getSongListCategories</code></li></ul></li><li><p>可选参数</p><ul><li><p><code>page</code>: 当前页数, 默认为1</p></li><li><p><code>limit</code>: 取出歌单数量, 默认为 20</p></li><li><p><code>sortId</code>: 最新, 最热,评分, 默认为5</p></li></ul></li></ul><p>接口地址: <code>/batchGetSongLists</code></p><p>调用例子: <code>/batchGetSongLists</code></p><div class="language-json"><button title="Copy Code" class="copy"></button><span class="lang">json</span><pre class="shiki shiki-themes vitesse-light vitesse-dark" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;" tabindex="0" dir="ltr"><code><span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;">{</span></span>
|
|
199
|
+
<span class="line"><span style="--shiki-light:#99841877;--shiki-dark:#B8A96577;"> "</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">limit</span><span style="--shiki-light:#99841877;--shiki-dark:#B8A96577;">"</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 19</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span></span>
|
|
200
|
+
<span class="line"><span style="--shiki-light:#99841877;--shiki-dark:#B8A96577;"> "</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">page</span><span style="--shiki-light:#99841877;--shiki-dark:#B8A96577;">"</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 0</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span></span>
|
|
201
|
+
<span class="line"><span style="--shiki-light:#99841877;--shiki-dark:#B8A96577;"> "</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">sortId</span><span style="--shiki-light:#99841877;--shiki-dark:#B8A96577;">"</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 5</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span></span>
|
|
202
|
+
<span class="line"><span style="--shiki-light:#99841877;--shiki-dark:#B8A96577;"> "</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">categoryIds</span><span style="--shiki-light:#99841877;--shiki-dark:#B8A96577;">"</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> [</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;">167</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 168</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">]</span></span>
|
|
203
|
+
<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;">}</span></span></code></pre></div><p>示例截图:</p><p><strong>批量获取歌单列表</strong></p><p><img src="https://raw.githubusercontent.com/Rain120/qq-music-api/master/screenshot/batchGetSongLists.png" alt="获取歌单列表"></p><p><strong>获取歌单列表-带参数</strong></p><p><img src="https://raw.githubusercontent.com/Rain120/qq-music-api/master/screenshot/getSongLists-params.png" alt="获取歌单列表-带参数"></p><h3 id="获取歌单详情" tabindex="-1">获取歌单详情 <a class="header-anchor" href="#获取歌单详情" aria-label="Permalink to “获取歌单详情”"></a></h3><p>接口说明: 调用此接口, 可获取歌单详情</p><p>参数列表:</p><ul><li><p>必选参数</p><ul><li><code>disstid</code>: 歌单<code>id</code></li></ul></li></ul><p>接口地址: <code>/getSongListDetail</code></p><p>调用例子: <code>/getSongListDetail?disstid=7011264340</code></p><p>示例截图:</p><p><img src="https://raw.githubusercontent.com/Rain120/qq-music-api/master/screenshot/getSongListDetail.png" alt="获取歌单详情"></p><h3 id="获取mv标签" tabindex="-1">获取MV标签 <a class="header-anchor" href="#获取mv标签" aria-label="Permalink to “获取MV标签”"></a></h3><p>接口说明: 调用此接口, 可获取MV标签</p><p>接口地址: <code>/getMvByTag</code></p><p>调用例子: <code>/getMvByTag</code></p><p>示例截图:</p><p><img src="https://raw.githubusercontent.com/Rain120/qq-music-api/master/screenshot/getMvByTag.png" alt="获取MV标签"></p><h3 id="获取mv播放信息" tabindex="-1">获取MV播放信息 <a class="header-anchor" href="#获取mv播放信息" aria-label="Permalink to “获取MV播放信息”"></a></h3><p>接口说明: 调用此接口, 可获取MV播放信息</p><p>参数列表:</p><ul><li><p>必选参数</p><ul><li><code>vid</code>: <code>video id</code></li></ul></li></ul><p>接口地址: <code>/getMvPlay</code></p><p>调用例子: <code>/getMvPlay?vid=u00222le4ox</code></p><p>示例截图:</p><p><img src="https://raw.githubusercontent.com/Rain120/qq-music-api/master/screenshot/getMvPlay.png" alt="获取MV播放信息"></p><h3 id="获取歌手mv" tabindex="-1">获取歌手MV <a class="header-anchor" href="#获取歌手mv" aria-label="Permalink to “获取歌手MV”"></a></h3><p>接口说明: 调用此接口, 可获取歌手MV</p><p>参数列表:</p><ul><li><p>必选参数</p><ul><li><code>singermid</code>: 歌手<code>id</code></li></ul></li><li><p>可选参数</p><ul><li><p><code>order</code>: 当前MV类型, 默认为<code>time</code></p><ul><li><p><code>listen</code>: 歌手专辑音乐MV</p></li><li><p><code>time</code>: 粉丝上传MV视频</p></li></ul></li><li><p><code>limit</code>: 取出歌单数量, 默认为5</p></li></ul></li></ul><p>接口地址: <code>/getSingerMV</code></p><p>调用例子: <code>/getSingerMV?singermid=0025NhlN2yWrP4&order=all&limit=5</code></p><p>示例截图:</p><p><img src="https://raw.githubusercontent.com/Rain120/qq-music-api/master/screenshot/getSingerMv-default.png" alt="获取歌手MV - default"></p><p><img src="https://raw.githubusercontent.com/Rain120/qq-music-api/master/screenshot/getSingerMv-listen.png" alt="获取歌手MV - belong"></p><p><img src="https://raw.githubusercontent.com/Rain120/qq-music-api/master/screenshot/getSingerMv-time.png" alt="获取歌手MV - fans"></p><h3 id="获取歌手热门歌曲" tabindex="-1">获取歌手热门歌曲 <a class="header-anchor" href="#获取歌手热门歌曲" aria-label="Permalink to “获取歌手热门歌曲”"></a></h3><p>接口说明: 调用此接口, 可获取歌手热门歌曲</p><p>参数列表:</p><ul><li><p>必选参数</p><ul><li><code>singermid</code>: 歌手<code>id</code></li></ul></li><li><p>可选参数</p><ul><li><p><code>page</code>: 页数, 默认为0</p></li><li><p><code>limit</code>: 取出歌单数量, 默认为5</p></li></ul></li></ul><p>接口地址: <code>/getSingerHotsong</code></p><p>调用例子: <code>/getSingerHotsong?singermid=0025NhlN2yWrP4&limit=10&page=2</code></p><p>示例截图:</p><p><img src="https://raw.githubusercontent.com/Rain120/qq-music-api/master/screenshot/getSingerHotsong.png" alt="获取歌手热门歌曲"></p><h3 id="获取相似歌手" tabindex="-1">获取相似歌手 <a class="header-anchor" href="#获取相似歌手" aria-label="Permalink to “获取相似歌手”"></a></h3><p>接口说明: 调用此接口, 可获取相似歌手</p><p>参数列表:</p><ul><li><p>必选参数</p><ul><li><code>singermid</code>: 歌手<code>id</code></li></ul></li></ul><p>接口地址: <code>/getSimilarSinger</code></p><p>调用例子: <code>/getSimilarSinger?singermid=0025NhlN2yWrP4</code></p><p>示例截图:</p><p><img src="https://raw.githubusercontent.com/Rain120/qq-music-api/master/screenshot/getSimilarSinger.png" alt="获取相似歌手"></p><h3 id="获取歌手信息" tabindex="-1">获取歌手信息 <a class="header-anchor" href="#获取歌手信息" aria-label="Permalink to “获取歌手信息”"></a></h3><p>接口说明: 调用此接口, 可获取歌手信息</p><p>参数列表:</p><ul><li><p>必选参数</p><ul><li><code>singermid</code>: 歌手<code>id</code></li></ul></li></ul><p>接口地址: <code>/getSingerDesc</code></p><p>调用例子: <code>/getSingerDesc?singermid=0025NhlN2yWrP4</code></p><p>示例截图:</p><p><img src="https://raw.githubusercontent.com/Rain120/qq-music-api/master/screenshot/getSingerDesc.png" alt="获取歌手信息"></p><h3 id="获取歌手列表" tabindex="-1">获取歌手列表 <a class="header-anchor" href="#获取歌手列表" aria-label="Permalink to “获取歌手列表”"></a></h3><p>接口说明: 调用此接口, 可获取歌手列表</p><p>参数列表:</p><ul><li><p>可选参数</p><details><summary>area 默认是 -100</summary><pre><code> "id": -100,
|
|
204
|
+
"name": "全部"
|
|
205
|
+
"id": 200,
|
|
206
|
+
"name": "内地"
|
|
207
|
+
|
|
208
|
+
"id": 2,
|
|
209
|
+
"name": "港台"
|
|
210
|
+
|
|
211
|
+
"id": 5,
|
|
212
|
+
"name": "欧美"
|
|
213
|
+
|
|
214
|
+
"id": 4,
|
|
215
|
+
"name": "日本"
|
|
216
|
+
|
|
217
|
+
"id": 3,
|
|
218
|
+
"name": "韩国"
|
|
219
|
+
|
|
220
|
+
"id": 6,
|
|
221
|
+
"name": "其他"
|
|
222
|
+
</code></pre></details><details><summary>genre 默认是 -100</summary><pre><code>"id": -100,
|
|
223
|
+
"name": "全部"
|
|
224
|
+
|
|
225
|
+
"id": 1,
|
|
226
|
+
"name": "流行"
|
|
227
|
+
|
|
228
|
+
"id": 6,
|
|
229
|
+
"name": "嘻哈"
|
|
230
|
+
|
|
231
|
+
"id": 2,
|
|
232
|
+
"name": "摇滚"
|
|
233
|
+
|
|
234
|
+
"id": 4,
|
|
235
|
+
"name": "电子"
|
|
236
|
+
|
|
237
|
+
"id": 3,
|
|
238
|
+
"name": "民谣"
|
|
239
|
+
|
|
240
|
+
"id": 8,
|
|
241
|
+
"name": "R&B"
|
|
242
|
+
|
|
243
|
+
"id": 10,
|
|
244
|
+
"name": "民歌"
|
|
245
|
+
|
|
246
|
+
"id": 9,
|
|
247
|
+
"name": "轻音乐"
|
|
248
|
+
|
|
249
|
+
"id": 5,
|
|
250
|
+
"name": "爵士"
|
|
251
|
+
|
|
252
|
+
"id": 14,
|
|
253
|
+
"name": "古典"
|
|
254
|
+
|
|
255
|
+
"id": 25,
|
|
256
|
+
"name": "乡村"
|
|
257
|
+
|
|
258
|
+
"id": 20,
|
|
259
|
+
"name": "蓝调"
|
|
260
|
+
</code></pre></details><details><summary>index 默认是 -100</summary><pre><code>"id": -100,
|
|
261
|
+
"name": "热门"
|
|
262
|
+
|
|
263
|
+
"id": 1,
|
|
264
|
+
"name": "A"
|
|
265
|
+
|
|
266
|
+
"id": 2,
|
|
267
|
+
"name": "B"
|
|
268
|
+
|
|
269
|
+
"id": 3,
|
|
270
|
+
"name": "C"
|
|
271
|
+
|
|
272
|
+
"id": 4,
|
|
273
|
+
"name": "D"
|
|
274
|
+
|
|
275
|
+
"id": 5,
|
|
276
|
+
"name": "E"
|
|
277
|
+
|
|
278
|
+
"id": 6,
|
|
279
|
+
"name": "F"
|
|
280
|
+
|
|
281
|
+
"id": 7,
|
|
282
|
+
"name": "G"
|
|
283
|
+
|
|
284
|
+
"id": 8,
|
|
285
|
+
"name": "H"
|
|
286
|
+
|
|
287
|
+
"id": 9,
|
|
288
|
+
"name": "I"
|
|
289
|
+
|
|
290
|
+
"id": 10,
|
|
291
|
+
"name": "J"
|
|
292
|
+
|
|
293
|
+
"id": 11,
|
|
294
|
+
"name": "K"
|
|
295
|
+
|
|
296
|
+
"id": 12,
|
|
297
|
+
"name": "L"
|
|
298
|
+
|
|
299
|
+
"id": 13,
|
|
300
|
+
"name": "M"
|
|
301
|
+
|
|
302
|
+
"id": 14,
|
|
303
|
+
"name": "N"
|
|
304
|
+
|
|
305
|
+
"id": 15,
|
|
306
|
+
"name": "O"
|
|
307
|
+
|
|
308
|
+
"id": 16,
|
|
309
|
+
"name": "P"
|
|
310
|
+
|
|
311
|
+
"id": 17,
|
|
312
|
+
"name": "Q"
|
|
313
|
+
|
|
314
|
+
"id": 18,
|
|
315
|
+
"name": "R"
|
|
316
|
+
|
|
317
|
+
"id": 19,
|
|
318
|
+
"name": "S"
|
|
319
|
+
|
|
320
|
+
"id": 20,
|
|
321
|
+
"name": "T"
|
|
322
|
+
|
|
323
|
+
"id": 21,
|
|
324
|
+
"name": "U"
|
|
325
|
+
|
|
326
|
+
"id": 22,
|
|
327
|
+
"name": "V"
|
|
328
|
+
|
|
329
|
+
"id": 23,
|
|
330
|
+
"name": "W"
|
|
331
|
+
|
|
332
|
+
"id": 24,
|
|
333
|
+
"name": "X"
|
|
334
|
+
|
|
335
|
+
"id": 25,
|
|
336
|
+
"name": "Y"
|
|
337
|
+
|
|
338
|
+
"id": 26,
|
|
339
|
+
"name": "Z"
|
|
340
|
+
|
|
341
|
+
"id": 27,
|
|
342
|
+
"name": "#"
|
|
343
|
+
</code></pre></details><details><summary>sex 默认是 -100</summary><pre><code>"id": -100,
|
|
344
|
+
"name": "全部"
|
|
345
|
+
|
|
346
|
+
"id": 0,
|
|
347
|
+
"name": "男"
|
|
348
|
+
|
|
349
|
+
"id": 1,
|
|
350
|
+
"name": "女"
|
|
351
|
+
|
|
352
|
+
"id": 2,
|
|
353
|
+
"name": "组合"
|
|
354
|
+
</code></pre></details></li></ul><p>接口地址: <code>/getSingerList</code></p><p>调用例子: <code>/getSingerList</code> 调用例子: <code>/getSingerList?area=200&sex=2&index=3&genre=2</code></p><p>示例截图:</p><p><img src="https://raw.githubusercontent.com/Rain120/qq-music-api/master/screenshot/getSingerList.png" alt="获取歌手列表"></p><h3 id="获取歌手被关注数量信息" tabindex="-1">获取歌手被关注数量信息 <a class="header-anchor" href="#获取歌手被关注数量信息" aria-label="Permalink to “获取歌手被关注数量信息”"></a></h3><p>接口说明: 调用此接口, 可获取歌手被关注数量信息</p><p>参数列表:</p><ul><li><p>必选参数</p><ul><li><code>singermid</code>: 歌手<code>id</code></li></ul></li></ul><p>接口地址: <code>/getSingerStarNum</code></p><p>调用例子: <code>/getSingerStarNum?singermid=0025NhlN2yWrP4</code></p><p>示例截图:</p><p><img src="https://raw.githubusercontent.com/Rain120/qq-music-api/master/screenshot/getSingerStarNum.png" alt="获取歌手被关注数量信息"></p><h3 id="获取电台列表" tabindex="-1">获取电台列表 <a class="header-anchor" href="#获取电台列表" aria-label="Permalink to “获取电台列表”"></a></h3><p>接口说明: 调用此接口, 可获取电台列表, 分类</p><p>接口地址: <code>/getRadioLists</code></p><p>调用例子: <code>/getRadioLists</code></p><p>示例截图:</p><p><img src="https://raw.githubusercontent.com/Rain120/qq-music-api/master/screenshot/getRadioLists.png" alt="获取电台列表"></p><h3 id="获取专辑" tabindex="-1">获取专辑 <a class="header-anchor" href="#获取专辑" aria-label="Permalink to “获取专辑”"></a></h3><p>接口说明: 调用此接口, 可获取专辑信息(专辑列表、详情)</p><p>参数列表:</p><ul><li><p>必选参数</p><ul><li><code>albummid</code>: 专辑<code>id</code></li></ul></li></ul><p>接口地址: <code>/getAlbumInfo</code></p><p>调用例子: <code>/getAlbumInfo?albummid=0016l2F430zMux</code></p><p>示例截图:</p><p><img src="https://raw.githubusercontent.com/Rain120/qq-music-api/master/screenshot/getAlbumInfo.png" alt="获取专辑"></p><h3 id="获取数字专辑" tabindex="-1">获取数字专辑 <a class="header-anchor" href="#获取数字专辑" aria-label="Permalink to “获取数字专辑”"></a></h3><p>接口说明: 调用此接口, 可获取数字专辑, 轮播图<code>banner</code>, 专辑列表等信息, 详见<a href="#api结构图">API结构图</a></p><p>接口地址: <code>/getDigitalAlbumLists</code></p><p>调用例子: <code>/getDigitalAlbumLists</code></p><p>示例截图:</p><p><img src="https://raw.githubusercontent.com/Rain120/qq-music-api/master/screenshot/getDigitalAlbumLists.png" alt="获取数字专辑"></p><h3 id="获取歌曲歌词" tabindex="-1">获取歌曲歌词 <a class="header-anchor" href="#获取歌曲歌词" aria-label="Permalink to “获取歌曲歌词”"></a></h3><p>接口说明: 调用此接口, 可获取歌曲歌词</p><p>参数列表:</p><ul><li><p>必选参数</p><ul><li><code>songmid</code>: 专辑<code>id</code></li></ul></li><li><p>可选参数</p><ul><li><code>isFormat</code>: 是否格式化歌词, 默认值为 <code>false</code></li></ul></li></ul><p>接口地址: <code>/getLyric</code></p><p>调用例子: <code>/getLyric?songmid=003rJSwm3TechU</code></p><p>示例截图:</p><p><img src="https://raw.githubusercontent.com/Rain120/qq-music-api/master/screenshot/getLyric.png" alt="获取歌曲歌词 - 未格式化"></p><p><img src="https://raw.githubusercontent.com/Rain120/qq-music-api/master/screenshot/getLyric-parse.png" alt="获取歌曲歌词 - 格式化"></p><h3 id="获取mv" tabindex="-1">获取MV <a class="header-anchor" href="#获取mv" aria-label="Permalink to “获取MV”"></a></h3><p>接口说明: 调用此接口, 可获取MV以及其Tag信息</p><p>参数列表:</p><ul><li><p>必选参数</p><ul><li><code>area_id</code>: 区域<code>id</code>, 默认值为全部(15)</li></ul></li></ul><details><summary>Area</summary><pre><code>"area": [
|
|
355
|
+
{
|
|
356
|
+
"id": 15,
|
|
357
|
+
"name": "全部"
|
|
358
|
+
},
|
|
359
|
+
{
|
|
360
|
+
"id": 16,
|
|
361
|
+
"name": "内地"
|
|
362
|
+
},
|
|
363
|
+
{
|
|
364
|
+
"id": 17,
|
|
365
|
+
"name": "港台"
|
|
366
|
+
},
|
|
367
|
+
{
|
|
368
|
+
"id": 18,
|
|
369
|
+
"name": "欧美"
|
|
370
|
+
},
|
|
371
|
+
{
|
|
372
|
+
"id": 19,
|
|
373
|
+
"name": "韩国"
|
|
374
|
+
},
|
|
375
|
+
{
|
|
376
|
+
"id": 20,
|
|
377
|
+
"name": "日本"
|
|
378
|
+
}
|
|
379
|
+
]
|
|
380
|
+
</code></pre></details><p><code>version_id</code>: 版本<code>id</code>, 默认值为全部(7)</p><details><summary>Version</summary><pre><code>"version": [
|
|
381
|
+
{
|
|
382
|
+
"id": 7,
|
|
383
|
+
"name": "全部"
|
|
384
|
+
},
|
|
385
|
+
{
|
|
386
|
+
"id": 8,
|
|
387
|
+
"name": "MV"
|
|
388
|
+
},
|
|
389
|
+
{
|
|
390
|
+
"id": 9,
|
|
391
|
+
"name": "现场"
|
|
392
|
+
},
|
|
393
|
+
{
|
|
394
|
+
"id": 10,
|
|
395
|
+
"name": "翻唱"
|
|
396
|
+
},
|
|
397
|
+
{
|
|
398
|
+
"id": 11,
|
|
399
|
+
"name": "舞蹈"
|
|
400
|
+
},
|
|
401
|
+
{
|
|
402
|
+
"id": 12,
|
|
403
|
+
"name": "影视"
|
|
404
|
+
},
|
|
405
|
+
{
|
|
406
|
+
"id": 13,
|
|
407
|
+
"name": "综艺"
|
|
408
|
+
},
|
|
409
|
+
{
|
|
410
|
+
"id": 14,
|
|
411
|
+
"name": "儿歌"
|
|
412
|
+
}
|
|
413
|
+
]
|
|
414
|
+
</code></pre></details><ul><li><p>可选参数</p><ul><li><p><code>page</code>: 当前页数, 默认为1</p></li><li><p><code>limit</code>: 取出歌单数量, 默认为 20</p></li></ul></li></ul><p>接口地址: <code>/getMv</code></p><p>调用例子: <code>/getMv</code></p><p>示例截图:</p><p><img src="https://raw.githubusercontent.com/Rain120/qq-music-api/master/screenshot/getMv.png" alt="获取MV"></p><h3 id="获取新碟信息" tabindex="-1">获取新碟信息 <a class="header-anchor" href="#获取新碟信息" aria-label="Permalink to “获取新碟信息”"></a></h3><p>接口说明: 调用此接口, 可获取新碟信息</p><p>参数列表:</p><ul><li><p>可选参数</p><ul><li><p><code>page</code>: 当前页数, 默认为 1</p></li><li><p><code>limit</code>: 取出歌单数量, 默认为 20</p></li></ul></li></ul><p>接口地址: <code>/getNewDisks</code></p><p>调用例子: <code>/getNewDisks</code></p><p>示例截图:</p><p><img src="https://raw.githubusercontent.com/Rain120/qq-music-api/master/screenshot/getNewDisks.png" alt="获取新碟信息"></p><h3 id="获取歌手专辑" tabindex="-1">获取歌手专辑 <a class="header-anchor" href="#获取歌手专辑" aria-label="Permalink to “获取歌手专辑”"></a></h3><p>接口说明: 调用此接口, 可获取歌手专辑</p><p>参数列表:</p><ul><li><p>必选参数</p><ul><li><code>singermid</code>: 歌手<code>id</code></li></ul></li><li><p>可选参数</p><ul><li><p><code>page</code>: 当前页数, 默认为1</p></li><li><p><code>limit</code>: 取出歌单数量, 默认为 20</p></li></ul></li></ul><p>接口地址: <code>/getSingerAlbum</code></p><p>调用例子: <code>/getSingerAlbum?singermid=0025NhlN2yWrP4</code></p><p>示例截图:</p><p><img src="https://raw.githubusercontent.com/Rain120/qq-music-api/master/screenshot/getSingerAlbum.png" alt="获取歌手专辑"></p><h3 id="获取歌曲相关信息" tabindex="-1">获取歌曲相关信息 <a class="header-anchor" href="#获取歌曲相关信息" aria-label="Permalink to “获取歌曲相关信息”"></a></h3><p>接口说明: 调用此接口, 可获取歌曲相关信息</p><p>参数列表:</p><ul><li><p>必选参数</p><ul><li><code>songmid</code>: 歌曲<code>id</code></li></ul></li></ul><p>接口地址: <code>/getSongInfo</code></p><p>调用例子: <code>/getSongInfo?songmid=0025NhlN2yWrP4</code></p><p>示例截图:</p><p><img src="https://raw.githubusercontent.com/Rain120/qq-music-api/master/screenshot/getSongInfo.png" alt="获取歌曲相关信息"></p><h3 id="批量获取歌曲相关信息" tabindex="-1">批量获取歌曲相关信息 <a class="header-anchor" href="#批量获取歌曲相关信息" aria-label="Permalink to “批量获取歌曲相关信息”"></a></h3><p>接口说明: 调用此接口, 可批量获取歌曲相关信息</p><p>参数列表:</p><ul><li>必选参数</li></ul><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes vitesse-light vitesse-dark" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;" tabindex="0" dir="ltr"><code><span class="line"><span>songs: [</span></span>
|
|
415
|
+
<span class="line"><span> [songmid, songid]</span></span>
|
|
416
|
+
<span class="line"><span>]</span></span></code></pre></div><p>其中 <code>songid</code>可以不传</p><p>接口地址: <code>/batchGetSongInfo</code></p><p>调用例子: <code>/batchGetSongInfo</code></p><div class="language-json"><button title="Copy Code" class="copy"></button><span class="lang">json</span><pre class="shiki shiki-themes vitesse-light vitesse-dark" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;" tabindex="0" dir="ltr"><code><span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;">{</span></span>
|
|
417
|
+
<span class="line"><span style="--shiki-light:#99841877;--shiki-dark:#B8A96577;"> "</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">songs</span><span style="--shiki-light:#99841877;--shiki-dark:#B8A96577;">"</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> [</span></span>
|
|
418
|
+
<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;"> [</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">001CLC7W2Gpz4J</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">],</span></span>
|
|
419
|
+
<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;"> [</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">0025NhlN2yWrP4</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">]</span></span>
|
|
420
|
+
<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;"> ]</span></span>
|
|
421
|
+
<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;">}</span></span></code></pre></div><p>示例截图:</p><p><img src="https://raw.githubusercontent.com/Rain120/qq-music-api/master/screenshot/batchGetSongInfo.png" alt="获取歌曲相关信息"></p><h3 id="获取歌曲播放链接" tabindex="-1">获取歌曲播放链接 <a class="header-anchor" href="#获取歌曲播放链接" aria-label="Permalink to “获取歌曲播放链接”"></a></h3><p>接口说明: 调用此接口, 可获取歌曲播放链接</p><p>参数列表:</p><ul><li><p>必选参数</p></li><li><p><code>songmid</code>: 歌曲<code>id</code>, 多个播放链接使用 <code>,</code>分隔</p></li><li><p><code>justPlayUrl</code>: 仅返回播放链接, 默认是 <code>play</code>。<code>[all | play]</code></p></li><li><p><code>quality</code>: 播放品质, 默认是 128。<code>[m4a | 128 | 320 | ape | flac]</code></p></li></ul><p>接口地址: <code>/getMusicPlay</code></p><p>调用例子:</p><p>示例截图:</p><h4 id="获取单个播放链接" tabindex="-1">获取单个播放链接 <a class="header-anchor" href="#获取单个播放链接" aria-label="Permalink to “获取单个播放链接”"></a></h4><p>例子: <code>/getMusicPlay?songmid=0012g3Et1iFQCC</code></p><p><img src="https://raw.githubusercontent.com/RTAkland/qq-music-api/refs/heads/main/screenshot/musicPlay.png" alt="获取单个播放链接"></p><h4 id="获取多个播放链接" tabindex="-1">获取多个播放链接 <a class="header-anchor" href="#获取多个播放链接" aria-label="Permalink to “获取多个播放链接”"></a></h4><p>例子: <code>/getMusicPlay?songmid=001yNIo41SJjuC,001wPuVc4ZiMhj&resType=play</code></p><p><img src="https://raw.githubusercontent.com/Rain120/qq-music-api/master/screenshot/just-get-play-url.png" alt="获取多个歌曲播放链接"></p><h4 id="获取多个播放链接-1" tabindex="-1">获取多个播放链接 <a class="header-anchor" href="#获取多个播放链接-1" aria-label="Permalink to “获取多个播放链接”"></a></h4><p>例子: <code>/getMusicPlay?songmid=0012g3Et1iFQCC,001wPuVc4ZiMhj&resType=all</code></p><p><img src="https://raw.githubusercontent.com/Rain120/qq-music-api/master/screenshot/get-play-all-data.png" alt="获取接口所有数据"></p><h4 id="歌曲品质" tabindex="-1">歌曲品质 <a class="header-anchor" href="#歌曲品质" aria-label="Permalink to “歌曲品质”"></a></h4><p>例子: <code>songmid=001yNIo41SJjuC&resType=play&quality=m4a</code></p><p><img src="https://raw.githubusercontent.com/Rain120/qq-music-api/master/screenshot/song-quality-128.png" alt="song-quality-128.png"></p><p><img src="https://raw.githubusercontent.com/Rain120/qq-music-api/master/screenshot/song-quality-m4a.png" alt="song-quality-m4a.png"></p><h3 id="获取搜索热词" tabindex="-1">获取搜索热词 <a class="header-anchor" href="#获取搜索热词" aria-label="Permalink to “获取搜索热词”"></a></h3><p>接口说明: 调用此接口, 可获取搜索热词</p><p>接口地址: <code>/getHotkey</code></p><p>调用例子: <code>/getHotkey</code></p><p>示例截图:</p><p><img src="https://raw.githubusercontent.com/Rain120/qq-music-api/master/screenshot/gethotkey.png" alt="获取搜索热词"></p><h3 id="获取关键字搜索提示" tabindex="-1">获取关键字搜索提示 <a class="header-anchor" href="#获取关键字搜索提示" aria-label="Permalink to “获取关键字搜索提示”"></a></h3><p>接口说明: 调用此接口, 可获取获取关键字搜索提示</p><p>参数列表:</p><ul><li><p>必选参数</p><ul><li><code>key</code>: 搜索关键字</li></ul></li></ul><p>接口地址: <code>/getSmartbox</code></p><p>调用例子: <code>/getSmartbox?key=周杰伦</code></p><p>示例截图:</p><p><img src="https://raw.githubusercontent.com/Rain120/qq-music-api/master/screenshot/getSmartbox.png" alt="获取获取关键字搜索提示"></p><h3 id="获取搜索结果" tabindex="-1">获取搜索结果 <a class="header-anchor" href="#获取搜索结果" aria-label="Permalink to “获取搜索结果”"></a></h3><p>接口说明: 调用此接口, 可获取获取搜索结果</p><p>参数列表(部分参数待注释):</p><ul><li><p>必选参数</p><ul><li><p><code>key</code>: 搜索关键字</p></li><li><p><s><code>catZhida</code>: 默认值为1</s></p><p><s>1. <code>0</code> 表示歌曲</s></p><p><s>2. <code>2</code> 表示歌手</s></p><p><s>3. <code>3</code> 表示专辑</s></p></li><li><p><code>remoteplace</code>: 默认值为 <code>song</code></p><ol><li><p>单曲: <code>song</code></p></li><li><p>专辑: <code>album</code></p></li><li><p>MV: <code>mv</code></p></li><li><p>歌单: <code>playlist</code></p></li><li><p>用户: <code>user</code></p></li><li><p>歌词: <code>lyric</code></p></li></ol></li></ul></li><li><p>可选参数</p><ul><li><p><code>page</code>: 当前页数, 默认为 <code>1</code></p></li><li><p><code>limit</code>: 取出歌单数量, 默认为 <code>10</code></p></li></ul></li></ul><p>接口地址: <code>/getSearchByKey</code></p><p>调用例子: <code>/getSearchByKey?key=周杰伦</code></p><p>示例截图:</p><p><img src="https://raw.githubusercontent.com/Rain120/qq-music-api/master/screenshot/getSearchByKey.png" alt="获取获取搜索结果"></p><h3 id="获取首页推荐" tabindex="-1">获取首页推荐 <a class="header-anchor" href="#获取首页推荐" aria-label="Permalink to “获取首页推荐”"></a></h3><p>接口说明: 调用此接口, 可获取首页推荐</p><p>接口地址: <code>/getRecommend</code></p><p>调用例子: <code>/getRecommend</code></p><p>示例截图:</p><p><img src="https://raw.githubusercontent.com/Rain120/qq-music-api/master/screenshot/getRecommend.png" alt="获取首页推荐"></p><h3 id="获取排行榜单列表" tabindex="-1">获取排行榜单列表 <a class="header-anchor" href="#获取排行榜单列表" aria-label="Permalink to “获取排行榜单列表”"></a></h3><p>接口说明: 调用此接口, 可获取排行榜单列表</p><ul><li><p>可选参数</p><ul><li><p><code>page</code>: 当前页数, 默认为 <code>1</code></p></li><li><p><code>limit</code>: 取出歌单数量, 默认为 <code>10</code></p></li></ul></li></ul><p>接口地址: <code>/getTopLists</code></p><p>调用例子: <code>/getTopLists</code></p><p>示例截图:</p><p><img src="https://raw.githubusercontent.com/Rain120/qq-music-api/master/screenshot/getTopLists.png" alt="获取排行榜单列表"></p><h3 id="获取排行榜单详情" tabindex="-1">获取排行榜单详情 <a class="header-anchor" href="#获取排行榜单详情" aria-label="Permalink to “获取排行榜单详情”"></a></h3><p>接口说明: 调用此接口, 可获取排行榜单详情</p><ul><li><p>可选参数</p><ul><li><p><code>topId</code>: 榜单<code>id</code></p></li><li><p><code>page</code>: 当前页数, 默认为1</p></li><li><p><code>limit</code>: 取出歌单数量, 默认为 10</p></li></ul></li></ul><p>接口地址: <code>/getRanks</code></p><p>调用例子: <code>/getRanks</code></p><p>示例截图:</p><p><img src="https://raw.githubusercontent.com/Rain120/qq-music-api/master/screenshot/getRanks.png" alt="获取排行榜单详情"></p><h3 id="获取评论信息-cmd代表的意思没太弄明白" tabindex="-1">获取评论信息(cmd代表的意思没太弄明白) <a class="header-anchor" href="#获取评论信息-cmd代表的意思没太弄明白" aria-label="Permalink to “获取评论信息(cmd代表的意思没太弄明白)”"></a></h3><p>接口说明: 调用此接口, 可获取评论信息</p><ul><li><p>必选参数</p><ul><li><code>id</code>: 专辑或者歌单请求结果的<code>id</code></li></ul></li><li><p>可选参数</p><ul><li><p><code>rootcommentid</code>: 榜单<code>id</code></p></li><li><p><code>cid</code>:</p></li><li><p><code>pagenum</code>: 当前页数, 默认为 <code>0</code></p></li><li><p><code>pagesize</code>: 取出评论数量, 默认为 <code>25</code></p></li><li><p><code>cmd</code>:</p></li><li><p><code>reqtype</code>:</p></li><li><p><code>biztype</code>:</p></li></ul></li></ul><p>接口地址: <code>/getComments</code></p><p>调用例子: <code>/getComments?id=8220&rootcommentid=album_8220_1003310416_1558068713</code></p><p>示例截图:</p><p><img src="https://raw.githubusercontent.com/Rain120/qq-music-api/master/screenshot/getComments-id.png" alt="获取评论信息 - id获取"></p><p><img src="https://raw.githubusercontent.com/Rain120/qq-music-api/master/screenshot/getComments.png" alt="获取评论信息"></p><p><img src="https://raw.githubusercontent.com/Rain120/qq-music-api/master/screenshot/getComments-param.png" alt="获取评论信息 - 带params"></p><h3 id="获取歌曲-专辑-图片" tabindex="-1">获取歌曲 + 专辑 图片 <a class="header-anchor" href="#获取歌曲-专辑-图片" aria-label="Permalink to “获取歌曲 + 专辑 图片”"></a></h3><p>接口说明: 调用此接口, 可获取票务信息</p><ul><li><p>必选参数</p><ul><li><code>id</code>: 专辑或者歌单请求结果的<code>id</code></li></ul></li><li><p>可选参数</p><ul><li><p><code>size</code>: 图片大小, 默认 <code>300x300</code></p></li><li><p><code>maxAge</code>: 图片过期时间, 默认 <code>12 mins = 2592000ms</code></p></li></ul></li></ul><p>接口地址: <code>/getImageUrl</code></p><p>调用例子: <code>/getImageUrl?id=000MkMni19ClKG</code> or <code>/getImageUrl?id=000MkMni19ClKG&size=500x500</code></p><p>示例截图:</p><p><img src="https://raw.githubusercontent.com/Rain120/qq-music-api/master/screenshot/get-song-id.png" alt="获取歌曲id"></p><p><img src="https://raw.githubusercontent.com/Rain120/qq-music-api/master/screenshot/get-song-image.png" alt="获取歌曲图片地址"></p><p><img src="https://raw.githubusercontent.com/Rain120/qq-music-api/master/screenshot/song-image.png" alt="歌曲图片地址"></p><p><img src="https://raw.githubusercontent.com/Rain120/qq-music-api/master/screenshot/get-song-album-id.png" alt="获取专辑id"></p><p><img src="https://raw.githubusercontent.com/Rain120/qq-music-api/master/screenshot/get-album-image.png" alt="获取歌曲专辑地址"></p><p><img src="https://raw.githubusercontent.com/Rain120/qq-music-api/master/screenshot/album-image.png" alt="歌曲专辑地址"></p><h3 id="获取票务信息" tabindex="-1">获取票务信息 <a class="header-anchor" href="#获取票务信息" aria-label="Permalink to “获取票务信息”"></a></h3><p>接口说明: 调用此接口, 可获取票务信息</p><p>接口地址: <code>/getTicketInfo</code></p><p>调用例子: <code>/getTicketInfo</code></p><p>示例截图:</p><p><img src="https://raw.githubusercontent.com/Rain120/qq-music-api/master/screenshot/getTicketInfo.png" alt="获取票务信息"></p>`,300)])])}const g=o(n,[["render",u]]);export{l as __pageData,g as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c as o,S as e,j as a,m as i}from"./chunks/framework.BUY3a635.js";const l=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"README.md","filePath":"README.md","lastUpdated":1779031768000}'),n={name:"README.md"};function u(s,t,p,c,d,q){return e(),a("div",null,[...t[0]||(t[0]=[i("",300)])])}const g=o(n,[["render",u]]);export{l as __pageData,g as default};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import{c as s,S as a,j as e,m as l}from"./chunks/framework.BUY3a635.js";const c=JSON.parse('{"title":"用户歌单接口测试指南","description":"","frontmatter":{},"headers":[],"relativePath":"TEST_USER_PLAYLISTS.md","filePath":"TEST_USER_PLAYLISTS.md","lastUpdated":1779031768000}'),t={name:"TEST_USER_PLAYLISTS.md"};function h(n,i,d,r,o,k){return a(),e("div",null,[...i[0]||(i[0]=[l(`<h1 id="用户歌单接口测试指南" tabindex="-1">用户歌单接口测试指南 <a class="header-anchor" href="#用户歌单接口测试指南" aria-label="Permalink to “用户歌单接口测试指南”"></a></h1><h2 id="接口说明" tabindex="-1">接口说明 <a class="header-anchor" href="#接口说明" aria-label="Permalink to “接口说明”"></a></h2><p><strong>接口地址</strong>: <code>GET /user/getUserPlaylists</code></p><p><strong>功能</strong>: 获取 QQ 音乐用户创建的歌单列表</p><p><strong>参数</strong>:</p><ul><li><code>uin</code>(必填):QQ 号码</li><li><code>offset</code>(可选):偏移量,默认 <code>0</code></li><li><code>limit</code>(可选):返回数量,默认 <code>30</code></li></ul><h2 id="当前状态" tabindex="-1">当前状态 <a class="header-anchor" href="#当前状态" aria-label="Permalink to “当前状态”"></a></h2><p><strong>当前状态</strong>: ⚠️ 持续验证中</p><p>截至当前代码版本,用户歌单接口仍在持续排查与验证中。文档与测试说明会跟随实现更新,但不建议将该接口视为已经完全稳定。</p><h2 id="现状说明" tabindex="-1">现状说明 <a class="header-anchor" href="#现状说明" aria-label="Permalink to “现状说明”"></a></h2><h3 id="_1-接口依赖-cookie" tabindex="-1">1. 接口依赖 Cookie <a class="header-anchor" href="#_1-接口依赖-cookie" aria-label="Permalink to “1. 接口依赖 Cookie”"></a></h3><p>该接口仍依赖有效的 QQ 音乐 Cookie。若 Cookie 失效,通常会直接导致上游请求失败。</p><h3 id="_2-上游结构可能变化" tabindex="-1">2. 上游结构可能变化 <a class="header-anchor" href="#_2-上游结构可能变化" aria-label="Permalink to “2. 上游结构可能变化”"></a></h3><p>项目当前会尽量从上游响应中提取并标准化出 <code>playlists</code> 字段,但上游字段结构仍可能发生变化。</p><h3 id="_3-分页语义仍需持续验证" tabindex="-1">3. 分页语义仍需持续验证 <a class="header-anchor" href="#_3-分页语义仍需持续验证" aria-label="Permalink to “3. 分页语义仍需持续验证”"></a></h3><p>当前接口对外暴露 <code>offset</code> 与 <code>limit</code> 参数,但由于上游分页能力和字段结构并不稳定,分页结果仍建议按实际返回数据做校验。</p><h2 id="已尝试与观察到的上游接口" tabindex="-1">已尝试与观察到的上游接口 <a class="header-anchor" href="#已尝试与观察到的上游接口" aria-label="Permalink to “已尝试与观察到的上游接口”"></a></h2><h3 id="_1-用户主页-歌单相关接口" tabindex="-1">1. 用户主页/歌单相关接口 <a class="header-anchor" href="#_1-用户主页-歌单相关接口" aria-label="Permalink to “1. 用户主页/歌单相关接口”"></a></h3><p>当前排查过程中,曾观察到以下可用路径或相近能力:</p><div class="language-text"><button title="Copy Code" class="copy"></button><span class="lang">text</span><pre class="shiki shiki-themes vitesse-light vitesse-dark" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;" tabindex="0" dir="ltr"><code><span class="line"><span>https://c6.y.qq.com/rsc/fcgi-bin/fcg_get_profile_homepage.fcg</span></span>
|
|
2
|
+
<span class="line"><span>https://u.y.qq.com/cgi-bin/musicu.fcg</span></span></code></pre></div><h3 id="_2-公开能力接口" tabindex="-1">2. 公开能力接口 <a class="header-anchor" href="#_2-公开能力接口" aria-label="Permalink to “2. 公开能力接口”"></a></h3><p>以下接口更适合作为公开能力的替代方案或辅助排查手段:</p><h4 id="获取热门歌单" tabindex="-1">获取热门歌单 <a class="header-anchor" href="#获取热门歌单" aria-label="Permalink to “获取热门歌单”"></a></h4><div class="language-text"><button title="Copy Code" class="copy"></button><span class="lang">text</span><pre class="shiki shiki-themes vitesse-light vitesse-dark" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;" tabindex="0" dir="ltr"><code><span class="line"><span>GET https://c.y.qq.com/splcloud/fcgi-bin/fcg_get_diss_by_tag.fcg</span></span></code></pre></div><h4 id="获取歌单详情" tabindex="-1">获取歌单详情 <a class="header-anchor" href="#获取歌单详情" aria-label="Permalink to “获取歌单详情”"></a></h4><div class="language-text"><button title="Copy Code" class="copy"></button><span class="lang">text</span><pre class="shiki shiki-themes vitesse-light vitesse-dark" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;" tabindex="0" dir="ltr"><code><span class="line"><span>GET https://c.y.qq.com/qzone/fcg-bin/fcg_ucc_getcdinfo_byids_cp.fcg</span></span></code></pre></div><h4 id="搜索歌曲" tabindex="-1">搜索歌曲 <a class="header-anchor" href="#搜索歌曲" aria-label="Permalink to “搜索歌曲”"></a></h4><div class="language-text"><button title="Copy Code" class="copy"></button><span class="lang">text</span><pre class="shiki shiki-themes vitesse-light vitesse-dark" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;" tabindex="0" dir="ltr"><code><span class="line"><span>GET https://c.y.qq.com/soso/fcgi-bin/client_search_cp</span></span></code></pre></div><h4 id="获取歌曲播放链接" tabindex="-1">获取歌曲播放链接 <a class="header-anchor" href="#获取歌曲播放链接" aria-label="Permalink to “获取歌曲播放链接”"></a></h4><div class="language-text"><button title="Copy Code" class="copy"></button><span class="lang">text</span><pre class="shiki shiki-themes vitesse-light vitesse-dark" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;" tabindex="0" dir="ltr"><code><span class="line"><span>GET https://u.y.qq.com/cgi-bin/musicu.fcg</span></span></code></pre></div><h2 id="测试前准备" tabindex="-1">测试前准备 <a class="header-anchor" href="#测试前准备" aria-label="Permalink to “测试前准备”"></a></h2><h3 id="_1-登录-qq-音乐" tabindex="-1">1. 登录 QQ 音乐 <a class="header-anchor" href="#_1-登录-qq-音乐" aria-label="Permalink to “1. 登录 QQ 音乐”"></a></h3><ul><li>访问 <code>https://y.qq.com</code></li><li>使用 QQ 扫码或账号密码登录</li></ul><h3 id="_2-获取-cookie" tabindex="-1">2. 获取 Cookie <a class="header-anchor" href="#_2-获取-cookie" aria-label="Permalink to “2. 获取 Cookie”"></a></h3><ul><li>打开浏览器开发者工具(F12)</li><li>进入 <code>Network</code> 标签</li><li>刷新页面</li><li>找到任意请求,查看 <code>Request Headers</code> 中的 <code>Cookie</code></li></ul><h3 id="_3-配置项目-cookie" tabindex="-1">3. 配置项目 Cookie <a class="header-anchor" href="#_3-配置项目-cookie" aria-label="Permalink to “3. 配置项目 Cookie”"></a></h3><p>将 Cookie 配置到项目全局登录态中,并重启服务。</p><h2 id="测试方法" tabindex="-1">测试方法 <a class="header-anchor" href="#测试方法" aria-label="Permalink to “测试方法”"></a></h2><h3 id="方法-1-浏览器直接访问" tabindex="-1">方法 1:浏览器直接访问 <a class="header-anchor" href="#方法-1-浏览器直接访问" aria-label="Permalink to “方法 1:浏览器直接访问”"></a></h3><div class="language-text"><button title="Copy Code" class="copy"></button><span class="lang">text</span><pre class="shiki shiki-themes vitesse-light vitesse-dark" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;" tabindex="0" dir="ltr"><code><span class="line"><span>http://localhost:3200/user/getUserPlaylists?uin=你的QQ号</span></span></code></pre></div><p>示例:</p><div class="language-text"><button title="Copy Code" class="copy"></button><span class="lang">text</span><pre class="shiki shiki-themes vitesse-light vitesse-dark" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;" tabindex="0" dir="ltr"><code><span class="line"><span>http://localhost:3200/user/getUserPlaylists?uin=123456789&offset=0&limit=30</span></span></code></pre></div><h3 id="方法-2-使用-curl" tabindex="-1">方法 2:使用 curl <a class="header-anchor" href="#方法-2-使用-curl" aria-label="Permalink to “方法 2:使用 curl”"></a></h3><div class="language-bash"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes vitesse-light vitesse-dark" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;" tabindex="0" dir="ltr"><code><span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">curl</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;"> "</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">http://localhost:3200/user/getUserPlaylists?uin=123456789&offset=0&limit=30</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span></span></code></pre></div><h3 id="方法-3-使用-postman-或其他-api-工具" tabindex="-1">方法 3:使用 Postman 或其他 API 工具 <a class="header-anchor" href="#方法-3-使用-postman-或其他-api-工具" aria-label="Permalink to “方法 3:使用 Postman 或其他 API 工具”"></a></h3><ul><li>URL:<code>http://localhost:3200/user/getUserPlaylists</code></li><li>Method:<code>GET</code></li><li>Query Parameters: <ul><li><code>uin</code>: <code>123456789</code></li><li><code>offset</code>: <code>0</code></li><li><code>limit</code>: <code>30</code></li></ul></li></ul><h2 id="响应示例" tabindex="-1">响应示例 <a class="header-anchor" href="#响应示例" aria-label="Permalink to “响应示例”"></a></h2><h3 id="成功响应" tabindex="-1">成功响应 <a class="header-anchor" href="#成功响应" aria-label="Permalink to “成功响应”"></a></h3><div class="language-json"><button title="Copy Code" class="copy"></button><span class="lang">json</span><pre class="shiki shiki-themes vitesse-light vitesse-dark" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;" tabindex="0" dir="ltr"><code><span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;">{</span></span>
|
|
3
|
+
<span class="line"><span style="--shiki-light:#99841877;--shiki-dark:#B8A96577;"> "</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">code</span><span style="--shiki-light:#99841877;--shiki-dark:#B8A96577;">"</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 0</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span></span>
|
|
4
|
+
<span class="line"><span style="--shiki-light:#99841877;--shiki-dark:#B8A96577;"> "</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">data</span><span style="--shiki-light:#99841877;--shiki-dark:#B8A96577;">"</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> {</span></span>
|
|
5
|
+
<span class="line"><span style="--shiki-light:#99841877;--shiki-dark:#B8A96577;"> "</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">playlists</span><span style="--shiki-light:#99841877;--shiki-dark:#B8A96577;">"</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> [</span></span>
|
|
6
|
+
<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;"> {</span></span>
|
|
7
|
+
<span class="line"><span style="--shiki-light:#99841877;--shiki-dark:#B8A96577;"> "</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">dissid</span><span style="--shiki-light:#99841877;--shiki-dark:#B8A96577;">"</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;"> "</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">123456</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span></span>
|
|
8
|
+
<span class="line"><span style="--shiki-light:#99841877;--shiki-dark:#B8A96577;"> "</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">dissname</span><span style="--shiki-light:#99841877;--shiki-dark:#B8A96577;">"</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;"> "</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">我喜欢的音乐</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span></span>
|
|
9
|
+
<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;"> }</span></span>
|
|
10
|
+
<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;"> ]</span></span>
|
|
11
|
+
<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;"> }</span></span>
|
|
12
|
+
<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;">}</span></span></code></pre></div><h3 id="错误响应" tabindex="-1">错误响应 <a class="header-anchor" href="#错误响应" aria-label="Permalink to “错误响应”"></a></h3><p><strong>缺少 uin 参数</strong>:</p><div class="language-json"><button title="Copy Code" class="copy"></button><span class="lang">json</span><pre class="shiki shiki-themes vitesse-light vitesse-dark" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;" tabindex="0" dir="ltr"><code><span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;">{</span></span>
|
|
13
|
+
<span class="line"><span style="--shiki-light:#99841877;--shiki-dark:#B8A96577;"> "</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">error</span><span style="--shiki-light:#99841877;--shiki-dark:#B8A96577;">"</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;"> "</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">缺少 uin 参数</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span></span>
|
|
14
|
+
<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;">}</span></span></code></pre></div><p><strong>Cookie 无效或上游失败</strong>:</p><div class="language-json"><button title="Copy Code" class="copy"></button><span class="lang">json</span><pre class="shiki shiki-themes vitesse-light vitesse-dark" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;" tabindex="0" dir="ltr"><code><span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;">{</span></span>
|
|
15
|
+
<span class="line"><span style="--shiki-light:#99841877;--shiki-dark:#B8A96577;"> "</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">error</span><span style="--shiki-light:#99841877;--shiki-dark:#B8A96577;">"</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;"> "</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">Request failed with status code 404</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span></span>
|
|
16
|
+
<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;">}</span></span></code></pre></div><h2 id="注意事项" tabindex="-1">注意事项 <a class="header-anchor" href="#注意事项" aria-label="Permalink to “注意事项”"></a></h2><ol><li>此接口需要有效的 QQ 音乐 Cookie 才能正常工作</li><li>如果返回 <code>404</code> 或 <code>502</code>,优先检查 Cookie 是否过期,以及上游接口是否变化</li><li>当前接口对外只保证 <code>playlists</code> 标准化字段,不保证透出完整上游原始结构</li><li>若你需要稳定能力,优先考虑公开歌单类接口,例如歌单详情或歌单分类接口</li></ol><h2 id="常见问题" tabindex="-1">常见问题 <a class="header-anchor" href="#常见问题" aria-label="Permalink to “常见问题”"></a></h2><h3 id="q-返回-404-错误" tabindex="-1">Q:返回 404 错误 <a class="header-anchor" href="#q-返回-404-错误" aria-label="Permalink to “Q:返回 404 错误”"></a></h3><p><strong>A</strong>:这通常是因为:</p><ol><li>没有配置有效的 Cookie</li><li>QQ 音乐上游接口已调整</li><li>请求参数不正确</li></ol><h3 id="q-如何获取自己的-qq-号" tabindex="-1">Q:如何获取自己的 QQ 号? <a class="header-anchor" href="#q-如何获取自己的-qq-号" aria-label="Permalink to “Q:如何获取自己的 QQ 号?”"></a></h3><p><strong>A</strong>:</p><ul><li>登录 QQ 音乐后访问个人主页</li><li>URL 中 <code>uin=</code> 后面的数字就是你的 QQ 号</li><li>也可以在浏览器开发者工具 Console 中查看当前用户信息</li></ul><h3 id="q-cookie-有效期多久" tabindex="-1">Q:Cookie 有效期多久? <a class="header-anchor" href="#q-cookie-有效期多久" aria-label="Permalink to “Q:Cookie 有效期多久?”"></a></h3><p><strong>A</strong>:Cookie 通常可持续一段时间,但登录态失效后需要重新获取并配置。</p><h2 id="替代方案" tabindex="-1">替代方案 <a class="header-anchor" href="#替代方案" aria-label="Permalink to “替代方案”"></a></h2><p>如果此接口当前不可用,可以考虑:</p><ol><li>使用公开歌单接口</li><li>通过歌单 ID 直接获取歌单详情:<code>/getSongListDetail?disstid=xxx</code></li><li>查看 <a href="./api/user.html"><code>docs/api/user.md</code></a> 与 <a href="./api/playlist.html"><code>docs/api/playlist.md</code></a> 获取其他能力说明</li></ol>`,68)])])}const g=s(t,[["render",h]]);export{c as __pageData,g as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c as s,S as a,j as e,m as l}from"./chunks/framework.BUY3a635.js";const c=JSON.parse('{"title":"用户歌单接口测试指南","description":"","frontmatter":{},"headers":[],"relativePath":"TEST_USER_PLAYLISTS.md","filePath":"TEST_USER_PLAYLISTS.md","lastUpdated":1779031768000}'),t={name:"TEST_USER_PLAYLISTS.md"};function h(n,i,d,r,o,k){return a(),e("div",null,[...i[0]||(i[0]=[l("",68)])])}const g=s(t,[["render",h]]);export{c as __pageData,g as default};
|