diff --git a/netease_api/module/artist_video.js b/netease_api/module/artist_video.js new file mode 100644 index 0000000..735fe07 --- /dev/null +++ b/netease_api/module/artist_video.js @@ -0,0 +1,24 @@ +// 歌手相关视频 + +module.exports = (query, request) => { + const data = { + artistId: query.id, + page: JSON.stringify({ + size: query.size || 10, + cursor: query.cursor || 0, + }), + tab: 0, + order: query.order || 0, + } + return request( + 'POST', + `https://music.163.com/weapi/mlog/artist/video`, + data, + { + crypto: 'weapi', + cookie: query.cookie, + proxy: query.proxy, + realIP: query.realIP, + }, + ) +} diff --git a/netease_api/module/comment.js b/netease_api/module/comment.js deleted file mode 100644 index 9395bf3..0000000 --- a/netease_api/module/comment.js +++ /dev/null @@ -1,36 +0,0 @@ -const { resourceTypeMap } = require('../util/config.json') -// 发送与删除评论 - -module.exports = (query, request) => { - query.cookie.os = 'pc' - query.t = { - 1: 'add', - 0: 'delete', - 2: 'reply', - }[query.t] - query.type = resourceTypeMap[query.type] - const data = { - threadId: query.type + query.id, - } - - if (query.type == 'A_EV_2_') { - data.threadId = query.threadId - } - if (query.t == 'add') data.content = query.content - else if (query.t == 'delete') data.commentId = query.commentId - else if (query.t == 'reply') { - data.commentId = query.commentId - data.content = query.content - } - return request( - 'POST', - `https://music.163.com/weapi/resource/comments/${query.t}`, - data, - { - crypto: 'weapi', - cookie: query.cookie, - proxy: query.proxy, - realIP: query.realIP, - }, - ) -} diff --git a/netease_api/module/comment_album.js b/netease_api/module/comment_album.js deleted file mode 100644 index d701d2d..0000000 --- a/netease_api/module/comment_album.js +++ /dev/null @@ -1,22 +0,0 @@ -// 专辑评论 - -module.exports = (query, request) => { - query.cookie.os = 'pc' - const data = { - rid: query.id, - limit: query.limit || 20, - offset: query.offset || 0, - beforeTime: query.before || 0, - } - return request( - 'POST', - `https://music.163.com/weapi/v1/resource/comments/R_AL_3_${query.id}`, - data, - { - crypto: 'weapi', - cookie: query.cookie, - proxy: query.proxy, - realIP: query.realIP, - }, - ) -} diff --git a/netease_api/module/comment_dj.js b/netease_api/module/comment_dj.js deleted file mode 100644 index 70b7dbf..0000000 --- a/netease_api/module/comment_dj.js +++ /dev/null @@ -1,22 +0,0 @@ -// 电台评论 - -module.exports = (query, request) => { - query.cookie.os = 'pc' - const data = { - rid: query.id, - limit: query.limit || 20, - offset: query.offset || 0, - beforeTime: query.before || 0, - } - return request( - 'POST', - `https://music.163.com/weapi/v1/resource/comments/A_DJ_1_${query.id}`, - data, - { - crypto: 'weapi', - cookie: query.cookie, - proxy: query.proxy, - realIP: query.realIP, - }, - ) -} diff --git a/netease_api/module/comment_floor.js b/netease_api/module/comment_floor.js deleted file mode 100644 index de28470..0000000 --- a/netease_api/module/comment_floor.js +++ /dev/null @@ -1,21 +0,0 @@ -const { resourceTypeMap } = require('../util/config.json') -module.exports = (query, request) => { - query.type = resourceTypeMap[query.type] - const data = { - parentCommentId: query.parentCommentId, - threadId: query.type + query.id, - time: query.time || -1, - limit: query.limit || 20, - } - return request( - 'POST', - `https://music.163.com/api/resource/comment/floor/get`, - data, - { - crypto: 'weapi', - cookie: query.cookie, - proxy: query.proxy, - realIP: query.realIP, - }, - ) -} diff --git a/netease_api/module/comment_hot.js b/netease_api/module/comment_hot.js deleted file mode 100644 index 4858678..0000000 --- a/netease_api/module/comment_hot.js +++ /dev/null @@ -1,24 +0,0 @@ -const { resourceTypeMap } = require('../util/config.json') -// 热门评论 - -module.exports = (query, request) => { - query.cookie.os = 'pc' - query.type = resourceTypeMap[query.type] - const data = { - rid: query.id, - limit: query.limit || 20, - offset: query.offset || 0, - beforeTime: query.before || 0, - } - return request( - 'POST', - `https://music.163.com/weapi/v1/resource/hotcomments/${query.type}${query.id}`, - data, - { - crypto: 'weapi', - cookie: query.cookie, - proxy: query.proxy, - realIP: query.realIP, - }, - ) -} diff --git a/netease_api/module/comment_hug_list.js b/netease_api/module/comment_hug_list.js deleted file mode 100644 index 394a2df..0000000 --- a/netease_api/module/comment_hug_list.js +++ /dev/null @@ -1,27 +0,0 @@ -const { resourceTypeMap } = require('../util/config.json') -module.exports = (query, request) => { - query.cookie.os = 'ios' - query.cookie.appver = '8.1.20' - query.type = resourceTypeMap[query.type || 0] - const threadId = query.type + query.sid - const data = { - targetUserId: query.uid, - commentId: query.cid, - cursor: query.cursor || '-1', - threadId: threadId, - pageNo: query.page || 1, - idCursor: query.idCursor || -1, - pageSize: query.pageSize || 100, - } - return request( - 'POST', - `https://music.163.com/api/v2/resource/comments/hug/list`, - data, - { - crypto: 'api', - cookie: query.cookie, - proxy: query.proxy, - realIP: query.realIP, - }, - ) -} diff --git a/netease_api/module/comment_like.js b/netease_api/module/comment_like.js deleted file mode 100644 index fa382a8..0000000 --- a/netease_api/module/comment_like.js +++ /dev/null @@ -1,26 +0,0 @@ -const { resourceTypeMap } = require('../util/config.json') -// 点赞与取消点赞评论 - -module.exports = (query, request) => { - query.cookie.os = 'pc' - query.t = query.t == 1 ? 'like' : 'unlike' - query.type = resourceTypeMap[query.type] - const data = { - threadId: query.type + query.id, - commentId: query.cid, - } - if (query.type == 'A_EV_2_') { - data.threadId = query.threadId - } - return request( - 'POST', - `https://music.163.com/weapi/v1/comment/${query.t}`, - data, - { - crypto: 'weapi', - cookie: query.cookie, - proxy: query.proxy, - realIP: query.realIP, - }, - ) -} diff --git a/netease_api/module/comment_music.js b/netease_api/module/comment_music.js deleted file mode 100644 index 9fbc8f1..0000000 --- a/netease_api/module/comment_music.js +++ /dev/null @@ -1,22 +0,0 @@ -// 歌曲评论 - -module.exports = (query, request) => { - query.cookie.os = 'pc' - const data = { - rid: query.id, - limit: query.limit || 20, - offset: query.offset || 0, - beforeTime: query.before || 0, - } - return request( - 'POST', - `https://music.163.com/api/v1/resource/comments/R_SO_4_${query.id}`, - data, - { - crypto: 'weapi', - cookie: query.cookie, - proxy: query.proxy, - realIP: query.realIP, - }, - ) -} diff --git a/netease_api/module/comment_mv.js b/netease_api/module/comment_mv.js deleted file mode 100644 index 979c035..0000000 --- a/netease_api/module/comment_mv.js +++ /dev/null @@ -1,22 +0,0 @@ -// MV评论 - -module.exports = (query, request) => { - query.cookie.os = 'pc' - const data = { - rid: query.id, - limit: query.limit || 20, - offset: query.offset || 0, - beforeTime: query.before || 0, - } - return request( - 'POST', - `https://music.163.com/weapi/v1/resource/comments/R_MV_5_${query.id}`, - data, - { - crypto: 'weapi', - cookie: query.cookie, - proxy: query.proxy, - realIP: query.realIP, - }, - ) -} diff --git a/netease_api/module/comment_new.js b/netease_api/module/comment_new.js deleted file mode 100644 index ad3cb0b..0000000 --- a/netease_api/module/comment_new.js +++ /dev/null @@ -1,31 +0,0 @@ -const { resourceTypeMap } = require('../util/config.json') -// 评论 - -module.exports = (query, request) => { - query.cookie.os = 'pc' - query.type = resourceTypeMap[query.type] - const threadId = query.type + query.id - const pageSize = query.pageSize || 20 - const pageNo = query.pageNo || 1 - const data = { - threadId: threadId, - pageNo, - showInner: query.showInner || true, - pageSize, - cursor: - +query.sortType === 3 ? query.cursor || '0' : (pageNo - 1) * pageSize, - sortType: query.sortType || 1, //1:按推荐排序,2:按热度排序,3:按时间排序 - } - return request( - 'POST', - `https://music.163.com/api/v2/resource/comments`, - data, - { - crypto: 'eapi', - cookie: query.cookie, - proxy: query.proxy, - realIP: query.realIP, - url: '/api/v2/resource/comments', - }, - ) -} diff --git a/netease_api/module/comment_playlist.js b/netease_api/module/comment_playlist.js deleted file mode 100644 index 52fc544..0000000 --- a/netease_api/module/comment_playlist.js +++ /dev/null @@ -1,22 +0,0 @@ -// 歌单评论 - -module.exports = (query, request) => { - query.cookie.os = 'pc' - const data = { - rid: query.id, - limit: query.limit || 20, - offset: query.offset || 0, - beforeTime: query.before || 0, - } - return request( - 'POST', - `https://music.163.com/weapi/v1/resource/comments/A_PL_0_${query.id}`, - data, - { - crypto: 'weapi', - cookie: query.cookie, - proxy: query.proxy, - realIP: query.realIP, - }, - ) -} diff --git a/netease_api/module/comment_video.js b/netease_api/module/comment_video.js deleted file mode 100644 index ae015a9..0000000 --- a/netease_api/module/comment_video.js +++ /dev/null @@ -1,22 +0,0 @@ -// 视频评论 - -module.exports = (query, request) => { - query.cookie.os = 'pc' - const data = { - rid: query.id, - limit: query.limit || 20, - offset: query.offset || 0, - beforeTime: query.before || 0, - } - return request( - 'POST', - `https://music.163.com/weapi/v1/resource/comments/R_VI_62_${query.id}`, - data, - { - crypto: 'weapi', - cookie: query.cookie, - proxy: query.proxy, - realIP: query.realIP, - }, - ) -} diff --git a/netease_api/module/playlist_create.js b/netease_api/module/playlist_create.js index 8a1ae26..f33f5f0 100644 --- a/netease_api/module/playlist_create.js +++ b/netease_api/module/playlist_create.js @@ -5,7 +5,7 @@ module.exports = (query, request) => { const data = { name: query.name, privacy: query.privacy, //0 为普通歌单,10 为隐私歌单 - type: query.type || 'NORMAL', // NORMAL|VIDEO + type: query.type || 'NORMAL', // NORMAL|VIDEO|SHARED } return request('POST', `https://music.163.com/api/playlist/create`, data, { crypto: 'weapi', diff --git a/netease_api/module/playlist_track_all.js b/netease_api/module/playlist_track_all.js new file mode 100644 index 0000000..03a8c3a --- /dev/null +++ b/netease_api/module/playlist_track_all.js @@ -0,0 +1,47 @@ +// 通过传过来的歌单id拿到所有歌曲数据 +// 支持传递参数limit来限制获取歌曲的数据数量 例如: /playlist/track/all?id=7044354223&limit=10 + +module.exports = (query, request) => { + const data = { + id: query.id, + n: 100000, + s: query.s || 8, + } + //不放在data里面避免请求带上无用的数据 + let limit = query.limit + let trackIds + let idsData = Object.create(null) + + return request('POST', `https://music.163.com/api/v6/playlist/detail`, data, { + crypto: 'api', + cookie: query.cookie, + proxy: query.proxy, + realIP: query.realIP, + }).then((res) => { + const ids = [] + let trackIds = res.body.playlist.trackIds + if (typeof limit === 'undefined') { + limit = trackIds.length + } + trackIds.forEach((item, index) => { + if (index < limit) { + ids.push(item.id) + } + }) + idsData = { + c: '[' + ids.map((id) => '{"id":' + id + '}').join(',') + ']', + } + + return request( + 'POST', + `https://music.163.com/api/v3/song/detail`, + idsData, + { + crypto: 'weapi', + cookie: query.cookie, + proxy: query.proxy, + realIP: query.realIP, + }, + ) + }) +} diff --git a/netease_api/module/comment_event.js b/netease_api/module/record_recent_album.js similarity index 53% rename from netease_api/module/comment_event.js rename to netease_api/module/record_recent_album.js index 460a560..804bc19 100644 --- a/netease_api/module/comment_event.js +++ b/netease_api/module/record_recent_album.js @@ -1,14 +1,10 @@ -// 获取动态评论 - module.exports = (query, request) => { const data = { - limit: query.limit || 20, - offset: query.offset || 0, - beforeTime: query.before || 0, + limit: query.limit || 100, } return request( 'POST', - `https://music.163.com/weapi/v1/resource/comments/${query.threadId}`, + `https://music.163.com/api/play-record/album/list`, data, { crypto: 'weapi', diff --git a/netease_api/module/share_resource.js b/netease_api/module/record_recent_dj.js similarity index 52% rename from netease_api/module/share_resource.js rename to netease_api/module/record_recent_dj.js index 64c016a..6bd6062 100644 --- a/netease_api/module/share_resource.js +++ b/netease_api/module/record_recent_dj.js @@ -1,14 +1,10 @@ -// 分享歌曲到动态 - module.exports = (query, request) => { const data = { - type: query.type || 'song', // song,playlist,mv,djprogram,djradio - msg: query.msg || '', - id: query.id || '', + limit: query.limit || 100, } return request( 'POST', - `https://music.163.com/weapi/share/friends/resource`, + `https://music.163.com/api/play-record/djradio/list`, data, { crypto: 'weapi', diff --git a/netease_api/module/record_recent_playlist.js b/netease_api/module/record_recent_playlist.js new file mode 100644 index 0000000..d9a7d3d --- /dev/null +++ b/netease_api/module/record_recent_playlist.js @@ -0,0 +1,16 @@ +module.exports = (query, request) => { + const data = { + limit: query.limit || 100, + } + return request( + 'POST', + `https://music.163.com/api/play-record/playlist/list`, + data, + { + crypto: 'weapi', + cookie: query.cookie, + proxy: query.proxy, + realIP: query.realIP, + }, + ) +} diff --git a/netease_api/module/record_recent_song.js b/netease_api/module/record_recent_song.js new file mode 100644 index 0000000..275caaa --- /dev/null +++ b/netease_api/module/record_recent_song.js @@ -0,0 +1,16 @@ +module.exports = (query, request) => { + const data = { + limit: query.limit || 100, + } + return request( + 'POST', + `https://music.163.com/api/play-record/song/list`, + data, + { + crypto: 'weapi', + cookie: query.cookie, + proxy: query.proxy, + realIP: query.realIP, + }, + ) +} diff --git a/netease_api/module/record_recent_video.js b/netease_api/module/record_recent_video.js new file mode 100644 index 0000000..5a22b96 --- /dev/null +++ b/netease_api/module/record_recent_video.js @@ -0,0 +1,16 @@ +module.exports = (query, request) => { + const data = { + limit: query.limit || 100, + } + return request( + 'POST', + `https://music.163.com/api/play-record/newvideo/list`, + data, + { + crypto: 'weapi', + cookie: query.cookie, + proxy: query.proxy, + realIP: query.realIP, + }, + ) +} diff --git a/netease_api/module/record_recent_voice.js b/netease_api/module/record_recent_voice.js new file mode 100644 index 0000000..43f5b1c --- /dev/null +++ b/netease_api/module/record_recent_voice.js @@ -0,0 +1,16 @@ +module.exports = (query, request) => { + const data = { + limit: query.limit || 100, + } + return request( + 'POST', + `https://music.163.com/api/play-record/voice/list`, + data, + { + crypto: 'weapi', + cookie: query.cookie, + proxy: query.proxy, + realIP: query.realIP, + }, + ) +} diff --git a/netease_api/module/song_download_url.js b/netease_api/module/song_download_url.js new file mode 100644 index 0000000..73eccc9 --- /dev/null +++ b/netease_api/module/song_download_url.js @@ -0,0 +1,20 @@ +// 获取客户端歌曲下载链接 + +module.exports = (query, request) => { + const data = { + id: query.id, + br: parseInt(query.br || 999000), + } + return request( + 'POST', + `https://interface.music.163.com/eapi/song/enhance/download/url`, + data, + { + crypto: 'eapi', + cookie: query.cookie, + proxy: query.proxy, + realIP: query.realIP, + url: '/api/song/enhance/download/url', + }, + ) +} diff --git a/netease_api/package.json b/netease_api/package.json index 3990157..8a81185 100644 --- a/netease_api/package.json +++ b/netease_api/package.json @@ -1,6 +1,6 @@ { "name": "NeteaseCloudMusicApi", - "version": "4.0.8", + "version": "4.2.0", "description": "网易云音乐 NodeJS 版 API", "scripts": { "start": "node app.js", diff --git a/netease_api/public/home.html b/netease_api/public/home.html new file mode 100644 index 0000000..1459dc9 --- /dev/null +++ b/netease_api/public/home.html @@ -0,0 +1,58 @@ + + + +
+ + +