提交 ea86e5bb 编写于 作者: B binaryify

新增已购单曲,获取mlog播放地址,将mlog id转为视频id,vip成长值,vip成长值获取记录,vip任务,领取vip成长值 等接口 #1248

上级 54943599
# 更新日志
### 4.0.15 | 2021.5.29
- 新增已购单曲,获取mlog播放地址,将mlog id转为视频id,vip成长值,vip成长值获取记录,vip任务,领取vip成长值 等接口 [#1248](https://github.com/Binaryify/NeteaseCloudMusicApi/pull/1248)
### 4.0.14 | 2021.5.28
- 增加云贝推歌接口,云贝推歌历史记录接口 [#1246](https://github.com/Binaryify/NeteaseCloudMusicApi/pull/1246)
......
......@@ -42,8 +42,9 @@ app.use((req, res, next) => {
;(req.headers.cookie || '').split(/\s*;\s*/).forEach((pair) => {
let crack = pair.indexOf('=')
if (crack < 1 || crack == pair.length - 1) return
req.cookies[decodeURIComponent(pair.slice(0, crack)).trim()] =
decodeURIComponent(pair.slice(crack + 1)).trim()
req.cookies[
decodeURIComponent(pair.slice(0, crack)).trim()
] = decodeURIComponent(pair.slice(crack + 1)).trim()
})
next()
})
......
......@@ -1429,7 +1429,6 @@ export function cloud_match(
} & RequestBaseConfig,
): Promise<Response>
export function yunbei_rcmd_song(
params: {
id: number | string
......@@ -1461,20 +1460,16 @@ export function mlog_to_video(
} & RequestBaseConfig,
): Promise<Response>
export function vip_growthpoint(
params: RequestBaseConfig,
): Promise<Response>
export function vip_growthpoint(params: RequestBaseConfig): Promise<Response>
export function vip_growthpoint_details(
params: MultiPageConfig & RequestBaseConfig,
): Promise<Response>
export function vip_tasks(
params: RequestBaseConfig,
): Promise<Response>
export function vip_tasks(params: RequestBaseConfig): Promise<Response>
export function vip_growthpoint_get(
params: {
params: {
id?: number | string
} & RequestBaseConfig,
): Promise<Response>
\ No newline at end of file
): Promise<Response>
// 将mlog id转为video id
module.exports = (query, request) => {
const data = {
mlogId: query.id,
}
return request(
'POST',
`https://music.163.com/weapi/mlog/video/convert/id`,
data,
{
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
},
)
const data = {
mlogId: query.id,
}
\ No newline at end of file
return request(
'POST',
`https://music.163.com/weapi/mlog/video/convert/id`,
data,
{
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
},
)
}
// mlog链接
module.exports = (query, request) => {
const data = {
id: query.id,
resolution: query.res || 1080,
type: 1,
}
return request(
'POST',
`https://music.163.com/weapi/mlog/detail/v1`,
data,
{
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
},
)
const data = {
id: query.id,
resolution: query.res || 1080,
type: 1,
}
\ No newline at end of file
return request('POST', `https://music.163.com/weapi/mlog/detail/v1`, data, {
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
})
}
......@@ -13,8 +13,7 @@ module.exports = (query, request) => {
},
).then((response) => {
try {
const pattern =
/<div class="cver u-cover u-cover-3">[\s\S]*?<img src="([^"]+)">[\s\S]*?<a class="sname f-fs1 s-fc0" href="([^"]+)"[^>]*>([^<]+?)<\/a>[\s\S]*?<a class="nm nm f-thide s-fc3" href="([^"]+)"[^>]*>([^<]+?)<\/a>/g
const pattern = /<div class="cver u-cover u-cover-3">[\s\S]*?<img src="([^"]+)">[\s\S]*?<a class="sname f-fs1 s-fc0" href="([^"]+)"[^>]*>([^<]+?)<\/a>[\s\S]*?<a class="nm nm f-thide s-fc3" href="([^"]+)"[^>]*>([^<]+?)<\/a>/g
let result,
playlists = []
while ((result = pattern.exec(response.body)) != null) {
......
// 已购单曲
module.exports = (query, request) => {
const data = {
limit: query.limit || 20,
offset: query.offset || 0,
}
return request(
'POST',
`https://music.163.com/weapi/single/mybought/song/list`,
data,
{
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
},
)
const data = {
limit: query.limit || 20,
offset: query.offset || 0,
}
\ No newline at end of file
return request(
'POST',
`https://music.163.com/weapi/single/mybought/song/list`,
data,
{
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
},
)
}
// 会员成长值
module.exports = (query, request) => {
const data = {}
return request(
'POST',
`https://music.163.com/weapi/vipnewcenter/app/level/growhpoint/basic`,
data,
{
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
},
)
}
\ No newline at end of file
const data = {}
return request(
'POST',
`https://music.163.com/weapi/vipnewcenter/app/level/growhpoint/basic`,
data,
{
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
},
)
}
// 会员成长值领取记录
module.exports = (query, request) => {
const data = {
limit: query.limit || 20,
offset: query.offset || 0,
}
return request(
'POST',
`https://music.163.com/weapi/vipnewcenter/app/level/growth/details`,
data,
{
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
},
)
const data = {
limit: query.limit || 20,
offset: query.offset || 0,
}
\ No newline at end of file
return request(
'POST',
`https://music.163.com/weapi/vipnewcenter/app/level/growth/details`,
data,
{
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
},
)
}
// 领取会员成长值
module.exports = (query, request) => {
const data = {
taskIds: query.id,
}
return request(
'POST',
`https://music.163.com/weapi/vipnewcenter/app/level/task/reward/get`,
data,
{
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
},
)
const data = {
taskIds: query.id,
}
\ No newline at end of file
return request(
'POST',
`https://music.163.com/weapi/vipnewcenter/app/level/task/reward/get`,
data,
{
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
},
)
}
// 会员任务
module.exports = (query, request) => {
const data = {}
return request(
'POST',
`https://music.163.com/weapi/vipnewcenter/app/level/task/list`,
data,
{
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
},
)
}
\ No newline at end of file
const data = {}
return request(
'POST',
`https://music.163.com/weapi/vipnewcenter/app/level/task/list`,
data,
{
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
},
)
}
// 云贝推歌
module.exports = (query, request) => {
const data = {
songId: query.id,
reason: query.reason || '好歌献给你',
scene: '',
fromUserId: -1,
}
return request(
'POST',
`https://music.163.com/weapi/yunbei/rcmd/song/submit`,
data,
{
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
},
)
const data = {
songId: query.id,
reason: query.reason || '好歌献给你',
scene: '',
fromUserId: -1,
}
\ No newline at end of file
return request(
'POST',
`https://music.163.com/weapi/yunbei/rcmd/song/submit`,
data,
{
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
},
)
}
// 云贝推歌历史记录
module.exports = (query, request) => {
const data = {
page: JSON.stringify({
size: query.size || 20,
cursor: query.cursor || '',
})
}
return request(
'POST',
`https://music.163.com/weapi/yunbei/rcmd/song/history/list`,
data,
{
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
},
)
const data = {
page: JSON.stringify({
size: query.size || 20,
cursor: query.cursor || '',
}),
}
\ No newline at end of file
return request(
'POST',
`https://music.163.com/weapi/yunbei/rcmd/song/history/list`,
data,
{
crypto: 'weapi',
cookie: query.cookie,
proxy: query.proxy,
realIP: query.realIP,
},
)
}
{
"name": "NeteaseCloudMusicApi",
"version": "4.0.14",
"version": "4.0.15",
"description": "网易云音乐 NodeJS 版 API",
"scripts": {
"start": "node app.js",
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册