@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.
Files changed (173) hide show
  1. package/CHANGELOG.md +28 -1
  2. package/README.md +10 -11
  3. package/dist/api/index.js +9 -0
  4. package/dist/app.js +8 -43
  5. package/dist/index.js +13 -1
  6. package/dist/koaApp.js +49 -0
  7. package/dist/module/apis/downloadQQMusic.js +2 -1
  8. package/dist/module/apis/music/getLyric.js +220 -16
  9. package/dist/module/apis/music/getMusicPlay.js +3 -2
  10. package/dist/package.json +19 -15
  11. package/dist/routers/context/getLyric.js +12 -2
  12. package/dist/routers/context/getNewDisks.js +4 -0
  13. package/dist/routers/context/getRecommend.js +4 -0
  14. package/dist/routers/context/getTicketInfo.js +4 -0
  15. package/dist/util/cookieResolver.js +10 -4
  16. package/docs-dist/404.html +6 -6
  17. package/docs-dist/CHANGELOG-ARCHITECTURE.html +14 -14
  18. package/docs-dist/COOKIE_CONFIG_GUIDE.html +13 -13
  19. package/docs-dist/DEGRADE_EXAMPLES.html +109 -0
  20. package/docs-dist/FALLBACK_MODE_GUIDE.html +21 -21
  21. package/docs-dist/QUICK_START.html +62 -0
  22. package/docs-dist/README.html +17 -17
  23. package/docs-dist/TEST_USER_PLAYLISTS.html +14 -14
  24. package/docs-dist/USER_AVATAR_GUIDE.html +16 -16
  25. package/docs-dist/api/comments.html +12 -12
  26. package/docs-dist/api/index.html +10 -10
  27. package/docs-dist/api/music.html +15 -13
  28. package/docs-dist/api/other.html +13 -13
  29. package/docs-dist/api/playground.html +27 -0
  30. package/docs-dist/api/playlist.html +15 -15
  31. package/docs-dist/api/rank.html +12 -12
  32. package/docs-dist/api/search.html +13 -13
  33. package/docs-dist/api/singer.html +12 -12
  34. package/docs-dist/api/user.html +16 -16
  35. package/docs-dist/assets/{CHANGELOG-ARCHITECTURE.md.r40JGJZK.js → CHANGELOG-ARCHITECTURE.md.CYHmaBdY.js} +5 -5
  36. package/docs-dist/assets/CHANGELOG-ARCHITECTURE.md.CYHmaBdY.lean.js +1 -0
  37. package/docs-dist/assets/COOKIE_CONFIG_GUIDE.md.Nvywo7CW.js +13 -0
  38. package/docs-dist/assets/COOKIE_CONFIG_GUIDE.md.Nvywo7CW.lean.js +1 -0
  39. package/docs-dist/assets/DEGRADE_EXAMPLES.md.Cz2J-qwE.js +83 -0
  40. package/docs-dist/assets/DEGRADE_EXAMPLES.md.Cz2J-qwE.lean.js +1 -0
  41. package/docs-dist/assets/{FALLBACK_MODE_GUIDE.md.BBdcIdh_.js → FALLBACK_MODE_GUIDE.md.wKA9yqoI.js} +12 -12
  42. package/docs-dist/assets/FALLBACK_MODE_GUIDE.md.wKA9yqoI.lean.js +1 -0
  43. package/docs-dist/assets/QUICK_START.md.D5KfDgbs.js +36 -0
  44. package/docs-dist/assets/QUICK_START.md.D5KfDgbs.lean.js +1 -0
  45. package/docs-dist/assets/README.md.CHbArqA7.js +421 -0
  46. package/docs-dist/assets/README.md.CHbArqA7.lean.js +1 -0
  47. package/docs-dist/assets/TEST_USER_PLAYLISTS.md.BfBxYbaM.js +16 -0
  48. package/docs-dist/assets/TEST_USER_PLAYLISTS.md.BfBxYbaM.lean.js +1 -0
  49. package/docs-dist/assets/{USER_AVATAR_GUIDE.md.CVHPs2Dn.js → USER_AVATAR_GUIDE.md.D5Rti1Gg.js} +7 -7
  50. package/docs-dist/assets/USER_AVATAR_GUIDE.md.D5Rti1Gg.lean.js +1 -0
  51. package/docs-dist/assets/{api_comments.md.79Q_C8Qp.js → api_comments.md.5nDhrWa8.js} +3 -3
  52. package/docs-dist/assets/api_comments.md.5nDhrWa8.lean.js +1 -0
  53. package/docs-dist/assets/api_index.md.DdG1WHkZ.js +1 -0
  54. package/docs-dist/assets/api_index.md.DdG1WHkZ.lean.js +1 -0
  55. package/docs-dist/assets/{api_music.md.B1AzLePX.js → api_music.md.D66hq-_4.js} +6 -4
  56. package/docs-dist/assets/api_music.md.D66hq-_4.lean.js +1 -0
  57. package/docs-dist/assets/api_other.md.9KhspVEM.js +7 -0
  58. package/docs-dist/assets/api_other.md.9KhspVEM.lean.js +1 -0
  59. package/docs-dist/assets/api_playground.md.BZBvYMm2.js +11 -0
  60. package/docs-dist/assets/api_playground.md.BZBvYMm2.lean.js +11 -0
  61. package/docs-dist/assets/{api_playlist.md.8ACJ3QqD.js → api_playlist.md.BQK32ZyE.js} +6 -6
  62. package/docs-dist/assets/api_playlist.md.BQK32ZyE.lean.js +1 -0
  63. package/docs-dist/assets/{api_rank.md.B8IP2ZRy.js → api_rank.md.z7YBwVgw.js} +3 -3
  64. package/docs-dist/assets/api_rank.md.z7YBwVgw.lean.js +1 -0
  65. package/docs-dist/assets/{api_search.md.DO9J6nvp.js → api_search.md.GfzIBRfc.js} +4 -4
  66. package/docs-dist/assets/api_search.md.GfzIBRfc.lean.js +1 -0
  67. package/docs-dist/assets/api_singer.md.BDR-_qDH.js +21 -0
  68. package/docs-dist/assets/api_singer.md.BDR-_qDH.lean.js +1 -0
  69. package/docs-dist/assets/{api_user.md.Cb7Ky3Sn.js → api_user.md.Dx8BWGrb.js} +7 -7
  70. package/docs-dist/assets/api_user.md.Dx8BWGrb.lean.js +1 -0
  71. package/docs-dist/assets/app.CxuIZ1W7.js +1 -0
  72. package/docs-dist/assets/chunks/@localSearchIndexroot.ygoKgu27.js +1 -0
  73. package/docs-dist/assets/chunks/VPLocalSearchBox.BqgkAhNM.js +3 -0
  74. package/docs-dist/assets/chunks/framework.BUY3a635.js +4 -0
  75. package/docs-dist/assets/chunks/theme.C-Z3DN0r.js +2 -0
  76. package/docs-dist/assets/{guide_architecture.md.CzgqynmB.js → guide_architecture.md.SHnKkzwb.js} +20 -20
  77. package/docs-dist/assets/guide_architecture.md.SHnKkzwb.lean.js +1 -0
  78. package/docs-dist/assets/guide_authentication.md.CZCKocgR.js +4 -0
  79. package/docs-dist/assets/guide_authentication.md.CZCKocgR.lean.js +1 -0
  80. package/docs-dist/assets/guide_index.md.CkJ-jjL0.js +1 -0
  81. package/docs-dist/assets/guide_index.md.CkJ-jjL0.lean.js +1 -0
  82. package/docs-dist/assets/guide_installation.md.D2TBzILh.js +7 -0
  83. package/docs-dist/assets/guide_installation.md.D2TBzILh.lean.js +1 -0
  84. package/docs-dist/assets/guide_quickstart.md.J7Sib8wg.js +13 -0
  85. package/docs-dist/assets/guide_quickstart.md.J7Sib8wg.lean.js +1 -0
  86. package/docs-dist/assets/index.md.ClwYf6Qc.js +1 -0
  87. package/docs-dist/assets/index.md.ClwYf6Qc.lean.js +1 -0
  88. package/docs-dist/assets/inter-italic-cyrillic-ext._dlW9xFb.woff2 +0 -0
  89. package/docs-dist/assets/inter-italic-cyrillic.D7dRslh9.woff2 +0 -0
  90. package/docs-dist/assets/inter-italic-greek-ext.Ct-Tf2bq.woff2 +0 -0
  91. package/docs-dist/assets/inter-italic-greek.DNcpQ8QC.woff2 +0 -0
  92. package/docs-dist/assets/inter-italic-latin-ext.DytegdRQ.woff2 +0 -0
  93. package/docs-dist/assets/inter-italic-latin.COaG5lWR.woff2 +0 -0
  94. package/docs-dist/assets/inter-italic-vietnamese.BI5UxJD-.woff2 +0 -0
  95. package/docs-dist/assets/inter-roman-cyrillic-ext.BeNbU08G.woff2 +0 -0
  96. package/docs-dist/assets/inter-roman-cyrillic.CD0kT8R4.woff2 +0 -0
  97. package/docs-dist/assets/inter-roman-greek-ext.CFAEQ5Ow.woff2 +0 -0
  98. package/docs-dist/assets/inter-roman-greek.Dsf7YjP7.woff2 +0 -0
  99. package/docs-dist/assets/inter-roman-latin-ext.Dl_ayf4-.woff2 +0 -0
  100. package/docs-dist/assets/inter-roman-latin.Cy4MYw_J.woff2 +0 -0
  101. package/docs-dist/assets/inter-roman-vietnamese.CpqCnS2H.woff2 +0 -0
  102. package/docs-dist/assets/reference_response-format.md.BrGoGoPV.js +12 -0
  103. package/docs-dist/assets/reference_response-format.md.BrGoGoPV.lean.js +1 -0
  104. package/docs-dist/assets/style.D_YoXH3a.css +1 -0
  105. package/docs-dist/guide/architecture.html +29 -29
  106. package/docs-dist/guide/authentication.html +12 -12
  107. package/docs-dist/guide/index.html +10 -10
  108. package/docs-dist/guide/installation.html +13 -13
  109. package/docs-dist/guide/quickstart.html +15 -15
  110. package/docs-dist/hashmap.json +1 -1
  111. package/docs-dist/index.html +10 -10
  112. package/docs-dist/reference/response-format.html +13 -13
  113. package/docs-dist/version.json +3 -3
  114. package/package.json +19 -15
  115. package/public/index.html +966 -0
  116. package/public/playground-utils.js +150 -0
  117. package/dist/jest.config.js +0 -52
  118. package/dist/scripts/run-tests-with-flags.js +0 -139
  119. package/dist/types/api.js +0 -55
  120. package/docs-dist/assets/CHANGELOG-ARCHITECTURE.md.r40JGJZK.lean.js +0 -1
  121. package/docs-dist/assets/COOKIE_CONFIG_GUIDE.md.BVXl7WHu.js +0 -13
  122. package/docs-dist/assets/COOKIE_CONFIG_GUIDE.md.BVXl7WHu.lean.js +0 -1
  123. package/docs-dist/assets/FALLBACK_MODE_GUIDE.md.BBdcIdh_.lean.js +0 -1
  124. package/docs-dist/assets/README.md.D6Tw0nRd.js +0 -421
  125. package/docs-dist/assets/README.md.D6Tw0nRd.lean.js +0 -1
  126. package/docs-dist/assets/TEST_USER_PLAYLISTS.md.DSt20Igj.js +0 -16
  127. package/docs-dist/assets/TEST_USER_PLAYLISTS.md.DSt20Igj.lean.js +0 -1
  128. package/docs-dist/assets/USER_AVATAR_GUIDE.md.CVHPs2Dn.lean.js +0 -1
  129. package/docs-dist/assets/api_comments.md.79Q_C8Qp.lean.js +0 -1
  130. package/docs-dist/assets/api_index.md.CU3By8tw.js +0 -1
  131. package/docs-dist/assets/api_index.md.CU3By8tw.lean.js +0 -1
  132. package/docs-dist/assets/api_music.md.B1AzLePX.lean.js +0 -1
  133. package/docs-dist/assets/api_other.md.DCg4bzA7.js +0 -7
  134. package/docs-dist/assets/api_other.md.DCg4bzA7.lean.js +0 -1
  135. package/docs-dist/assets/api_playlist.md.8ACJ3QqD.lean.js +0 -1
  136. package/docs-dist/assets/api_rank.md.B8IP2ZRy.lean.js +0 -1
  137. package/docs-dist/assets/api_search.md.DO9J6nvp.lean.js +0 -1
  138. package/docs-dist/assets/api_singer.md.CcL32xuN.js +0 -21
  139. package/docs-dist/assets/api_singer.md.CcL32xuN.lean.js +0 -1
  140. package/docs-dist/assets/api_user.md.Cb7Ky3Sn.lean.js +0 -1
  141. package/docs-dist/assets/app.CSainqD9.js +0 -1
  142. package/docs-dist/assets/chunks/@localSearchIndexroot.BKleDIv-.js +0 -1
  143. package/docs-dist/assets/chunks/VPLocalSearchBox.BUBaq7tw.js +0 -9
  144. package/docs-dist/assets/chunks/framework.aJbMEiY9.js +0 -19
  145. package/docs-dist/assets/chunks/theme.CzMhU0Ps.js +0 -2
  146. package/docs-dist/assets/guide_architecture.md.CzgqynmB.lean.js +0 -1
  147. package/docs-dist/assets/guide_authentication.md.a8yTA8Xe.js +0 -4
  148. package/docs-dist/assets/guide_authentication.md.a8yTA8Xe.lean.js +0 -1
  149. package/docs-dist/assets/guide_index.md.BgUUL6fI.js +0 -1
  150. package/docs-dist/assets/guide_index.md.BgUUL6fI.lean.js +0 -1
  151. package/docs-dist/assets/guide_installation.md.BCZ4jBl_.js +0 -7
  152. package/docs-dist/assets/guide_installation.md.BCZ4jBl_.lean.js +0 -1
  153. package/docs-dist/assets/guide_quickstart.md.9-4dA6wS.js +0 -13
  154. package/docs-dist/assets/guide_quickstart.md.9-4dA6wS.lean.js +0 -1
  155. package/docs-dist/assets/index.md.z0hAJioN.js +0 -1
  156. package/docs-dist/assets/index.md.z0hAJioN.lean.js +0 -1
  157. package/docs-dist/assets/inter-italic-cyrillic-ext.r48I6akx.woff2 +0 -0
  158. package/docs-dist/assets/inter-italic-cyrillic.By2_1cv3.woff2 +0 -0
  159. package/docs-dist/assets/inter-italic-greek-ext.1u6EdAuj.woff2 +0 -0
  160. package/docs-dist/assets/inter-italic-greek.DJ8dCoTZ.woff2 +0 -0
  161. package/docs-dist/assets/inter-italic-latin-ext.CN1xVJS-.woff2 +0 -0
  162. package/docs-dist/assets/inter-italic-latin.C2AdPX0b.woff2 +0 -0
  163. package/docs-dist/assets/inter-italic-vietnamese.BSbpV94h.woff2 +0 -0
  164. package/docs-dist/assets/inter-roman-cyrillic-ext.BBPuwvHQ.woff2 +0 -0
  165. package/docs-dist/assets/inter-roman-cyrillic.C5lxZ8CY.woff2 +0 -0
  166. package/docs-dist/assets/inter-roman-greek-ext.CqjqNYQ-.woff2 +0 -0
  167. package/docs-dist/assets/inter-roman-greek.BBVDIX6e.woff2 +0 -0
  168. package/docs-dist/assets/inter-roman-latin-ext.4ZJIpNVo.woff2 +0 -0
  169. package/docs-dist/assets/inter-roman-latin.Di8DUHzh.woff2 +0 -0
  170. package/docs-dist/assets/inter-roman-vietnamese.BjW4sHH5.woff2 +0 -0
  171. package/docs-dist/assets/reference_response-format.md.VvQTLDZr.js +0 -12
  172. package/docs-dist/assets/reference_response-format.md.VvQTLDZr.lean.js +0 -1
  173. package/docs-dist/assets/style.DM4qKDd4.css +0 -1
