mirror of
https://gitlab.com/Binaryify/neteasecloudmusicapi.git
synced 2025-05-23 22:37:41 +08:00
新增歌手粉丝数量接口 #1485 , 新增音乐人任务(新)接口, 更新 appver
This commit is contained in:
parent
064a128fd9
commit
31e95721a7
@ -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
|
||||||
- 歌单封面上传接口缺失参数时返回状态码修正
|
- 歌单封面上传接口缺失参数时返回状态码修正
|
||||||
|
|
||||||
|
@ -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)
|
||||||
|
@ -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
2
interface.d.ts
vendored
@ -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>
|
||||||
|
18
module/artist_follow_count.js
Normal file
18
module/artist_follow_count.js
Normal 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,
|
||||||
|
},
|
||||||
|
)
|
||||||
|
}
|
@ -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(),
|
||||||
|
@ -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(),
|
||||||
|
@ -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({
|
||||||
|
@ -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,
|
||||||
|
@ -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 = {
|
||||||
|
@ -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',
|
||||||
|
@ -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`,
|
||||||
|
@ -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 = {
|
||||||
|
@ -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',
|
||||||
|
16
module/musician_tasks_new.js
Normal file
16
module/musician_tasks_new.js
Normal 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,
|
||||||
|
},
|
||||||
|
)
|
||||||
|
}
|
@ -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 || '',
|
||||||
|
@ -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 || '',
|
||||||
|
@ -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',
|
||||||
|
@ -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,
|
||||||
|
@ -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",
|
||||||
|
@ -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),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user