diff --git a/CHANGELOG.MD b/CHANGELOG.MD index b177c5671a11601ee3303b5bcf6b1f1b3e399e67..bb3cdb9f36164b431f66790fe8197859fdfd6a69 100644 --- a/CHANGELOG.MD +++ b/CHANGELOG.MD @@ -1,4 +1,7 @@ # 更新日志 +### 2.4.6 | 2017.4.21 +增加播放 mv 接口,更新文档 + ### 2.4.5 | 2017.4.20 增加歌手专辑,歌手单曲等接口,修复/album 接口描述错误,更新文档 diff --git a/README.MD b/README.MD index 55265250e4757376e8511430f4b8a6c202246deb..42a1841b861dd9fea801ce6fee1836573c038849 100644 --- a/README.MD +++ b/README.MD @@ -14,6 +14,9 @@ [darknessomi/musicbox](https://github.com/darknessomi/musicbox) ## 版本新特性 +### 2.4.6 | 2017.4.21 +增加播放 mv 接口,更新文档 + ### 2.4.5 | 2017.4.20 增加歌手专辑,歌手单曲等接口,修复/album 接口描述错误,更新文档 diff --git a/app.js b/app.js index 503ae49fadaeaa73c3e291f574d5570ee80fe459..757f79d7b5b50fd0d223139c02b290cfdf9195a9 100644 --- a/app.js +++ b/app.js @@ -78,6 +78,9 @@ app.use("/top_list",require("./router/top_list")) //mv app.use("/mv",require("./router/mv")) +//play_mv +app.use("/play_mv",require("./router/play_mv")) + process.on('SIGHUP', () => { console.log('server: bye bye') process.exit() diff --git a/docs/README.md b/docs/README.md index 6f85fdd001b978a2aba9ca813287a0577b72bd58..9a025fb2b1343441a00a9983b8e35768144b4724 100644 --- a/docs/README.md +++ b/docs/README.md @@ -11,8 +11,8 @@ 跨站请求伪造 (CSRF), 伪造请求头,调用官方 API ## 版本新特性 -### 2.4.5 | 2017.4.20 -增加歌手专辑,歌手单曲等接口,修复/album 接口描述错误,更新文档 +### 2.4.6 | 2017.4.21 +增加播放 mv 接口,更新文档 ## 功能特性 1. 登录 @@ -34,9 +34,10 @@ 17. 歌单(网友精选碟) 18. 新碟上架 19. 热门歌手 -20. mv(可获得 mv 地址,不过暂时还没解决 mv 的防盗链问题) -21. 获取歌手专辑 -22. 获取歌手单曲 +20. 获取 mv 信息 +21. 播放 mv +22. 获取歌手专辑 +23. 获取歌手单曲 ## 安装 ``` shell @@ -421,7 +422,7 @@ $ set PORT=4000 && node app.js ![热门歌手](https://raw.githubusercontent.com/Binaryify/NeteaseCloudMusicApi/master/static/top_artists.png) ### mv -说明:调用此接口,传入 mvid ,可获取对应 MV 数据 +说明:调用此接口,传入 mvid ,可获取对应 MV 数据,数据包含 mv 名字,歌手,发布时间, mv 视频地址等数据,其中 mv 视频网易做了防盗链处理,不能直接播放,需要播放的话需要调用'播放 mv' 接口 **可选参数:** `mvid`: mv 的 id @@ -436,6 +437,24 @@ $ set PORT=4000 && node app.js ![热门歌手](https://raw.githubusercontent.com/Binaryify/NeteaseCloudMusicApi/master/static/mv.png) + +### 播放 mv +说明:调用此接口,mv 地址,可播放 mv,由于使用了 'pipe',进度条无法通过拖动进度条控制进度,如有解决方案可提出 PR 或者自行改造 + +**可选参数:** +`/url`: mv 的 地址 + +**接口地址:** +`/play_mv` + +**调用例子:** +`/play_mv?url=http://v4.music.126.net/20170422034915/c98eab2f5e2c85fc8de2ab3f0f8ed1c6/web/cloudmusic/MjQ3NDQ3MjUw/89a6a279dc2acfcd068b45ce72b1f560/533e4183a709699d566180ed0cd9abe9.mp4` + +如下图: + +![播放视频](https://raw.githubusercontent.com/Binaryify/NeteaseCloudMusicApi/master/static/play_mv.png) + + ### 排行榜 说明:调用此接口,传入数字 idx, 可获取不同排行榜 diff --git a/package.json b/package.json index 94d5faad43a9e375509c2170eb369b298c18f071..e2746d3754d1ff72eee5bd4e8ae975174f13de11 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "NeteaseCloudMusicApi", - "version": "2.4.5", + "version": "2.4.6", "description": "网易云音乐 NodeJS 版 API", "scripts": { "start": "node app.js", diff --git a/router/mv.js b/router/mv.js index 91d1e0b42c131b9660a2a804bfefa0808872ac48..5080fae49f1ea18d4421677513345b9129ac2df0 100644 --- a/router/mv.js +++ b/router/mv.js @@ -1,7 +1,7 @@ const express = require("express") const router = express() const { createRequest } = require("../util/util") - +const request=require("request") router.get("/", (req, res) => { const mvid = req.query.mvid createRequest(`/api/mv/detail/?id=${mvid}&type=mp4`, 'GET', null) diff --git a/router/play_mv.js b/router/play_mv.js new file mode 100644 index 0000000000000000000000000000000000000000..07ca49abcf0abdc124fe558dd2f0d06a6452ec28 --- /dev/null +++ b/router/play_mv.js @@ -0,0 +1,24 @@ +const express = require("express") +const router = express() +const request = require("request") + +router.get("/", (req, res) => { + const url = req.query.url + const headers = { + "Referer": "http://music.163.com/", + "Cookie": "appver=1.5.0.75771;", + 'Content-Type': 'video/mp4', + 'Location': url + } + const options = { + header: headers, + url: url + } + request(options) + .on('error', err => { + res.send({ err }) + }) + .pipe(res) +}) + +module.exports = router \ No newline at end of file diff --git a/static/play_mv.png b/static/play_mv.png new file mode 100644 index 0000000000000000000000000000000000000000..de239515d554ba8e862f893a36dcbf63c7150c0f Binary files /dev/null and b/static/play_mv.png differ