Skip to content

Commit 70db662

Browse files
committed
update: 听歌识曲接口完善, 补充demo页面
1 parent 37bad1c commit 70db662

File tree

11 files changed

+1941
-7
lines changed

11 files changed

+1941
-7
lines changed

.eslintrc.js

+1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
module.exports = {
22
root: true,
3+
ignorePatterns: ['public/'],
34
parserOptions: {
45
parser: 'babel-eslint',
56
ecmaVersion: 2018,

CHANGELOG.MD

+8
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,12 @@
11
# 更新日志
2+
3+
### 4.12.0 | 2023.09.10
4+
- 听歌识曲接口完善, 补充demo页面
5+
6+
- NMTID 动态添加 #1792
7+
8+
- weapi ua 固定
9+
210
### 4.11.3 | 2023.09.09
311
- 返回内容的`code`统一处理
412

docs/README.md

+14
Original file line numberDiff line numberDiff line change
@@ -274,6 +274,7 @@
274274
256. 播客声音上传
275275
257. 验证接口-二维码生成
276276
258. 验证接口-二维码检测
277+
259. 听歌识曲
277278

278279
## 安装
279280

@@ -4245,6 +4246,19 @@ qrCodeStatus:10,detailReason:0 二维码已扫描,并且手机号相同
42454246
42464247
qrCodeStatus:20,detailReason:0 验证成功qrCodeStatus:21,detailReason:0 二维码已失效
42474248
4249+
### 听歌识曲
4250+
说明: 使用此接口,上传音频文件或者麦克风采集声音可识别对应歌曲信息,具体调用例子参考 `/audio_match_demo/index.html` (项目文件: `public/audio_match_demo/index.html`)
4251+
4252+
**接口地址:** `/audio/match`
4253+
4254+
**必选参数:**
4255+
4256+
`duration`: 音频时长,单位秒
4257+
4258+
`audioFP`: 音频指纹,参考项目调用例子获取
4259+
4260+
4261+
42484262
## 离线访问此文档
42494263
42504264
此文档同时也是 Progressive Web Apps(PWA), 加入了 serviceWorker, 可离线访问

interface.d.ts

+7
Original file line numberDiff line numberDiff line change
@@ -244,6 +244,13 @@ export function artists(
244244
params: { id: string | number } & RequestBaseConfig,
245245
): Promise<Response>
246246

247+
export function audio_match(
248+
params: {
249+
duration: string | number
250+
audioFP: string | number
251+
} & RequestBaseConfig,
252+
): Promise<Response>
253+
247254
export function avatar_upload(
248255
params: ImageUploadConfig & RequestBaseConfig,
249256
): Promise<Response>

module/audio_match.js

+11-5
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,20 @@
1-
const realData =
2-
'eJx10mtIU2EcBvDtnCwNMfO2klUSmSQ5ZugKW/v/0TIjJVdhDStbXpqXrhY5Kwhtrcwiut9VSqMUMxX6IFqsD92sD1YgWGHRBcowKrpnPa/v+drg4flt572ds2PQ6XQut7MwJ940w2TOyS0pzF+/BV/MJrNO+3TVLOHUzKx5iw3/H5uZ7yxegct3tTl7Cr6QEa0gZ/dZOFsvfe5YHe1D+yFZxpncqEj/cCdwoirdVxHNnZrX3xygU5g7Eh6I9uOx8Ch4y9FQjlKkDz1pYrFXIJLUOovFGcYivqJgXqaXDqu7Rzc0XzmZxG81B/fF8wRVusn2jN5rDnwca8tFhyAJP4L4qiI9vX8cWzEmVKzT/46qxNpIdZOZz2HNcHhSkZ3D4AjYFpfGFkX6+dB+FvcSBe/SWbkLPVnEOJ1DFelXxVVci/Wj4TsBLhrQ/LGoaU4HxsTA28L76Cc8Dfau/U6F6FgkyBDDJar0g8tesmOvOHioWeXXmme6l3MLbIIre6wciU5E2t/k8WVxHfHvuUWXsH4SPCv1NW1Cz0aivgYO34vw1AEvi3MlIw0xHl6JNVPEGW41UJsqPaXYYTuEnotMdHwYfv7CFR/i+aXmrY5wrlSkEwr+0EJ0GvLmdw4/RS9Amj93UAbGZMIF40ezE3PtcG/yBWrT3L6oh66hFyMXK4xsUKT7aufzapxnFTwiNc3Wis5Bdm+OYCvmOuHj/ZeoQPOI00PUrUjXpG+kMFU61tFFDvQaZOn5DH4mzoLw4Hsaj14rzu/K4jF66fSWTnJinW3wBvcveqjZN3iFjKp0qKuF1mi21keST3NtTcbwu1eG3Dussr9eemljLIco0tVH7HwA493wOr+FlIjfy+GvkR4uwfjt4v/6G8K3NX8K38lt6B1ISa+Bv2O8Fy69foZOovci2S4Lr1aku4P9OEWVTt9wgMQ7exgJ8JXyI0W694WFyuBjcH75XyrEXsfhg+ZSvqZIf/Lct8Wp0md2tJN4PifEfjcm8gu02Ptbj459eum8eg8bFWlLXTb/A+uo9bM='
1+
function createRandomString(len) {
2+
const str = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
3+
let result = ''
4+
for (let i = len; i > 0; --i)
5+
result += str[Math.floor(Math.random() * str.length)]
6+
return result
7+
}
38
module.exports = (query, request) => {
49
query.cookie.os = 'pc'
510
const data = {
611
algorithmCode: 'shazam_v2',
712
times: 1,
8-
sessionId: 'C999431ACDC84EDBB984763654E6F8D7',
9-
duration: 3.3066249999999995,
13+
sessionId: createRandomString(16),
14+
duration: Number(query.duration),
1015
from: 'recognize-song',
11-
rawdata: realData,
16+
decrypt: '1',
17+
rawdata: query.audioFP,
1218
}
1319
return request('POST', `https://music.163.com/api/music/audio/match`, data, {
1420
crypto: 'weapi',

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "NeteaseCloudMusicApi",
3-
"version": "4.11.3",
3+
"version": "4.12.0",
44
"description": "网易云音乐 NodeJS 版 API",
55
"scripts": {
66
"start": "node app.js",

0 commit comments

Comments
 (0)