Skip to content

Commit

Permalink
feat(接口): 添加获取音乐伴奏信息、 获取音乐 k 歌数量 接口,#29
Browse files Browse the repository at this point in the history
  • Loading branch information
MakcRe committed Aug 10, 2024
1 parent c164da2 commit e0a880a
Show file tree
Hide file tree
Showing 6 changed files with 261 additions and 152 deletions.
150 changes: 76 additions & 74 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -157,80 +157,82 @@ $ $Env:HOST=127.0.0.1; npm run dev
41. 获取歌手图片
42. 获取音乐相关信息
43. 获取更多音乐版本
44. 获取音乐详情
45. 获取音乐专辑/歌手信息
46. 私人 FM(对应手机和 pc 端的猜你喜欢)
47. banner
48. 乐库 banner
49. 乐库电台
50. 乐库
51. 电台 - 推荐
52. 电台
53. 电台 - 图片
54. 电台 - 音乐列表
55. 编辑精选
56. 编辑精选数据
57. 编辑精选歌单
58. 编辑精选专区
59. 编辑精选专区详情
60. 领取 VIP(需要登陆,该接口为测试接口)
61. 获取歌手列表
62. 获取歌手详情
63. 获取歌手专辑
64. 获取歌手单曲
65. 获取歌手 MV
66. 获取视频 url
67. 获取歌曲 MV
68. 获取视频相关信息
69. 获取视频详情
70. 新歌速递
71. 场景音乐列表
72. 场景音乐详情
73. 获取场景音乐讨论区
74. 获取场景音乐模块 Tag
75. 获取场景音乐歌单列表
76. 获取场景音乐视频列表
77. 获取场景音乐音乐列表
78. 每日推荐
79. 历史推荐
80. 风格推荐
81. 排行列表
82. 排行榜推荐列表
83. 排行榜往期列表
84. 排行榜信息
85. 排行榜歌曲列表
86. 歌曲评论
87. 歌曲评论-根据分类返回
88. 歌曲评论-根据热词返回
89. 楼层评论
90. 歌单评论
91. 专辑评论
92. 歌曲曲谱
93. 曲谱详情
94. 推荐曲谱
95. 曲谱合集
96. 曲谱合集详情
97. 提交听歌历史
98. 获取服务器时间
99. 刷刷
100. AI 推荐
101. 频道 - 获取用户所有频道
102. 频道 - 详情
103. 频道 - 频道安利
104. 频道 - 相似频道
105. 频道 - 订阅
106. 频道 - 音乐故事
107. 频道 - 音乐故事详情
108. 动态 - 最常访问
109. 获取用户公开的音乐
110. 听书 - 每日推荐
111. 听书 - 排行榜推荐
112. 听书 - VIP 推荐
113. 听书 - 每周推荐
114. 听书 - 专辑详情
115. 听书 - 专辑音乐列表
116. 歌曲详情 - 歌曲成绩单
117. 歌曲详情 - 歌曲成绩单详情
44. 获取音乐伴奏信息
45. 获取音乐 k 歌数量
46. 获取音乐详情
47. 获取音乐专辑/歌手信息
48. 私人 FM(对应手机和 pc 端的猜你喜欢)
49. banner
50. 乐库 banner
51. 乐库电台
52. 乐库
53. 电台 - 推荐
54. 电台
55. 电台 - 图片
56. 电台 - 音乐列表
57. 编辑精选
58. 编辑精选数据
59. 编辑精选歌单
60. 编辑精选专区
61. 编辑精选专区详情
62. 领取 VIP(需要登陆,该接口为测试接口)
63. 获取歌手列表
64. 获取歌手详情
65. 获取歌手专辑
66. 获取歌手单曲
67. 获取歌手 MV
68. 获取视频 url
69. 获取歌曲 MV
70. 获取视频相关信息
71. 获取视频详情
72. 新歌速递
73. 场景音乐列表
74. 场景音乐详情
75. 获取场景音乐讨论区
76. 获取场景音乐模块 Tag
77. 获取场景音乐歌单列表
78. 获取场景音乐视频列表
79. 获取场景音乐音乐列表
80. 每日推荐
81. 历史推荐
82. 风格推荐
83. 排行列表
84. 排行榜推荐列表
85. 排行榜往期列表
86. 排行榜信息
87. 排行榜歌曲列表
88. 歌曲评论
89. 歌曲评论-根据分类返回
90. 歌曲评论-根据热词返回
91. 楼层评论
92. 歌单评论
93. 专辑评论
94. 歌曲曲谱
95. 曲谱详情
96. 推荐曲谱
97. 曲谱合集
98. 曲谱合集详情
99. 提交听歌历史
100. 获取服务器时间
101. 刷刷
102. AI 推荐
103. 频道 - 获取用户所有频道
104. 频道 - 详情
105. 频道 - 频道安利
106. 频道 - 相似频道
107. 频道 - 订阅
108. 频道 - 音乐故事
109. 频道 - 音乐故事详情
110. 动态 - 最常访问
111. 获取用户公开的音乐
112. 听书 - 每日推荐
113. 听书 - 排行榜推荐
114. 听书 - VIP 推荐
115. 听书 - 每周推荐
116. 听书 - 专辑详情
117. 听书 - 专辑音乐列表
118. 歌曲详情 - 歌曲成绩单
119. 歌曲详情 - 歌曲成绩单详情

