From a8e76255aebf6dc9d3a227812aed6b9d34e2a9bb Mon Sep 17 00:00:00 2001 From: binaryify Date: Tue, 8 May 2018 14:02:52 +0800 Subject: [PATCH 1/7] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=96=B0=E5=BB=BA?= =?UTF-8?q?=E6=AD=8C=E5=8D=95,=E6=94=B6=E8=97=8F/=E5=8F=96=E6=B6=88?= =?UTF-8?q?=E6=94=B6=E8=97=8F=E6=AD=8C=E5=8D=95=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.MD | 4 ++-- app.js | 19 ++++++++++--------- docs/README.md | 35 +++++++++++++++++++++++++++++++++-- package.json | 2 +- 4 files changed, 46 insertions(+), 14 deletions(-) diff --git a/CHANGELOG.MD b/CHANGELOG.MD index e6b8ae5..0b05583 100644 --- a/CHANGELOG.MD +++ b/CHANGELOG.MD @@ -1,6 +1,6 @@ # 更新日志 -### 2.9.5 | 2018.05.08 -新增发送私信相关接口 +### 2.9.6 | 2018.05.08 +新增发送私信相关接口,新增新建歌单,收藏/取消收藏歌单接口 ### 2.9.4 | 2018.05.04 新增热搜接口,更新 banner 接口 diff --git a/app.js b/app.js index 62c22f7..1468482 100644 --- a/app.js +++ b/app.js @@ -155,10 +155,18 @@ app.use("/playlist/detail", require("./router/playlist_detail")); //收藏单曲到歌单,从歌单删除歌曲 op=del,add;pid=歌单id,tracks=歌曲id app.use("/playlist/tracks", require("./router/playlist_tracks")); +// 热门歌单 app.use("/playlist/hot", require("./router/playlist_hot")); +// 全部歌单 app.use("/playlist/catlist", require("./router/playlist_catlist")); +// 新建歌单 +app.use("/playlist/create", require("./router/playlist_create")); + +// 收藏/取消收藏歌单 +app.use("/playlist/subscribe", require("./router/playlist_subscribe")); + //推荐节目 app.use("/program/recommend", require("./router/program_recommend")); @@ -185,8 +193,9 @@ app.use("/search/multimatch", require("./router/search_multimatch")); // 搜索 suggest,搜索结果包含单曲,歌手,歌单,mv信息 app.use("/search/suggest", require("./router/search_suggest")); +app.use("/send/text", require("./router/send_text")); - +app.use("/send/playlist", require("./router/send_playlist")); //simi ,相似歌单 app.use("/simi/playlist", require("./router/simi_playlist")); @@ -259,14 +268,6 @@ app.use("/user/subcount", require("./router/user_subcount")); app.use("/user/record", require("./router/user_playrecord")); -app.use("/send/text", require("./router/send_text")); - -app.use("/send/playlist", require("./router/send_playlist")); - -app.use("/playlist/create", require("./router/playlist_create")); - -app.use("/playlist/subscribe", require("./router/playlist_subscribe")); - const port = process.env.PORT || 3000; app.listen(port, () => { diff --git a/docs/README.md b/docs/README.md index 120557d..b08ffe7 100644 --- a/docs/README.md +++ b/docs/README.md @@ -16,8 +16,8 @@ ## 版本新特性 -### 2.9.5 | 2018.05.08 -新增发送私信相关接口 +### 2.9.6 | 2018.05.08 +新增发送私信相关接口,新增新建歌单,收藏/取消收藏歌单接口 ### 2.9.4 | 2018.05.04 新增热搜接口,更新 banner 接口 @@ -126,6 +126,8 @@ banner 接口 , 增加刷新登录接口 , 增加电台相关接口 , 补充评 63. 获取热搜 64. 发送私信 65. 发送私信歌单 +66. 新建歌单 +67. 收藏/取消收藏歌单 ## 安装 @@ -491,6 +493,35 @@ mp3url 不能直接用 , 可通过 `/music/url` 接口传入歌曲 id 获取具 **调用例子 :** `/search/multimatch?keywords= 海阔天空` +### 新建歌单 + +说明 : 调用此接口 , 传入歌单名字可新建歌单 + +**必选参数 :** `name` : 歌单名 + +**接口地址 :** `/playlist/create` + +**调用例子 :** `/playlist/create?name=测试歌单` + +返回数据如下图: +![数据](https://ws1.sinaimg.cn/large/006tKfTcgy1fr3va885z5j31a617qwjy.jpg) + +### 收藏/取消收藏歌单 + +说明 : 调用此接口 , 传入类型和歌单 id 可收藏歌单或者取消收藏歌单 + +**必选参数 :** +`t` : 类型,1:收藏,2:取消收藏 +`id` : 歌单 id + +**接口地址 :** `/playlist/subscribe` + +**调用例子 :** `/playlist/subscribe?t=1&id=106697785` `/playlist/subscribe?t=2&id=106697785` + +返回数据如下图: +![数据](https://ws1.sinaimg.cn/large/006tKfTcgy1fr3vdwx0hvj30s405u74b.jpg) + + ### 对歌单添加或删除歌曲 说明 : 调用此接口 , 可以添加歌曲到歌单或者从歌单删除某首歌曲 ( 需要登录 ) diff --git a/package.json b/package.json index ef6483a..8d67b2e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "NeteaseCloudMusicApi", - "version": "2.9.5", + "version": "2.9.6", "description": "网易云音乐 NodeJS 版 API", "scripts": { "start": "node app.js", From becafe67a6d38e6613fb864cfb03a5414771a26d Mon Sep 17 00:00:00 2001 From: binaryify Date: Tue, 8 May 2018 14:19:52 +0800 Subject: [PATCH 2/7] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app.js | 4 ++-- docs/README.md | 53 +++++++++++++++++++++++++++++++++++--------------- 2 files changed, 39 insertions(+), 18 deletions(-) diff --git a/app.js b/app.js index 1468482..f9f4697 100644 --- a/app.js +++ b/app.js @@ -155,10 +155,10 @@ app.use("/playlist/detail", require("./router/playlist_detail")); //收藏单曲到歌单,从歌单删除歌曲 op=del,add;pid=歌单id,tracks=歌曲id app.use("/playlist/tracks", require("./router/playlist_tracks")); -// 热门歌单 +// 热门歌单分类 app.use("/playlist/hot", require("./router/playlist_hot")); -// 全部歌单 +// 全部歌单分类 app.use("/playlist/catlist", require("./router/playlist_catlist")); // 新建歌单 diff --git a/docs/README.md b/docs/README.md index b08ffe7..ef0d487 100644 --- a/docs/README.md +++ b/docs/README.md @@ -391,12 +391,48 @@ Cookies **调用例子 :** `/event` +### 歌单分类 +说明 : 调用此接口,可获取歌单分类,包含 category 信息 + +**接口地址 :** `/playlist/catlist` + + +**调用例子 :** `/playlist/catlist` + +### 热门歌单分类 +说明 : 调用此接口,可获取歌单分类,包含 category 信息 + +**接口地址 :** `/playlist/hot` + + +**调用例子 :** `/playlist/hot` + +### 歌单 ( 网友精选碟 ) + +说明 : 调用此接口 , 可获取网友精选碟歌单 + +**可选参数 :** `order`: 可选值为 'new' 和 'hot', 分别对应最新和最热 , 默认为 +'hot' + +`cat`:`cat`: tag, 比如 " 华语 "、" 古风 " 、" 欧美 "、" 流行 ", 默认为 +"全部",可从歌单分类接口获取(/playlist/catlist) + +**接口地址 :** `/top/playlist` + +**调用例子 :** `/top/playlist?limit=10&order=new` + +返回数据如下图 : + +![精选碟](https://raw.githubusercontent.com/Binaryify/NeteaseCloudMusicApi/master/static/top_playlist.png) +![对应位置](https://ws2.sinaimg.cn/large/006tKfTcgy1fr3wnpyg6jj317e0vcqdc.jpg) +![返回数据](https://ws4.sinaimg.cn/large/006tKfTcgy1fr3wqs5lw9j31ic1re4c4.jpg) + ### 获取精品歌单 说明 : 调用此接口 , 可获取精品歌单 **可选参数 :** `cat`: tag, 比如 " 华语 "、" 古风 " 、" 欧美 "、" 流行 ", 默认为 -" 全部 " +"全部",可从歌单分类接口获取(/playlist/catlist) `limit`: 取出歌单数量 , 默认为 20 @@ -874,21 +910,6 @@ mp3url 不能直接用 , 可通过 `/music/url` 接口传入歌曲 id 获取具 ![移除成功](https://raw.githubusercontent.com/Binaryify/NeteaseCloudMusicApi/master/static/fm_trash.png) -### 歌单 ( 网友精选碟 ) - -说明 : 调用此接口 , 可获取网友精选碟歌单 - -**可选参数 :** `order`: 可选值为 'new' 和 'hot', 分别对应最新和最热 , 默认为 -'hot' - -**接口地址 :** `/top/playlist` - -**调用例子 :** `/top/playlist?limit=10&order=new` - -返回数据如下图 : - -![精选碟](https://raw.githubusercontent.com/Binaryify/NeteaseCloudMusicApi/master/static/top_playlist.png) - ### 新碟上架 说明 : 调用此接口 , 可获取新碟上架列表 , 如需具体音乐信息需要调用获取专辑列表接 From 43bbc4410d7c1287100e6d47a3a9b09cad152626 Mon Sep 17 00:00:00 2001 From: binaryify Date: Tue, 8 May 2018 14:20:14 +0800 Subject: [PATCH 3/7] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/README.md b/docs/README.md index ef0d487..83cee7c 100644 --- a/docs/README.md +++ b/docs/README.md @@ -128,6 +128,7 @@ banner 接口 , 增加刷新登录接口 , 增加电台相关接口 , 补充评 65. 发送私信歌单 66. 新建歌单 67. 收藏/取消收藏歌单 +68. 歌单分类 ## 安装 From 420b7d1bc14045f56942653a998dee99024aee35 Mon Sep 17 00:00:00 2001 From: binaryify Date: Tue, 8 May 2018 14:22:44 +0800 Subject: [PATCH 4/7] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E4=BE=9D=E8=B5=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index 8d67b2e..1d2f56d 100644 --- a/package.json +++ b/package.json @@ -14,17 +14,17 @@ "author": "", "license": "MIT", "dependencies": { - "apicache": "^1.2.0", - "big-integer": "^1.6.26", - "express": "^4.16.2", - "request": "^2.83.0" + "apicache": "^1.2.1", + "big-integer": "^1.6.28", + "express": "^4.16.3", + "request": "^2.85.0" }, "devDependencies": { "husky": "^0.14.3", "intelli-espower-loader": "^1.0.1", - "lint-staged": "^6.0.1", - "mocha": "^5.0.0", - "power-assert": "^1.4.4", - "prettier": "^1.10.2" + "lint-staged": "^7.1.0", + "mocha": "^5.1.1", + "power-assert": "^1.5.0", + "prettier": "^1.12.1" } } From 5e363fb2ee1b985f22d87fc600cfa46a62fe589c Mon Sep 17 00:00:00 2001 From: Nzix Date: Wed, 9 May 2018 20:01:08 +0800 Subject: [PATCH 5/7] artist subscribe & unsubscribe --- app.js | 6 ++++++ router/artist_sub.js | 23 +++++++++++++++++++++++ router/artist_unsub.js | 24 ++++++++++++++++++++++++ 3 files changed, 53 insertions(+) create mode 100644 router/artist_sub.js create mode 100644 router/artist_unsub.js diff --git a/app.js b/app.js index f9f4697..8345ce0 100644 --- a/app.js +++ b/app.js @@ -47,6 +47,12 @@ app.use("/artist/desc", require("./router/artists_desc")); //艺术家-mv app.use("/artist/mv", require("./router/artists_mv")); +// 收藏歌手 +app.use("/artist/sub", require("./router/artist_sub")); + +// 取消收藏歌手 +app.use("/artist/unsub", require("./router/artist_unsub")); + // 获取 banner app.use("/banner", require("./router/banner")); diff --git a/router/artist_sub.js b/router/artist_sub.js new file mode 100644 index 0000000..213e41f --- /dev/null +++ b/router/artist_sub.js @@ -0,0 +1,23 @@ +const express = require("express"); +const router = express(); +const { createWebAPIRequest } = require("../util/util"); + +router.get("/", (req, res) => { + const cookie = req.get("Cookie") ? req.get("Cookie") : ""; + const data = { + artistId: `${req.query.id}` + }; + createWebAPIRequest( + "music.163.com", + "/weapi/artist/sub", + "POST", + data, + cookie, + music_req => { + res.send(music_req); + }, + err => res.status(502).send("fetch error") + ); +}); + +module.exports = router; diff --git a/router/artist_unsub.js b/router/artist_unsub.js new file mode 100644 index 0000000..97cec49 --- /dev/null +++ b/router/artist_unsub.js @@ -0,0 +1,24 @@ +const express = require("express"); +const router = express(); +const { createWebAPIRequest } = require("../util/util"); + +router.get("/", (req, res) => { + const cookie = req.get("Cookie") ? req.get("Cookie") : ""; + const data = { + artistId: `${req.query.id}`, + artistIds: `[${req.query.id}]` + }; + createWebAPIRequest( + "music.163.com", + "/weapi/artist/unsub", + "POST", + data, + cookie, + music_req => { + res.send(music_req); + }, + err => res.status(502).send("fetch error") + ); +}); + +module.exports = router; From 821607f0310ef17fb2b43522ba9b402ebbd7be92 Mon Sep 17 00:00:00 2001 From: Nzix Date: Thu, 10 May 2018 01:10:02 +0800 Subject: [PATCH 6/7] artist catalogue --- app.js | 3 +++ router/artist_list.js | 47 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 router/artist_list.js diff --git a/app.js b/app.js index 8345ce0..84ae059 100644 --- a/app.js +++ b/app.js @@ -53,6 +53,9 @@ app.use("/artist/sub", require("./router/artist_sub")); // 取消收藏歌手 app.use("/artist/unsub", require("./router/artist_unsub")); +// 歌手分类 +app.use("/artist/list", require("./router/artist_list")); + // 获取 banner app.use("/banner", require("./router/banner")); diff --git a/router/artist_list.js b/router/artist_list.js new file mode 100644 index 0000000..3f8ba03 --- /dev/null +++ b/router/artist_list.js @@ -0,0 +1,47 @@ +//分类歌单 +const express = require("express"); +const router = express(); +const { createWebAPIRequest } = require("../util/util"); + +router.get("/", (req, res) => { + const cookie = req.get("Cookie") ? req.get("Cookie") : ""; + + // categoryCode 取值 + + // 入驻歌手 5001 + // 华语男歌手 1001 + // 华语女歌手 1002 + // 华语组合/乐队 1003 + // 欧美男歌手 2001 + // 欧美女歌手 2002 + // 欧美组合/乐队 2003 + // 日本男歌手 6001 + // 日本女歌手 6002 + // 日本组合/乐队 6003 + // 韩国男歌手 7001 + // 韩国女歌手 7002 + // 韩国组合/乐队 7003 + // 其他男歌手 4001 + // 其他女歌手 4002 + // 其他组合/乐队 4003 + + const data = { + categoryCode: req.query.cat || "1001", + offset: req.query.offset || 0, + total: req.query.total ? "true" : "false", + limit: req.query.limit || 50 + }; + createWebAPIRequest( + "music.163.com", + "/weapi/artist/list", + "POST", + data, + cookie, + music_req => { + res.send(music_req); + }, + err => res.status(502).send("fetch error") + ); +}); + +module.exports = router; From 65d2a3f9188c0d596cee9163364d04bddcd9de37 Mon Sep 17 00:00:00 2001 From: binaryify Date: Thu, 10 May 2018 10:00:52 +0800 Subject: [PATCH 7/7] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=AD=8C=E6=89=8B?= =?UTF-8?q?=E5=88=86=E7=B1=BB=E5=88=97=E8=A1=A8,=E6=94=B6=E8=97=8F/?= =?UTF-8?q?=E5=8F=96=E6=B6=88=E6=94=B6=E8=97=8F=E6=AD=8C=E6=89=8B=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.MD | 3 +++ docs/README.md | 60 ++++++++++++++++++++++++++++++++++++++++++- package.json | 2 +- router/artist_list.js | 2 +- 4 files changed, 64 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.MD b/CHANGELOG.MD index 0b05583..34b7a1d 100644 --- a/CHANGELOG.MD +++ b/CHANGELOG.MD @@ -1,4 +1,7 @@ # 更新日志 +### 2.9.7 | 2018.05.10 +新增歌手分类列表,收藏/取消收藏歌手接口 + ### 2.9.6 | 2018.05.08 新增发送私信相关接口,新增新建歌单,收藏/取消收藏歌单接口 diff --git a/docs/README.md b/docs/README.md index 83cee7c..c60028e 100644 --- a/docs/README.md +++ b/docs/README.md @@ -15,6 +15,8 @@ 跨站请求伪造 (CSRF), 伪造请求头 , 调用官方 API ## 版本新特性 +### 2.9.7 | 2018.05.10 +新增歌手分类列表,收藏/取消收藏歌手接口 ### 2.9.6 | 2018.05.08 新增发送私信相关接口,新增新建歌单,收藏/取消收藏歌单接口 @@ -392,6 +394,59 @@ Cookies **调用例子 :** `/event` +### 歌手分类列表 +说明 : 调用此接口,可获取歌手分类列表 +**必选参数 :** `cat` : 即 category Code,歌手类型,默认 1001,返回华语男歌手数据 +**可选参数 :** +`limit` : 返回数量 , 默认为 30 + +`offset` : 偏移数量,用于分页 , 如 +: 如 :( 页数 -1)\*30, 其中 30 为 limit 的值 , 默认为 0 +category Code 取值: +``` +入驻歌手 5001 +华语男歌手 1001 +华语女歌手 1002 +华语组合/乐队 1003 +欧美男歌手 2001 +欧美女歌手 2002 +欧美组合/乐队 2003 +日本男歌手 6001 +日本女歌手 6002 +日本组合/乐队 6003 +韩国男歌手 7001 +韩国女歌手 7002 +韩国组合/乐队 7003 +其他男歌手 4001 +其他女歌手 4002 +其他组合/乐队 4003 +``` + +**接口地址 :** `/artist/list` + + +**调用例子 :** `/artist/list?cat=1001` + +返回数据如下图: +![数据](https://ws1.sinaimg.cn/large/006tKfTcgy1fr60g9zps9j31kw1bpk4n.jpg) + +### 收藏歌手 +说明 : 调用此接口,可收藏歌手 +**必选参数 :** `artistId` : 歌手 id + +**接口地址 :** `/artist/sub` + +**调用例子 :** `/artist/sub?id=6452` + +### 取消收藏歌手 +说明 : 调用此接口,可取消收藏歌手 +**必选参数 :** `artistId` : 歌手 id + +**接口地址 :** `/artist/unsub` + + +**调用例子 :** `/artist/unsub?id=6452` + ### 歌单分类 说明 : 调用此接口,可获取歌单分类,包含 category 信息 @@ -510,7 +565,10 @@ mp3url 不能直接用 , 可通过 `/music/url` 接口传入歌曲 id 获取具 **必选参数 :** `keywords` : 关键词 -**可选参数 :** `limit` : 返回数量 , 默认为 30 `offset` : 偏移数量,用于分页 , 如 +**可选参数 :** +`limit` : 返回数量 , 默认为 30 + +`offset` : 偏移数量,用于分页 , 如 : 如 :( 页数 -1)\*30, 其中 30 为 limit 的值 , 默认为 0 `type`: 搜索类型;默认为 1 即单曲 , 取值意义 : 1: 单曲 10: 专辑 100: 歌手 1000: diff --git a/package.json b/package.json index 1d2f56d..be7162d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "NeteaseCloudMusicApi", - "version": "2.9.6", + "version": "2.9.7", "description": "网易云音乐 NodeJS 版 API", "scripts": { "start": "node app.js", diff --git a/router/artist_list.js b/router/artist_list.js index 3f8ba03..b150dc7 100644 --- a/router/artist_list.js +++ b/router/artist_list.js @@ -29,7 +29,7 @@ router.get("/", (req, res) => { categoryCode: req.query.cat || "1001", offset: req.query.offset || 0, total: req.query.total ? "true" : "false", - limit: req.query.limit || 50 + limit: req.query.limit || 30 }; createWebAPIRequest( "music.163.com",