@@ -1 +0,0 @@
1
- import{_ as i,o as a,c as t,ag as h}from"./chunks/framework.aJbMEiY9.js";const g=JSON.parse('{"title":"音乐相关 API","description":"","frontmatter":{},"headers":[],"relativePath":"api/music.md","filePath":"api/music.md","lastUpdated":1773499772000}'),n={name:"api/music.md"};function l(p,s,k,e,d,r){return a(),t("div",null,[...s[0]||(s[0]=[h("",38)])])}const y=i(n,[["render",l]]);export{g as __pageData,y as default};
@@ -1,7 +0,0 @@
1
- import{_ as s,o as a,c as i,ag as e}from"./chunks/framework.aJbMEiY9.js";const c=JSON.parse('{"title":"其他接口","description":"","frontmatter":{},"headers":[],"relativePath":"api/other.md","filePath":"api/other.md","lastUpdated":1773499772000}'),d={name:"api/other.md"};function h(n,t,l,o,p,r){return a(),i("div",null,[...t[0]||(t[0]=[e(`<h1 id="其他接口" tabindex="-1">其他接口 <a class="header-anchor" href="#其他接口" aria-label="Permalink to &quot;其他接口&quot;">​</a></h1><p>本页整理了 MV、图片、数字专辑、下载、扫码登录、电台、推荐等接口。</p><h2 id="mv-相关" tabindex="-1">MV 相关 <a class="header-anchor" href="#mv-相关" aria-label="Permalink to &quot;MV 相关&quot;">​</a></h2><h3 id="获取-mv-列表" tabindex="-1">获取 MV 列表 <a class="header-anchor" href="#获取-mv-列表" aria-label="Permalink to &quot;获取 MV 列表&quot;">​</a></h3><p><strong>接口:</strong> <code>GET /getMv</code></p><p><strong>参数:</strong></p><table tabindex="0"><thead><tr><th>参数</th><th>类型</th><th>必填</th><th>说明</th></tr></thead><tbody><tr><td>area_id</td><td>number</td><td>否</td><td>地区 ID,默认 15</td></tr><tr><td>version_id</td><td>number</td><td>否</td><td>版本 ID,默认 7</td></tr><tr><td>limit</td><td>number</td><td>否</td><td>返回数量,默认 20</td></tr><tr><td>page</td><td>number</td><td>否</td><td>页码,默认 0</td></tr></tbody></table><p><strong>示例:</strong></p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">curl</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;"> &quot;</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">http://localhost:3200/getMv?area_id=1&amp;limit=20</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">&quot;</span></span></code></pre></div><h3 id="获取-mv-播放地址" tabindex="-1">获取 MV 播放地址 <a class="header-anchor" href="#获取-mv-播放地址" aria-label="Permalink to &quot;获取 MV 播放地址&quot;">​</a></h3><p><strong>接口:</strong> <code>GET /getMvPlay</code></p><p><strong>参数:</strong></p><table tabindex="0"><thead><tr><th>参数</th><th>类型</th><th>必填</th><th>说明</th></tr></thead><tbody><tr><td>vid</td><td>string</td><td>是</td><td>MV 视频 ID</td></tr></tbody></table><p><strong>示例:</strong></p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">curl</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;"> &quot;</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">http://localhost:3200/getMvPlay?vid=001J5QJL1pRQYB</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">&quot;</span></span></code></pre></div><p><strong>返回说明:</strong></p><p>成功时会在响应中的 <code>playLists</code> 字段下按清晰度聚合播放地址,通常包含 <code>f10</code>、<code>f20</code>、<code>f30</code>、<code>f40</code> 等分组。</p><p><strong>注意事项:</strong></p><ul><li><code>vid</code> 缺失时会返回 <code>400</code></li><li>当上游 MV URL 数据为空时,当前实现会返回 <code>502</code></li><li>当前实现会同时聚合 <code>mp4</code> 与 <code>hls</code> 的 <code>freeflow_url</code> 数据</li></ul><h3 id="按标签获取-mv" tabindex="-1">按标签获取 MV <a class="header-anchor" href="#按标签获取-mv" aria-label="Permalink to &quot;按标签获取 MV&quot;">​</a></h3><p><strong>接口:</strong> <code>GET /getMvByTag</code></p><p><strong>参数:</strong></p><table tabindex="0"><thead><tr><th>参数</th><th>类型</th><th>必填</th><th>说明</th></tr></thead><tbody><tr><td>tag</td><td>string</td><td>是</td><td>MV 标签</td></tr><tr><td>limit</td><td>number</td><td>否</td><td>数量限制</td></tr><tr><td>page</td><td>number</td><td>否</td><td>页码</td></tr></tbody></table><p><strong>示例:</strong></p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">curl</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;"> &quot;</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">http://localhost:3200/getMvByTag?tag=流行&amp;limit=20</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">&quot;</span></span></code></pre></div><h2 id="图片相关" tabindex="-1">图片相关 <a class="header-anchor" href="#图片相关" aria-label="Permalink to &quot;图片相关&quot;">​</a></h2><h3 id="获取图片-url" tabindex="-1">获取图片 URL <a class="header-anchor" href="#获取图片-url" aria-label="Permalink to &quot;获取图片 URL&quot;">​</a></h3><p><strong>接口:</strong> <code>GET /getImageUrl</code></p><p><strong>参数:</strong></p><table tabindex="0"><thead><tr><th>参数</th><th>类型</th><th>必填</th><th>说明</th></tr></thead><tbody><tr><td>id</td><td>string</td><td>是</td><td>图片资源 ID</td></tr><tr><td>size</td><td>string</td><td>否</td><td>图片尺寸,默认 <code>300x300</code></td></tr><tr><td>maxAge</td><td>number</td><td>否</td><td>缓存时间,默认 <code>2592000</code></td></tr></tbody></table><p><strong>示例:</strong></p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">curl</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;"> &quot;</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">http://localhost:3200/getImageUrl?id=004AlfUb0cVkN1&amp;size=500x500</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">&quot;</span></span></code></pre></div><h2 id="数字专辑" tabindex="-1">数字专辑 <a class="header-anchor" href="#数字专辑" aria-label="Permalink to &quot;数字专辑&quot;">​</a></h2><h3 id="获取数字专辑列表" tabindex="-1">获取数字专辑列表 <a class="header-anchor" href="#获取数字专辑列表" aria-label="Permalink to &quot;获取数字专辑列表&quot;">​</a></h3><p><strong>接口:</strong> <code>GET /getDigitalAlbumLists</code></p><p><strong>参数:</strong></p><table tabindex="0"><thead><tr><th>参数</th><th>类型</th><th>必填</th><th>说明</th></tr></thead><tbody><tr><td>limit</td><td>number</td><td>否</td><td>数量限制</td></tr><tr><td>page</td><td>number</td><td>否</td><td>页码</td></tr></tbody></table><p><strong>示例:</strong></p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">curl</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;"> &quot;</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">http://localhost:3200/getDigitalAlbumLists?limit=20</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">&quot;</span></span></code></pre></div><h2 id="下载相关" tabindex="-1">下载相关 <a class="header-anchor" href="#下载相关" aria-label="Permalink to &quot;下载相关&quot;">​</a></h2><h3 id="下载-qq-音乐资源地址" tabindex="-1">下载 QQ 音乐资源地址 <a class="header-anchor" href="#下载-qq-音乐资源地址" aria-label="Permalink to &quot;下载 QQ 音乐资源地址&quot;">​</a></h3><p><strong>接口:</strong> <code>GET /downloadQQMusic</code></p><p><strong>参数:</strong></p><table tabindex="0"><thead><tr><th>参数</th><th>类型</th><th>必填</th><th>说明</th></tr></thead><tbody><tr><td>songmid</td><td>string</td><td>是</td><td>歌曲 MID</td></tr><tr><td>quality</td><td>string</td><td>否</td><td>音质,如 <code>128</code>、<code>m4a</code>、<code>flac</code></td></tr></tbody></table><p><strong>示例:</strong></p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">curl</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;"> &quot;</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">http://localhost:3200/downloadQQMusic?songmid=003rJSwm3TechU&amp;quality=128</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">&quot;</span></span></code></pre></div><h2 id="用户与扫码登录" tabindex="-1">用户与扫码登录 <a class="header-anchor" href="#用户与扫码登录" aria-label="Permalink to &quot;用户与扫码登录&quot;">​</a></h2><h3 id="获取-qq-登录二维码" tabindex="-1">获取 QQ 登录二维码 <a class="header-anchor" href="#获取-qq-登录二维码" aria-label="Permalink to &quot;获取 QQ 登录二维码&quot;">​</a></h3><p><strong>接口:</strong> <code>GET /getQQLoginQr</code></p><p><strong>兼容接口:</strong> <code>GET /user/getQQLoginQr</code></p><p><strong>示例:</strong></p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">curl</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;"> &quot;</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">http://localhost:3200/getQQLoginQr</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">&quot;</span></span></code></pre></div><h3 id="检查扫码登录状态" tabindex="-1">检查扫码登录状态 <a class="header-anchor" href="#检查扫码登录状态" aria-label="Permalink to &quot;检查扫码登录状态&quot;">​</a></h3><p><strong>接口:</strong> <code>POST /checkQQLoginQr</code></p><p><strong>兼容接口:</strong> <code>POST /user/checkQQLoginQr</code></p><p><strong>请求体参数:</strong></p><table tabindex="0"><thead><tr><th>参数</th><th>类型</th><th>必填</th><th>说明</th></tr></thead><tbody><tr><td>qrsig</td><td>string</td><td>是</td><td>二维码签名</td></tr><tr><td>ptqrtoken</td><td>string</td><td>否</td><td>轮询状态时使用的 token</td></tr></tbody></table><p><strong>示例:</strong></p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">curl</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> -X</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> POST</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;"> &quot;</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">http://localhost:3200/checkQQLoginQr</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">&quot;</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> \\</span></span>
2
- <span class="line"><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> -H</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;"> &quot;</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">Content-Type: application/json</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">&quot;</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> \\</span></span>
3
- <span class="line"><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> -d</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;"> &#39;</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">{&quot;qrsig&quot;:&quot;你的 qrsig&quot;,&quot;ptqrtoken&quot;:&quot;你的 ptqrtoken&quot;}</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">&#39;</span></span></code></pre></div><div class="tip custom-block"><p class="custom-block-title">提示</p><p>如果你通过前一个接口获取二维码,通常需要保留响应中的关键字段,再传给登录状态检查接口。</p></div><div class="warning custom-block"><p class="custom-block-title">已知失败分支</p><p>当前实现会对超时、二维码失效、提取不到 <code>checkSigUrl</code>、提取不到 <code>p_skey</code>、授权跳转缺少 <code>code</code> 等场景返回明确错误。</p></div><h2 id="批量接口" tabindex="-1">批量接口 <a class="header-anchor" href="#批量接口" aria-label="Permalink to &quot;批量接口&quot;">​</a></h2><h3 id="批量获取歌曲信息" tabindex="-1">批量获取歌曲信息 <a class="header-anchor" href="#批量获取歌曲信息" aria-label="Permalink to &quot;批量获取歌曲信息&quot;">​</a></h3><p><strong>接口:</strong> <code>POST /batchGetSongInfo</code></p><p><strong>请求体参数:</strong></p><table tabindex="0"><thead><tr><th>参数</th><th>类型</th><th>必填</th><th>说明</th></tr></thead><tbody><tr><td>songs</td><td>array</td><td>否</td><td>歌曲列表,元素格式为 <code>[song_mid, song_id]</code></td></tr></tbody></table><p><strong>示例:</strong></p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">curl</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> -X</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> POST</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;"> &quot;</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">http://localhost:3200/batchGetSongInfo</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">&quot;</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> \\</span></span>
4
- <span class="line"><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> -H</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;"> &quot;</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">Content-Type: application/json</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">&quot;</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> \\</span></span>
5
- <span class="line"><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> -d</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;"> &#39;</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">{&quot;songs&quot;:[[&quot;0039MnYb0qxYhV&quot;,&quot;12345&quot;],[&quot;001Qu4I30eVFYb&quot;]]}</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">&#39;</span></span></code></pre></div><p><strong>注意事项:</strong></p><ul><li><code>songs</code> 缺失时,当前实现返回空数组</li><li>单个元素缺少 <code>song_id</code> 时,服务端会使用空字符串作为默认值</li></ul><h3 id="批量获取歌单列表" tabindex="-1">批量获取歌单列表 <a class="header-anchor" href="#批量获取歌单列表" aria-label="Permalink to &quot;批量获取歌单列表&quot;">​</a></h3><p><strong>接口:</strong> <code>POST /batchGetSongLists</code></p><p><strong>请求体参数:</strong></p><table tabindex="0"><thead><tr><th>参数</th><th>类型</th><th>必填</th><th>默认值</th><th>说明</th></tr></thead><tbody><tr><td>categoryIds</td><td>number[]</td><td>否</td><td><code>[10000000]</code></td><td>分类 ID 数组</td></tr><tr><td>page</td><td>number</td><td>否</td><td>0</td><td>页码</td></tr><tr><td>limit</td><td>number</td><td>否</td><td>19</td><td>数量</td></tr><tr><td>sortId</td><td>number</td><td>否</td><td>5</td><td>排序方式</td></tr></tbody></table><p><strong>示例:</strong></p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">curl</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> -X</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> POST</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;"> &quot;</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">http://localhost:3200/batchGetSongLists</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">&quot;</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> \\</span></span>
6
- <span class="line"><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> -H</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;"> &quot;</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">Content-Type: application/json</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">&quot;</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> \\</span></span>
7
- <span class="line"><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> -d</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;"> &#39;</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">{&quot;categoryIds&quot;:[10000000,10000002],&quot;page&quot;:0,&quot;limit&quot;:19,&quot;sortId&quot;:5}</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">&#39;</span></span></code></pre></div><p><strong>注意事项:</strong></p><ul><li>未传 <code>categoryIds</code> 时,当前实现会使用默认分类 ID <code>10000000</code></li><li>返回结构当前为 <code>{ status, data }</code></li><li>当下游返回业务错误时,接口会保留该错误对象并放入结果数组</li></ul><h2 id="电台相关" tabindex="-1">电台相关 <a class="header-anchor" href="#电台相关" aria-label="Permalink to &quot;电台相关&quot;">​</a></h2><h3 id="获取电台列表" tabindex="-1">获取电台列表 <a class="header-anchor" href="#获取电台列表" aria-label="Permalink to &quot;获取电台列表&quot;">​</a></h3><p><strong>接口:</strong> <code>GET /getRadioLists</code></p><p><strong>示例:</strong></p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">curl</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;"> &quot;</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">http://localhost:3200/getRadioLists</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">&quot;</span></span></code></pre></div><h2 id="推荐相关" tabindex="-1">推荐相关 <a class="header-anchor" href="#推荐相关" aria-label="Permalink to &quot;推荐相关&quot;">​</a></h2><h3 id="获取首页推荐内容" tabindex="-1">获取首页推荐内容 <a class="header-anchor" href="#获取首页推荐内容" aria-label="Permalink to &quot;获取首页推荐内容&quot;">​</a></h3><p><strong>接口:</strong> <code>GET /getRecommend</code></p><p><strong>示例:</strong></p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">curl</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;"> &quot;</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">http://localhost:3200/getRecommend</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">&quot;</span></span></code></pre></div><h2 id="票务相关" tabindex="-1">票务相关 <a class="header-anchor" href="#票务相关" aria-label="Permalink to &quot;票务相关&quot;">​</a></h2><h3 id="获取票务信息" tabindex="-1">获取票务信息 <a class="header-anchor" href="#获取票务信息" aria-label="Permalink to &quot;获取票务信息&quot;">​</a></h3><p><strong>接口:</strong> <code>GET /getTicketInfo</code></p><p><strong>示例:</strong></p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">curl</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;"> &quot;</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">http://localhost:3200/getTicketInfo</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">&quot;</span></span></code></pre></div><h2 id="相关文档" tabindex="-1">相关文档 <a class="header-anchor" href="#相关文档" aria-label="Permalink to &quot;相关文档&quot;">​</a></h2><ul><li><a href="/qq-music-api/api/music.html">音乐相关 API</a></li><li><a href="/qq-music-api/api/singer.html">歌手相关 API</a></li><li><a href="/qq-music-api/api/playlist.html">歌单相关 API</a></li><li><a href="/qq-music-api/guide/quickstart.html">快速开始</a></li></ul>`,95)])])}const g=s(d,[["render",h]]);export{c as __pageData,g as default};
@@ -1 +0,0 @@
1
- import{_ as s,o as a,c as i,ag as e}from"./chunks/framework.aJbMEiY9.js";const c=JSON.parse('{"title":"其他接口","description":"","frontmatter":{},"headers":[],"relativePath":"api/other.md","filePath":"api/other.md","lastUpdated":1773499772000}'),d={name:"api/other.md"};function h(n,t,l,o,p,r){return a(),i("div",null,[...t[0]||(t[0]=[e("",95)])])}const g=s(d,[["render",h]]);export{c as __pageData,g as default};
@@ -1 +0,0 @@
1
- import{_ as i,o as a,c as t,ag as n}from"./chunks/framework.aJbMEiY9.js";const o=JSON.parse('{"title":"歌单相关 API","description":"","frontmatter":{},"headers":[],"relativePath":"api/playlist.md","filePath":"api/playlist.md","lastUpdated":1773499772000}'),h={name:"api/playlist.md"};function p(l,s,k,e,d,r){return a(),t("div",null,[...s[0]||(s[0]=[n("",45)])])}const y=i(h,[["render",p]]);export{o as __pageData,y as default};
@@ -1 +0,0 @@
1
- import{_ as i,o as a,c as t,ag as n}from"./chunks/framework.aJbMEiY9.js";const o=JSON.parse('{"title":"排行榜 API","description":"","frontmatter":{},"headers":[],"relativePath":"api/rank.md","filePath":"api/rank.md","lastUpdated":1773499772000}'),h={name:"api/rank.md"};function l(k,s,p,e,d,r){return a(),t("div",null,[...s[0]||(s[0]=[n("",15)])])}const y=i(h,[["render",l]]);export{o as __pageData,y as default};
@@ -1 +0,0 @@
1
- import{_ as i,o as a,c as t,ag as n}from"./chunks/framework.aJbMEiY9.js";const o=JSON.parse('{"title":"搜索 API","description":"","frontmatter":{},"headers":[],"relativePath":"api/search.md","filePath":"api/search.md","lastUpdated":1773499772000}'),h={name:"api/search.md"};function l(k,s,p,e,d,r){return a(),t("div",null,[...s[0]||(s[0]=[n("",31)])])}const y=i(h,[["render",l]]);export{o as __pageData,y as default};
@@ -1,21 +0,0 @@
1
- import{_ as i,o as t,c as a,ag as h}from"./chunks/framework.aJbMEiY9.js";const g=JSON.parse('{"title":"歌手相关 API","description":"","frontmatter":{},"headers":[],"relativePath":"api/singer.md","filePath":"api/singer.md","lastUpdated":1773499772000}'),n={name:"api/singer.md"};function e(l,s,p,d,k,r){return t(),a("div",null,[...s[0]||(s[0]=[h(`<h1 id="歌手相关-api" tabindex="-1">歌手相关 API <a class="header-anchor" href="#歌手相关-api" aria-label="Permalink to &quot;歌手相关 API&quot;">​</a></h1><p>歌手列表、歌手详情、热门歌曲、MV 等接口。</p><h2 id="获取歌手列表" tabindex="-1">获取歌手列表 <a class="header-anchor" href="#获取歌手列表" aria-label="Permalink to &quot;获取歌手列表&quot;">​</a></h2><p>获取歌手列表,支持筛选。</p><p><strong>接口:</strong> <code>GET /getSingerList</code></p><p><strong>参数:</strong></p><table tabindex="0"><thead><tr><th>参数</th><th>类型</th><th>必填</th><th>说明</th></tr></thead><tbody><tr><td>area</td><td>number</td><td>否</td><td>地区(-1=全部,2=华语,3=欧美等)</td></tr><tr><td>sex</td><td>number</td><td>否</td><td>性别(-1=全部,1=男,2=女)</td></tr><tr><td>genre</td><td>number</td><td>否</td><td>流派(-1=全部,1=流行,2=摇滚等)</td></tr><tr><td>page</td><td>number</td><td>否</td><td>页码</td></tr><tr><td>limit</td><td>number</td><td>否</td><td>每页数量</td></tr></tbody></table><p><strong>示例:</strong></p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">curl</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;"> &quot;</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">http://localhost:3200/getSingerList?area=-1&amp;sex=-1&amp;limit=20</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">&quot;</span></span></code></pre></div><p><strong>响应:</strong></p><div class="language-json vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">json</span><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;">{</span></span>
2
- <span class="line"><span style="--shiki-light:#99841877;--shiki-dark:#B8A96577;"> &quot;</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">code</span><span style="--shiki-light:#99841877;--shiki-dark:#B8A96577;">&quot;</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>
3
- <span class="line"><span style="--shiki-light:#99841877;--shiki-dark:#B8A96577;"> &quot;</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">msg</span><span style="--shiki-light:#99841877;--shiki-dark:#B8A96577;">&quot;</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;"> &quot;</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">success</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">&quot;</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span></span>
4
- <span class="line"><span style="--shiki-light:#99841877;--shiki-dark:#B8A96577;"> &quot;</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">data</span><span style="--shiki-light:#99841877;--shiki-dark:#B8A96577;">&quot;</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;"> &quot;</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">singers</span><span style="--shiki-light:#99841877;--shiki-dark:#B8A96577;">&quot;</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;"> &quot;</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">singerName</span><span style="--shiki-light:#99841877;--shiki-dark:#B8A96577;">&quot;</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;"> &quot;</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">歌手名</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">&quot;</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span></span>
8
- <span class="line"><span style="--shiki-light:#99841877;--shiki-dark:#B8A96577;"> &quot;</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">singerMID</span><span style="--shiki-light:#99841877;--shiki-dark:#B8A96577;">&quot;</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;"> &quot;</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">0025NhlN2yWrP4</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">&quot;</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span></span>
9
- <span class="line"><span style="--shiki-light:#99841877;--shiki-dark:#B8A96577;"> &quot;</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">singerPic</span><span style="--shiki-light:#99841877;--shiki-dark:#B8A96577;">&quot;</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;"> &quot;</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">http://...</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">&quot;</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>
13
- <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 &quot;获取歌手详情&quot;">​</a></h2><p>获取歌手详细描述信息。</p><p><strong>接口:</strong> <code>GET /getSingerDesc</code></p><p><strong>参数:</strong></p><table tabindex="0"><thead><tr><th>参数</th><th>类型</th><th>必填</th><th>说明</th></tr></thead><tbody><tr><td>singermid</td><td>string</td><td>是</td><td>歌手 MID</td></tr></tbody></table><p><strong>示例:</strong></p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">curl</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;"> &quot;</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">http://localhost:3200/getSingerDesc?singermid=0025NhlN2yWrP4</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">&quot;</span></span></code></pre></div><p><strong>响应:</strong></p><div class="language-json vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">json</span><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;">{</span></span>
14
- <span class="line"><span style="--shiki-light:#99841877;--shiki-dark:#B8A96577;"> &quot;</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">code</span><span style="--shiki-light:#99841877;--shiki-dark:#B8A96577;">&quot;</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>
15
- <span class="line"><span style="--shiki-light:#99841877;--shiki-dark:#B8A96577;"> &quot;</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">msg</span><span style="--shiki-light:#99841877;--shiki-dark:#B8A96577;">&quot;</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;"> &quot;</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">success</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">&quot;</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span></span>
16
- <span class="line"><span style="--shiki-light:#99841877;--shiki-dark:#B8A96577;"> &quot;</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">data</span><span style="--shiki-light:#99841877;--shiki-dark:#B8A96577;">&quot;</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> {</span></span>
17
- <span class="line"><span style="--shiki-light:#99841877;--shiki-dark:#B8A96577;"> &quot;</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">desc</span><span style="--shiki-light:#99841877;--shiki-dark:#B8A96577;">&quot;</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;"> &quot;</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">歌手详细介绍...</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">&quot;</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span></span>
18
- <span class="line"><span style="--shiki-light:#99841877;--shiki-dark:#B8A96577;"> &quot;</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">birth</span><span style="--shiki-light:#99841877;--shiki-dark:#B8A96577;">&quot;</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;"> &quot;</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">出生日期</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">&quot;</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span></span>
19
- <span class="line"><span style="--shiki-light:#99841877;--shiki-dark:#B8A96577;"> &quot;</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">birthPlace</span><span style="--shiki-light:#99841877;--shiki-dark:#B8A96577;">&quot;</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;"> &quot;</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">出生地</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">&quot;</span></span>
20
- <span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;"> }</span></span>
21
- <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 &quot;获取歌手热门歌曲&quot;">​</a></h2><p>获取歌手的热门歌曲列表。</p><p><strong>接口:</strong> <code>GET /getSingerHotsong</code></p><p><strong>参数:</strong></p><table tabindex="0"><thead><tr><th>参数</th><th>类型</th><th>必填</th><th>说明</th></tr></thead><tbody><tr><td>singermid</td><td>string</td><td>是</td><td>歌手 MID</td></tr><tr><td>limit</td><td>number</td><td>否</td><td>数量限制</td></tr><tr><td>page</td><td>number</td><td>否</td><td>页码</td></tr></tbody></table><p><strong>示例:</strong></p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">curl</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;"> &quot;</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">http://localhost:3200/getSingerHotsong?singermid=0025NhlN2yWrP4&amp;limit=20</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">&quot;</span></span></code></pre></div><h2 id="获取歌手专辑" tabindex="-1">获取歌手专辑 <a class="header-anchor" href="#获取歌手专辑" aria-label="Permalink to &quot;获取歌手专辑&quot;">​</a></h2><p>获取歌手的专辑列表。</p><p><strong>接口:</strong> <code>GET /getSingerAlbum</code></p><p><strong>参数:</strong></p><table tabindex="0"><thead><tr><th>参数</th><th>类型</th><th>必填</th><th>说明</th></tr></thead><tbody><tr><td>singermid</td><td>string</td><td>是</td><td>歌手 MID</td></tr><tr><td>limit</td><td>number</td><td>否</td><td>数量限制</td></tr><tr><td>page</td><td>number</td><td>否</td><td>页码</td></tr></tbody></table><p><strong>示例:</strong></p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">curl</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;"> &quot;</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">http://localhost:3200/getSingerAlbum?singermid=0025NhlN2yWrP4&amp;limit=20</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">&quot;</span></span></code></pre></div><h2 id="获取歌手-mv" tabindex="-1">获取歌手 MV <a class="header-anchor" href="#获取歌手-mv" aria-label="Permalink to &quot;获取歌手 MV&quot;">​</a></h2><p>获取歌手的 MV 列表。</p><p><strong>接口:</strong> <code>GET /getSingerMv</code></p><p><strong>参数:</strong></p><table tabindex="0"><thead><tr><th>参数</th><th>类型</th><th>必填</th><th>说明</th></tr></thead><tbody><tr><td>singermid</td><td>string</td><td>是</td><td>歌手 MID</td></tr><tr><td>limit</td><td>number</td><td>否</td><td>数量限制</td></tr><tr><td>order</td><td>string</td><td>否</td><td>排序(time=时间,listen=播放量)</td></tr></tbody></table><p><strong>示例:</strong></p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">curl</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;"> &quot;</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">http://localhost:3200/getSingerMv?singermid=0025NhlN2yWrP4&amp;limit=20&amp;order=listen</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">&quot;</span></span></code></pre></div><h2 id="获取相似歌手" tabindex="-1">获取相似歌手 <a class="header-anchor" href="#获取相似歌手" aria-label="Permalink to &quot;获取相似歌手&quot;">​</a></h2><p>获取与指定歌手相似的歌手列表。</p><p><strong>接口:</strong> <code>GET /getSimilarSinger</code></p><p><strong>参数:</strong></p><table tabindex="0"><thead><tr><th>参数</th><th>类型</th><th>必填</th><th>说明</th></tr></thead><tbody><tr><td>singermid</td><td>string</td><td>是</td><td>歌手 MID</td></tr></tbody></table><p><strong>示例:</strong></p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">curl</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;"> &quot;</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">http://localhost:3200/getSimilarSinger?singermid=0025NhlN2yWrP4</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">&quot;</span></span></code></pre></div><h2 id="获取歌手热度" tabindex="-1">获取歌手热度 <a class="header-anchor" href="#获取歌手热度" aria-label="Permalink to &quot;获取歌手热度&quot;">​</a></h2><p>获取歌手的热度值(粉丝数等)。</p><p><strong>接口:</strong> <code>GET /getSingerStarNum</code></p><p><strong>参数:</strong></p><table tabindex="0"><thead><tr><th>参数</th><th>类型</th><th>必填</th><th>说明</th></tr></thead><tbody><tr><td>singermid</td><td>string</td><td>是</td><td>歌手 MID</td></tr></tbody></table><p><strong>示例:</strong></p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">curl</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;"> &quot;</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">http://localhost:3200/getSingerStarNum?singermid=0025NhlN2yWrP4</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">&quot;</span></span></code></pre></div><h2 id="相关接口" tabindex="-1">相关接口 <a class="header-anchor" href="#相关接口" aria-label="Permalink to &quot;相关接口&quot;">​</a></h2><ul><li><a href="/qq-music-api/api/music.html">音乐相关 API</a></li><li><a href="/qq-music-api/api/other.html">MV 相关 API</a></li></ul>`,57)])])}const c=i(n,[["render",e]]);export{g as __pageData,c as default};
@@ -1 +0,0 @@
1
- import{_ as i,o as t,c as a,ag as h}from"./chunks/framework.aJbMEiY9.js";const g=JSON.parse('{"title":"歌手相关 API","description":"","frontmatter":{},"headers":[],"relativePath":"api/singer.md","filePath":"api/singer.md","lastUpdated":1773499772000}'),n={name:"api/singer.md"};function e(l,s,p,d,k,r){return t(),a("div",null,[...s[0]||(s[0]=[h("",57)])])}const c=i(n,[["render",e]]);export{g as __pageData,c as default};
@@ -1 +0,0 @@
1
- import{_ as i,o as a,c as t,ag as h}from"./chunks/framework.aJbMEiY9.js";const c=JSON.parse('{"title":"用户接口","description":"","frontmatter":{},"headers":[],"relativePath":"api/user.md","filePath":"api/user.md","lastUpdated":1773499772000}'),n={name:"api/user.md"};function l(e,s,k,p,d,r){return a(),t("div",null,[...s[0]||(s[0]=[h("",62)])])}const g=i(n,[["render",l]]);export{c as __pageData,g as default};
@@ -1 +0,0 @@
1
- import{t as p}from"./chunks/theme.CzMhU0Ps.js";import{R as s,a2 as i,a3 as u,a4 as c,a5 as l,a6 as f,a7 as d,a8 as m,a9 as h,aa as g,ab as A,d as v,u as y,v as C,s as P,ac as b,ad as w,ae as R,af as E}from"./chunks/framework.aJbMEiY9.js";function r(e){if(e.extends){const a=r(e.extends);return{...a,...e,async enhanceApp(t){a.enhanceApp&&await a.enhanceApp(t),e.enhanceApp&&await e.enhanceApp(t)}}}return e}const n=r(p),S=v({name:"VitePressApp",setup(){const{site:e,lang:a,dir:t}=y();return C(()=>{P(()=>{document.documentElement.lang=a.value,document.documentElement.dir=t.value})}),e.value.router.prefetchLinks&&b(),w(),R(),n.setup&&n.setup(),()=>E(n.Layout)}});async function T(){globalThis.__VITEPRESS__=!0;const e=_(),a=D();a.provide(u,e);const t=c(e.route);return a.provide(l,t),a.component("Content",f),a.component("ClientOnly",d),Object.defineProperties(a.config.globalProperties,{$frontmatter:{get(){return t.frontmatter.value}},$params:{get(){return t.page.value.params}}}),n.enhanceApp&&await n.enhanceApp({app:a,router:e,siteData:m}),{app:a,router:e,data:t}}function D(){return A(S)}function _(){let e=s;return h(a=>{let t=g(a),o=null;return t&&(e&&(t=t.replace(/\.js$/,".lean.js")),o=import(t)),s&&(e=!1),o},n.NotFound)}s&&T().then(({app:e,router:a,data:t})=>{a.go().then(()=>{i(a.route,t.site),e.mount("#app")})});export{T as createApp};