新增歌手粉丝数量接口 #1485 , 新增音乐人任务(新)接口, 更新 appver

This commit is contained in:
binaryify 2022-03-05 17:59:37 +08:00
parent 064a128fd9
commit 31e95721a7
21 changed files with 85 additions and 19 deletions

View File

@ -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 ### 4.5.6 | 2022.02.12
- 歌单封面上传接口缺失参数时返回状态码修正 - 歌单封面上传接口缺失参数时返回状态码修正

View File

@ -43,6 +43,7 @@ $ npm install
``` ```
## 运行 ## 运行
调用前务必阅读文档的`调用前须知`
```shell ```shell
$ node app.js $ node app.js
@ -357,7 +358,8 @@ banner({ type:0 }).then(res=>{
235. 最近播放-播客 235. 最近播放-播客
236. 签到进度 236. 签到进度
237. 重复昵称检测 237. 重复昵称检测
238. 歌手粉丝数量
239. 音乐人任务(新)
## 更新日志 ## 更新日志
[changelog](https://github.com/Binaryify/NeteaseCloudMusicApi/blob/master/CHANGELOG.MD) [changelog](https://github.com/Binaryify/NeteaseCloudMusicApi/blob/master/CHANGELOG.MD)

View File

@ -253,6 +253,8 @@
235. 最近播放-播客 235. 最近播放-播客
236. 签到进度 236. 签到进度
237. 重复昵称检测 237. 重复昵称检测
238. 歌手粉丝数量
239. 音乐人任务(新)
## 安装 ## 安装
@ -3574,6 +3576,17 @@ type='1009' 获取其 id, 如`/search?keywords= 代码时间 &type=1009`
### 歌手粉丝 ### 歌手粉丝
说明 : 调用此接口 , 传入歌手 id, 可获取歌手粉丝 说明 : 调用此接口 , 传入歌手 id, 可获取歌手粉丝
**必选参数 :** `id` : 歌手 id
**接口地址 :** `/artist/fans`
**调用例子 :** `/artist/fans?id=2116&limit=10&offset=0`
### 歌手粉丝数量
说明 : 调用此接口 , 传入歌手 id, 可获取歌手粉丝数量
**必选参数 :** `id` : 歌手 id **必选参数 :** `id` : 歌手 id
@ -3581,9 +3594,9 @@ type='1009' 获取其 id, 如`/search?keywords= 代码时间 &type=1009`
`offset`: 偏移数量 , 用于分页 , 如 :( 评论页数 -1)\*10, 其中 10 为 limit 的值 `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`
**调用例子 :** `/musician/tasks` **调用例子 :** `/musician/tasks`
### 音乐人任务(新)
说明 : 音乐人登录后调用此接口 , 可获取音乐人任务。返回的数据中`status`字段为任务状态0 表示任务未开始10 表示任务正在进行中20 表示任务完成但未领取云豆100 表示任务完成,并且已经领取了相应的云豆
**接口地址 :** `/musician/tasks/new`
**调用例子 :** `/musician/tasks/new`
### 账号云豆数 ### 账号云豆数
说明 : 音乐人登录后调用此接口 , 可获取账号云豆数 说明 : 音乐人登录后调用此接口 , 可获取账号云豆数

2
interface.d.ts vendored
View File

@ -1607,3 +1607,5 @@ export function nickname_check(
nickname: string nickname: string
} & RequestBaseConfig, } & RequestBaseConfig,
): Promise<Response> ): Promise<Response>
export function musician_tasks_new(params: RequestBaseConfig): Promise<Response>

View File

@ -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,
},
)
}

View File