## License

Expand Down
186 changes: 110 additions & 76 deletions docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -70,82 +70,84 @@
41. [`获取歌手图片`](#获取歌手图片)
42. [`获取音乐相关信息`](#获取音乐相关信息)
43. [`获取更多音乐版本`](#获取更多音乐版本)
44. [`获取音乐详情`](#获取音乐详情)
45. [`获取音乐专辑/歌手信息`](#获取音乐专辑/歌手信息)
46. [`私人 FM(对应手机和 pc 端的猜你喜欢)`](#私人-fm对应手机和-pc-端的猜你喜欢)
47. [`banner`](#banner)
48. [`乐库 banner`](#乐库-banner)
49. [`乐库电台`](#乐库电台)
50. [`乐库`](#乐库)
51. [`电台 - 推荐`](#电台-推荐)
52. [`电台`](#电台)
53. [`电台 - 图片`](#电台-图片)
54. [`电台 - 音乐列表`](#电台-音乐列表)
55. [`编辑精选`](#编辑精选)
56. [`编辑精选数据`](#编辑精选数据)
57. [`编辑精选歌单`](#编辑精选歌单)
58. [`编辑精选专区`](#编辑精选专区)
59. [`编辑精选专区详情`](#编辑精选专区详情)
60. [`领取 VIP(需要登陆,该接口为测试接口)`](#领取-vip需要登陆该接口为测试接口)
61. [`获取歌手列表`](#获取歌手列表)
62. [`获取歌手详情`](#获取歌手详情)
63. [`获取歌手专辑`](#获取歌手专辑)
64. [`获取歌手单曲`](#获取歌手单曲)
65. [`获取歌手 MV`](#获取歌手-MV)
66. [`获取视频 url`](#获取视频-ur)
67. [`获取歌曲 MV`](#获取歌曲-MV)
68. [`获取视频相关信息`](#获取视频相关信息)
69. [`获取视频详情`](#获取视频详情)
70. [`新歌速递`](#新歌速递)
71. [`场景音乐列表`](#场景音乐列表)
72. [`场景音乐详情`](#场景音乐详情)
73. [`获取场景音乐讨论区`](#获取场景音乐讨论区)
74. [`获取场景音乐模块 Tag`](#获取场景音乐模块)
75. [`获取场景音乐歌单列表`](#获取场景音乐歌单列表)
76. [`获取场景音乐视频列表`](#获取场景音乐视频列表)
77. [`获取场景音乐音乐列表`](#获取场景音乐音乐列表)
78. [`每日推荐`](#每日推荐)
79. [`历史推荐`](#历史推荐)
80. [`风格推荐`](#风格推荐)
81. [`排行列表`](#排行列表)
82. [`排行榜推荐列表`](#排行榜推荐列表)
83. [`排行榜往期列表`](#排行榜往期列表)
84. [`排行榜信息`](#排行榜信息)
85. [`排行榜歌曲列表`](#排行榜歌曲列表)
86. [`歌曲收藏数`](#歌曲收藏数)
86. [`歌曲评论数`](#歌曲评论数)
86. [`歌曲评论`](#歌曲评论)
87. [`歌曲评论-根据分类返回`](#歌曲评论-根据分类返回)
88. [`歌曲评论-根据热词返回`](#歌曲评论-根据热词返回)
89. [`楼层评论`](#楼层评论)
90. [`歌单评论`](#歌单评论)
91. [`专辑评论`](#专辑评论)
92. [`歌曲曲谱`](#歌曲曲谱)
93. [`曲谱详情`](#曲谱详情)
94. [`推荐曲谱`](#推荐曲谱)
95. [`曲谱合集`](#曲谱合集)
96. [`曲谱合集详情`](#曲谱合集详情)
97. [`提交听歌历史`](#提交听歌历史)
98. [`获取服务器时间`](#获取服务器时间)
99. [`刷刷`](#刷刷)
100. [`AI 推荐`](#ai-推荐)
101. [`频道 - 获取用户所有频道`](#频道-获取用户所有频道)
102. [`频道 - 详情`](#频道---详情)
103. [`频道 - 频道安利`](#频道-频道安利)
104. [`频道 - 相似频道`](#频道-相似频道)
105. [`频道 - 订阅`](#频道-订阅)
106. [`频道 - 音乐故事`](#频道-音乐故事)
107. [`频道 - 音乐故事详情`](#频道-音乐故事详情)
108. [`动态 - 最常访问`](#动态-最常访问)
109. [`获取用户公开的音乐`](#获取用户公开的音乐)
110. [`听书 - 每日推荐`](#听书-每日推荐)
111. [`听书 - 排行榜推荐`](#听书-排行榜推荐)
112. [`听书 - VIP 推荐`](#听书-vip-推荐)
113. [`听书 - 每周推荐`](#听书-每周推荐)
114. [`听书 - 专辑详情`](#听书-专辑详情)
115. [`听书 - 专辑音乐列表`](#听书-专辑音乐列表)
116. [`歌曲详情 - 歌曲成绩单`](#歌曲详情-歌曲成绩单)
117. [`歌曲详情 - 歌曲成绩单详情`](#歌曲详情---歌曲成绩单详情)
44. [`获取音乐伴奏信息`](#获取音乐伴奏信息)
45. [`获取音乐k歌数量`](#获取音乐-k-歌数量)
46. [`获取音乐详情`](#获取音乐详情)
47. [`获取音乐专辑/歌手信息`](#获取音乐专辑/歌手信息)
48. [`私人 FM(对应手机和 pc 端的猜你喜欢)`](#私人-fm对应手机和-pc-端的猜你喜欢)
49. [`banner`](#banner)
50. [`乐库 banner`](#乐库-banner)
51. [`乐库电台`](#乐库电台)
52. [`乐库`](#乐库)
53. [`电台 - 推荐`](#电台-推荐)
54. [`电台`](#电台)
55. [`电台 - 图片`](#电台-图片)
56. [`电台 - 音乐列表`](#电台-音乐列表)
57. [`编辑精选`](#编辑精选)
58. [`编辑精选数据`](#编辑精选数据)
59. [`编辑精选歌单`](#编辑精选歌单)
60. [`编辑精选专区`](#编辑精选专区)
61. [`编辑精选专区详情`](#编辑精选专区详情)
62. [`领取 VIP(需要登陆,该接口为测试接口)`](#领取-vip需要登陆该接口为测试接口)
63. [`获取歌手列表`](#获取歌手列表)
64. [`获取歌手详情`](#获取歌手详情)
65. [`获取歌手专辑`](#获取歌手专辑)
66. [`获取歌手单曲`](#获取歌手单曲)
67. [`获取歌手 MV`](#获取歌手-MV)
68. [`获取视频 url`](#获取视频-ur)
69. [`获取歌曲 MV`](#获取歌曲-MV)
70. [`获取视频相关信息`](#获取视频相关信息)
71. [`获取视频详情`](#获取视频详情)
72. [`新歌速递`](#新歌速递)
73. [`场景音乐列表`](#场景音乐列表)
74. [`场景音乐详情`](#场景音乐详情)
75. [`获取场景音乐讨论区`](#获取场景音乐讨论区)
76. [`获取场景音乐模块 Tag`](#获取场景音乐模块)
77. [`获取场景音乐歌单列表`](#获取场景音乐歌单列表)
78. [`获取场景音乐视频列表`](#获取场景音乐视频列表)
79. [`获取场景音乐音乐列表`](#获取场景音乐音乐列表)
80. [`每日推荐`](#每日推荐)
81. [`历史推荐`](#历史推荐)
82. [`风格推荐`](#风格推荐)
83. [`排行列表`](#排行列表)
84. [`排行榜推荐列表`](#排行榜推荐列表)
85. [`排行榜往期列表`](#排行榜往期列表)
86. [`排行榜信息`](#排行榜信息)
87. [`排行榜歌曲列表`](#排行榜歌曲列表)
88. [`歌曲收藏数`](#歌曲收藏数)
89. [`歌曲评论数`](#歌曲评论数)
90. [`歌曲评论`](#歌曲评论)
91. [`歌曲评论-根据分类返回`](#歌曲评论-根据分类返回)
92. [`歌曲评论-根据热词返回`](#歌曲评论-根据热词返回)
93. [`楼层评论`](#楼层评论)
94. [`歌单评论`](#歌单评论)
95. [`专辑评论`](#专辑评论)
96. [`歌曲曲谱`](#歌曲曲谱)
97. [`曲谱详情`](#曲谱详情)
98. [`推荐曲谱`](#推荐曲谱)
99. [`曲谱合集`](#曲谱合集)
100. [`曲谱合集详情`](#曲谱合集详情)
101. [`提交听歌历史`](#提交听歌历史)
102. [`获取服务器时间`](#获取服务器时间)
103. [`刷刷`](#刷刷)
104. [`AI 推荐`](#ai-推荐)
105. [`频道 - 获取用户所有频道`](#频道-获取用户所有频道)
106. [`频道 - 详情`](#频道---详情)
107. [`频道 - 频道安利`](#频道-频道安利)
108. [`频道 - 相似频道`](#频道-相似频道)
109. [`频道 - 订阅`](#频道-订阅)
110. [`频道 - 音乐故事`](#频道-音乐故事)
111. [`频道 - 音乐故事详情`](#频道-音乐故事详情)
112. [`动态 - 最常访问`](#动态-最常访问)
113. [`获取用户公开的音乐`](#获取用户公开的音乐)
114. [`听书 - 每日推荐`](#听书-每日推荐)
115. [`听书 - 排行榜推荐`](#听书-排行榜推荐)
116. [`听书 - VIP 推荐`](#听书-vip-推荐)
117. [`听书 - 每周推荐`](#听书-每周推荐)
118. [`听书 - 专辑详情`](#听书-专辑详情)
119. [`听书 - 专辑音乐列表`](#听书-专辑音乐列表)
120. [`歌曲详情 - 歌曲成绩单`](#歌曲详情-歌曲成绩单)
121. [`歌曲详情 - 歌曲成绩单详情`](#歌曲详情---歌曲成绩单详情)

### 安装

Expand Down Expand Up @@ -1061,6 +1063,38 @@ vip 专属推荐

**调用例子:** `/audio/related?album_audio_id=573120919` `/audio/related?album_audio_id=573120919&show_detail=0`

### 获取音乐伴奏信息

说明:调用此接口,可以获取最佳伴奏信息

**必选参数:**

`hash`:音乐 hash

`fileName`: 音乐 fileName

`mixid`: 音乐的 mixsongid/album_audio_id

**接口地址:** `/audio/optimal/matching`

**调用例子:** `/audio/optimal/matching?fileName=希林娜依高 - Shine Brighter (愈加璀璨)&mixId=637735200&hash=6D431B0507587447B3D7345434DC5825`

### 获取音乐 K 歌数量

说明:调用此接口,可以获取音乐 K 歌数量,**参数信息均来自[获取音乐伴奏信息](#获取音乐伴奏信息)**

**必选参数:**

`songId`:音乐 songid, 该字段需要请求 [获取音乐伴奏信息](#获取音乐伴奏信息) 获取

`singerName`:歌手名称,多个以 `` 隔开,也可以到 [获取音乐伴奏信息](#获取音乐伴奏信息) 中获取

`songHash`:音乐 hash, 该字段需要请求 [获取音乐伴奏信息](#获取音乐伴奏信息) 获取

**接口地址:** `/audio/ktv/total`

**调用例子:** `/audio/ktv/total?songId=43522508&singerName=希林娜依高&songHash=99AE5A7B04FF76550E380C3757D3E273`

### 获取音乐详情

说明:调用此接口,可以获取音乐详情
Expand Down
34 changes: 34 additions & 0 deletions module/audio_accompany_matching.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
const { cryptoMd5, appid } = require('../util');

module.exports = (params, useAxios) => {

const dataMap = {
isteen: 0,
mixId: Number(params.mixId) || 0,
usemkv: 1,
platform: 2,
fileName: params.fileName || '',
hash: params.hash,
version: 12375,
appid,
}


const str = '*s&iN#G70*';
const paramsString = Object.keys(dataMap)
.sort()
.map((key) => `${key}=${typeof dataMap[key] === 'object' ? JSON.stringify(dataMap[key]) : dataMap[key]}`)
.join('&');
dataMap['sign'] = cryptoMd5(`${paramsString}${str}`).substring(8, 24);

return useAxios({
baseURL: 'https://nsongacsing.kugou.com',
url: '/sing7/accompanywan/json/v2/cdn/optimal_matching_accompany_2_listen.do',
params: dataMap,
method: 'get',
encryptType: 'android',
cookie: params?.cookie || {},
clearDefaultParams: true,
notSignature: true,
});
};
Loading

0 comments on commit e0a880a

Please sign in to comment.