diff --git a/CHANGELOG.MD b/CHANGELOG.MD index 98f2b4bd0f7..4db799d2313 100644 --- a/CHANGELOG.MD +++ b/CHANGELOG.MD @@ -1,4 +1,11 @@ # 更新日志 +### 4.5.7 | 2022.03.05 +- 新增歌手粉丝数量接口[#1485](https://github.com/Binaryify/NeteaseCloudMusicApi/issues/1485) + +- 新增音乐人任务(新)接口 + +- 更新 `appver` + ### 4.5.6 | 2022.02.12 - 歌单封面上传接口缺失参数时返回状态码修正 diff --git a/README.MD b/README.MD index 51bf5faed18..7b0d9d191c6 100644 --- a/README.MD +++ b/README.MD @@ -43,6 +43,7 @@ $ npm install ``` ## 运行 +调用前务必阅读文档的`调用前须知` ```shell $ node app.js @@ -357,7 +358,8 @@ banner({ type:0 }).then(res=>{ 235. 最近播放-播客 236. 签到进度 237. 重复昵称检测 - +238. 歌手粉丝数量 +239. 音乐人任务(新) ## 更新日志 [changelog](https://github.com/Binaryify/NeteaseCloudMusicApi/blob/master/CHANGELOG.MD) diff --git a/docs/README.md b/docs/README.md index 841ca9edfdb..e64fbd7cb89 100644 --- a/docs/README.md +++ b/docs/README.md @@ -253,6 +253,8 @@ 235. 最近播放-播客 236. 签到进度 237. 重复昵称检测 +238. 歌手粉丝数量 +239. 音乐人任务(新) ## 安装 @@ -3574,6 +3576,17 @@ type='1009' 获取其 id, 如`/search?keywords= 代码时间 &type=1009` ### 歌手粉丝 说明 : 调用此接口 , 传入歌手 id, 可获取歌手粉丝 +**必选参数 :** `id` : 歌手 id + + +**接口地址 :** `/artist/fans` + +**调用例子 :** `/artist/fans?id=2116&limit=10&offset=0` + +### 歌手粉丝数量 + +说明 : 调用此接口 , 传入歌手 id, 可获取歌手粉丝数量 + **必选参数 :** `id` : 歌手 id @@ -3581,9 +3594,9 @@ type='1009' 获取其 id, 如`/search?keywords= 代码时间 &type=1009` `offset`: 偏移数量 , 用于分页 , 如 :( 评论页数 -1)\*10, 其中 10 为 limit 的值 -**接口地址 :** `/artist/fans` +**接口地址 :** `/artist/follow/count` -**调用例子 :** `/artist/fans?id=2116&limit=10&offset=0` +**调用例子 :** `/artist/follow/count?id=2116` ### 数字专辑详情 @@ -3627,12 +3640,20 @@ type='1009' 获取其 id, 如`/search?keywords= 代码时间 &type=1009` ### 音乐人任务 -说明 : 音乐人登录后调用此接口 , 可获取音乐人任务。返回的数据中`status`字段为任务状态,0 表示任务未开始,10 表示任务正在进行中,20 表示任务完成,但未领取云豆,100 表示任务完成,并且已经领取了相应的云豆 +说明 : 音乐人登录后调用此接口 , 可获取音乐人任务。返回的数据中`status`字段为任务状态,0 表示任务未开始,10 表示任务正在进行中,20 表示任务完成,但未领取云豆,100 表示任务完成,并且已经领取了相应的云豆(貌似只能获取到做过的任务了) **接口地址 :** `/musician/tasks` **调用例子 :** `/musician/tasks` +### 音乐人任务(新) + +说明 : 音乐人登录后调用此接口 , 可获取音乐人任务。返回的数据中`status`字段为任务状态,0 表示任务未开始,10 表示任务正在进行中,20 表示任务完成,但未领取云豆,100 表示任务完成,并且已经领取了相应的云豆 + +**接口地址 :** `/musician/tasks/new` + +**调用例子 :** `/musician/tasks/new` + ### 账号云豆数 说明 : 音乐人登录后调用此接口 , 可获取账号云豆数 diff --git a/interface.d.ts b/interface.d.ts index 257b92656ca..ce8b294831a 100644 --- a/interface.d.ts +++ b/interface.d.ts @@ -1607,3 +1607,5 @@ export function nickname_check( nickname: string } & RequestBaseConfig, ): Promise + +export function musician_tasks_new(params: RequestBaseConfig): Promise diff --git a/module/artist_follow_count.js b/module/artist_follow_count.js new file mode 100644 index 00000000000..93afda21ba3 --- /dev/null +++ b/module/artist_follow_count.js @@ -0,0 +1,18 @@ +// 歌手粉丝数量 + +module.exports = (query, request) => { + const data = { + id: query.id, + } + return request( + 'POST', + `https://music.163.com/weapi/artist/follow/count/get`, + data, + { + crypto: 'weapi', + cookie: query.cookie, + proxy: query.proxy, + realIP: query.realIP, + }, + ) +} diff --git a/module/artist_new_mv.js b/module/artist_new_mv.js index 6c65343ef08..d385e358f05 100644 --- a/module/artist_new_mv.js +++ b/module/artist_new_mv.js @@ -1,6 +1,6 @@ module.exports = (query, request) => { query.cookie.os = 'ios' - query.cookie.appver = '8.1.20' + query.cookie.appver = '8.7.01' const data = { limit: query.limit || 20, startTimestamp: query.before || Date.now(), diff --git a/module/artist_new_song.js b/module/artist_new_song.js index a367f8c46ce..41fbde50de4 100644 --- a/module/artist_new_song.js +++ b/module/artist_new_song.js @@ -1,6 +1,6 @@ module.exports = (query, request) => { query.cookie.os = 'ios' - query.cookie.appver = '8.1.20' + query.cookie.appver = '8.7.01' const data = { limit: query.limit || 20, startTimestamp: query.before || Date.now(), diff --git a/module/cloud.js b/module/cloud.js index b7cdac33158..49e91c613a6 100644 --- a/module/cloud.js +++ b/module/cloud.js @@ -3,7 +3,7 @@ const uploadPlugin = require('../plugins/songUpload') const md5 = require('md5') module.exports = async (query, request) => { query.cookie.os = 'pc' - query.cookie.appver = '2.7.1.198277' + query.cookie.appver = '2.9.7' const bitrate = 999000 if (!query.songFile) { return Promise.reject({ diff --git a/module/cloud_match.js b/module/cloud_match.js index d28d88b8542..98fc8aa8302 100644 --- a/module/cloud_match.js +++ b/module/cloud_match.js @@ -1,6 +1,6 @@ module.exports = (query, request) => { query.cookie.os = 'ios' - query.cookie.appver = '8.1.20' + query.cookie.appver = '8.7.01' const data = { userId: query.uid, songId: query.sid, diff --git a/module/comment_hug_list.js b/module/comment_hug_list.js index 394a2df4f00..eaf535fe284 100644 --- a/module/comment_hug_list.js +++ b/module/comment_hug_list.js @@ -1,7 +1,7 @@ const { resourceTypeMap } = require('../util/config.json') module.exports = (query, request) => { query.cookie.os = 'ios' - query.cookie.appver = '8.1.20' + query.cookie.appver = '8.7.01' query.type = resourceTypeMap[query.type || 0] const threadId = query.type + query.sid const data = { diff --git a/module/homepage_block_page.js b/module/homepage_block_page.js index af4b0741f85..f214a6d91c2 100644 --- a/module/homepage_block_page.js +++ b/module/homepage_block_page.js @@ -3,7 +3,7 @@ // query.refresh 是否刷新数据 module.exports = (query, request) => { query.cookie.os = 'ios' - query.cookie.appver = '8.1.20' + query.cookie.appver = '8.7.01' const data = { refresh: query.refresh || false, cursor: query.cursor } return request( 'POST', diff --git a/module/homepage_dragon_ball.js b/module/homepage_dragon_ball.js index 00231dd516a..e2421bf9b92 100644 --- a/module/homepage_dragon_ball.js +++ b/module/homepage_dragon_ball.js @@ -8,7 +8,7 @@ module.exports = (query, request) => { query.cookie.MUSIC_A = config.anonymous_token const data = {} query.cookie.os = 'ios' - query.cookie.appver = '8.1.20' + query.cookie.appver = '8.7.01' return request( 'POST', `https://music.163.com/eapi/homepage/dragon/ball/static`, diff --git a/module/hug_comment.js b/module/hug_comment.js index ce4452883df..fc88f138a62 100644 --- a/module/hug_comment.js +++ b/module/hug_comment.js @@ -1,7 +1,7 @@ const { resourceTypeMap } = require('../util/config.json') module.exports = (query, request) => { query.cookie.os = 'ios' - query.cookie.appver = '8.1.20' + query.cookie.appver = '8.7.01' query.type = resourceTypeMap[query.type || 0] const threadId = query.type + query.sid const data = { diff --git a/module/like.js b/module/like.js index bd9059183fc..e13e78505af 100644 --- a/module/like.js +++ b/module/like.js @@ -2,7 +2,7 @@ module.exports = (query, request) => { query.cookie.os = 'pc' - query.cookie.appver = '2.7.1.198277' + query.cookie.appver = '2.9.7' query.like = query.like == 'false' ? false : true const data = { alg: 'itembased', diff --git a/module/musician_tasks_new.js b/module/musician_tasks_new.js new file mode 100644 index 00000000000..fd4953ea949 --- /dev/null +++ b/module/musician_tasks_new.js @@ -0,0 +1,16 @@ +// 获取音乐人任务 + +module.exports = (query, request) => { + const data = {} + return request( + 'POST', + `https://music.163.com/api/nmusician/workbench/mission/stage/list `, + data, + { + crypto: 'weapi', + cookie: query.cookie, + proxy: query.proxy, + realIP: query.realIP, + }, + ) +} diff --git a/module/send_album.js b/module/send_album.js index 8af56733c35..d6693a5c1f1 100644 --- a/module/send_album.js +++ b/module/send_album.js @@ -2,7 +2,7 @@ module.exports = (query, request) => { query.cookie.os = 'ios' - query.cookie.appver = '8.1.20' + query.cookie.appver = '8.7.01' const data = { id: query.id, msg: query.msg || '', diff --git a/module/send_song.js b/module/send_song.js index 932cde14d3b..b2ce0a27ac7 100644 --- a/module/send_song.js +++ b/module/send_song.js @@ -2,7 +2,7 @@ module.exports = (query, request) => { query.cookie.os = 'ios' - query.cookie.appver = '8.1.20' + query.cookie.appver = '8.7.01' const data = { id: query.id, msg: query.msg || '', diff --git a/module/user_comment_history.js b/module/user_comment_history.js index bb982214b84..339be309e0c 100644 --- a/module/user_comment_history.js +++ b/module/user_comment_history.js @@ -1,6 +1,6 @@ module.exports = (query, request) => { query.cookie.os = 'ios' - query.cookie.appver = '8.1.20' + query.cookie.appver = '8.7.01' const data = { compose_reminder: 'true', compose_hot_comment: 'true', diff --git a/module/user_event.js b/module/user_event.js index 0c642aedb00..521b0dd0d71 100644 --- a/module/user_event.js +++ b/module/user_event.js @@ -2,7 +2,7 @@ module.exports = (query, request) => { query.cookie.os = 'ios' - query.cookie.appver = '8.1.20' + query.cookie.appver = '8.7.01' const data = { getcounts: true, time: query.lasttime || -1, diff --git a/package.json b/package.json index 4ca28dc7086..15d0793f916 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "NeteaseCloudMusicApi", - "version": "4.5.7", + "version": "4.5.8", "description": "网易云音乐 NodeJS 版 API", "scripts": { "start": "node app.js", diff --git a/util/request.js b/util/request.js index bcb245a58a7..d449d27d3ff 100644 --- a/util/request.js +++ b/util/request.js @@ -85,7 +85,7 @@ const createRequest = (method, url, data, options) => { const header = { osver: cookie.osver, //系统版本 deviceId: cookie.deviceId, //encrypt.base64.encode(imei + '\t02:00:00:00:00:00\t5106025eb79a5247\t70ffbaac7') - appver: cookie.appver || '8.0.0', // app版本 + appver: cookie.appver || '8.7.01', // app版本 versioncode: cookie.versioncode || '140', //版本号 mobilename: cookie.mobilename, //设备model buildver: cookie.buildver || Date.now().toString().substr(0, 10),