@ -1,6 +1,6 @@
module.exports = (query, request) => { module.exports = (query, request) => {
query.cookie.os = 'ios' query.cookie.os = 'ios'
query.cookie.appver = '8.1.20' query.cookie.appver = '8.7.01'
const data = { const data = {
limit: query.limit || 20, limit: query.limit || 20,
startTimestamp: query.before || Date.now(), startTimestamp: query.before || Date.now(),

View File

@ -1,6 +1,6 @@
module.exports = (query, request) => { module.exports = (query, request) => {
query.cookie.os = 'ios' query.cookie.os = 'ios'
query.cookie.appver = '8.1.20' query.cookie.appver = '8.7.01'
const data = { const data = {
limit: query.limit || 20, limit: query.limit || 20,
startTimestamp: query.before || Date.now(), startTimestamp: query.before || Date.now(),

View File

@ -3,7 +3,7 @@ const uploadPlugin = require('../plugins/songUpload')
const md5 = require('md5') const md5 = require('md5')
module.exports = async (query, request) => { module.exports = async (query, request) => {
query.cookie.os = 'pc' query.cookie.os = 'pc'
query.cookie.appver = '2.7.1.198277' query.cookie.appver = '2.9.7'
const bitrate = 999000 const bitrate = 999000
if (!query.songFile) { if (!query.songFile) {
return Promise.reject({ return Promise.reject({

View File

@ -1,6 +1,6 @@
module.exports = (query, request) => { module.exports = (query, request) => {
query.cookie.os = 'ios' query.cookie.os = 'ios'
query.cookie.appver = '8.1.20' query.cookie.appver = '8.7.01'
const data = { const data = {
userId: query.uid, userId: query.uid,
songId: query.sid, songId: query.sid,

View File

@ -1,7 +1,7 @@
const { resourceTypeMap } = require('../util/config.json') const { resourceTypeMap } = require('../util/config.json')
module.exports = (query, request) => { module.exports = (query, request) => {
query.cookie.os = 'ios' query.cookie.os = 'ios'
query.cookie.appver = '8.1.20' query.cookie.appver = '8.7.01'
query.type = resourceTypeMap[query.type || 0] query.type = resourceTypeMap[query.type || 0]
const threadId = query.type + query.sid const threadId = query.type + query.sid
const data = { const data = {

View File

@ -3,7 +3,7 @@
// query.refresh 是否刷新数据 // query.refresh 是否刷新数据
module.exports = (query, request) => { module.exports = (query, request) => {
query.cookie.os = 'ios' 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 } const data = { refresh: query.refresh || false, cursor: query.cursor }
return request( return request(
'POST', 'POST',

View File

@ -8,7 +8,7 @@ module.exports = (query, request) => {
query.cookie.MUSIC_A = config.anonymous_token query.cookie.MUSIC_A = config.anonymous_token
const data = {} const data = {}
query.cookie.os = 'ios' query.cookie.os = 'ios'
query.cookie.appver = '8.1.20' query.cookie.appver = '8.7.01'
return request( return request(
'POST', 'POST',
`https://music.163.com/eapi/homepage/dragon/ball/static`, `https://music.163.com/eapi/homepage/dragon/ball/static`,

View File

@ -1,7 +1,7 @@
const { resourceTypeMap } = require('../util/config.json') const { resourceTypeMap } = require('../util/config.json')
module.exports = (query, request) => { module.exports = (query, request) => {
query.cookie.os = 'ios' query.cookie.os = 'ios'
query.cookie.appver = '8.1.20' query.cookie.appver = '8.7.01'
query.type = resourceTypeMap[query.type || 0] query.type = resourceTypeMap[query.type || 0]
const threadId = query.type + query.sid const threadId = query.type + query.sid
const data = { const data = {

View File

@ -2,7 +2,7 @@
module.exports = (query, request) => { module.exports = (query, request) => {
query.cookie.os = 'pc' query.cookie.os = 'pc'
query.cookie.appver = '2.7.1.198277' query.cookie.appver = '2.9.7'
query.like = query.like == 'false' ? false : true query.like = query.like == 'false' ? false : true
const data = { const data = {
alg: 'itembased', alg: 'itembased',

View File

@ -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,
},
)
}

View File

@ -2,7 +2,7 @@
module.exports = (query, request) => { module.exports = (query, request) => {
query.cookie.os = 'ios' query.cookie.os = 'ios'
query.cookie.appver = '8.1.20' query.cookie.appver = '8.7.01'
const data = { const data = {
id: query.id, id: query.id,
msg: query.msg || '', msg: query.msg || '',

View File

@ -2,7 +2,7 @@
module.exports = (query, request) => { module.exports = (query, request) => {
query.cookie.os = 'ios' query.cookie.os = 'ios'
query.cookie.appver = '8.1.20' query.cookie.appver = '8.7.01'
const data = { const data = {
id: query.id, id: query.id,
msg: query.msg || '', msg: query.msg || '',

View File

@ -1,6 +1,6 @@
module.exports = (query, request) => { module.exports = (query, request) => {
query.cookie.os = 'ios' query.cookie.os = 'ios'
query.cookie.appver = '8.1.20' query.cookie.appver = '8.7.01'
const data = { const data = {
compose_reminder: 'true', compose_reminder: 'true',
compose_hot_comment: 'true', compose_hot_comment: 'true',

View File

@ -2,7 +2,7 @@
module.exports = (query, request) => { module.exports = (query, request) => {
query.cookie.os = 'ios' query.cookie.os = 'ios'
query.cookie.appver = '8.1.20' query.cookie.appver = '8.7.01'
const data = { const data = {
getcounts: true, getcounts: true,
time: query.lasttime || -1, time: query.lasttime || -1,

View File

@ -1,6 +1,6 @@
{ {
"name": "NeteaseCloudMusicApi", "name": "NeteaseCloudMusicApi",
"version": "4.5.7", "version": "4.5.8",
"description": "网易云音乐 NodeJS 版 API", "description": "网易云音乐 NodeJS 版 API",
"scripts": { "scripts": {
"start": "node app.js", "start": "node app.js",

View File

@ -85,7 +85,7 @@ const createRequest = (method, url, data, options) => {
const header = { const header = {
osver: cookie.osver, //系统版本 osver: cookie.osver, //系统版本
deviceId: cookie.deviceId, //encrypt.base64.encode(imei + '\t02:00:00:00:00:00\t5106025eb79a5247\t70ffbaac7') 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', //版本号 versioncode: cookie.versioncode || '140', //版本号
mobilename: cookie.mobilename, //设备model mobilename: cookie.mobilename, //设备model
buildver: cookie.buildver || Date.now().toString().substr(0, 10), buildver: cookie.buildver || Date.now().toString().substr(0, 10),