提交 e0dd7a08 编写于 作者: B binaryify

新增获取视频数据接口,完善文档 #301

上级 4fa3f7b5
# 更新日志
### 2.18.0 | 2018.08.29
新增获取视频数据接口,完善文档 #301,感谢 @izhenyuls
### 2.17.0 | 2018.08.28
新增登录状态查询接口 #302 ,完善文档,完善路由注册 #297
......
......@@ -92,6 +92,9 @@
70. 订阅的电台列表
71. 相关歌单推荐
72. 付费精选接口
73. 音乐是否可用检查接口
74. 登录状态
75. 获取视频数据
## 环境要求
......
......@@ -15,6 +15,9 @@
跨站请求伪造 (CSRF), 伪造请求头 , 调用官方 API
## 版本新特性
### 2.18.0 | 2018.08.29
新增获取视频数据接口
### 2.17.0 | 2018.08.28
新增登录状态查询接口
......@@ -112,7 +115,7 @@ banner 接口 , 增加刷新登录接口 , 增加电台相关接口 , 补充评
48. 独家放送
49. mv 排行
50. 获取 mv 数据
51. 播放 mv
51. 播放 mv/视频
52. 排行榜
53. 歌手榜
54. 云盘
......@@ -136,7 +139,7 @@ banner 接口 , 增加刷新登录接口 , 增加电台相关接口 , 补充评
72. 付费精选接口
73. 音乐是否可用检查接口
74. 登录状态
75. 获取视频数据
## 安装
......@@ -624,8 +627,8 @@ mp3url 不能直接用 , 可通过 `/music/url` 接口传入歌曲 id 获取具
**可选参数 :** `limit` : 返回数量 , 默认为 30 `offset` : 偏移数量,用于分页 , 如
: 如 :( 页数 -1)\*30, 其中 30 为 limit 的值 , 默认为 0
`type`: 搜索类型;默认为 1 即单曲 , 取值意义 : 1: 单曲 10: 专辑 100: 歌手 1000:
歌单 1002: 用户 1004: MV 1006: 歌词 1009: 电台
`type`: 搜索类型;默认为 1 即单曲 , 取值意义 : 1: 单曲, 10: 专辑, 100: 歌手, 1000:
歌单, 1002: 用户, 1004: MV, 1006: 歌词, 1009: 电台, 1014: 视频
**接口地址 :** `/search`
......@@ -1164,7 +1167,7 @@ mp3url 不能直接用 , 可通过 `/music/url` 接口传入歌曲 id 获取具
说明 : 调用此接口 , 传入 mvid ( 在搜索音乐的时候传 type=1004 获得 ) , 可获取对应
MV 数据 , 数据包含 mv 名字 , 歌手 , 发布时间 , mv 视频地址等数据 , 其中 mv 视频
网易做了防盗链处理 , 不能直接播放 , 需要播放的话需要调用 ' 播放 mv' 接口
网易做了防盗链处理 , 可能不能直接播放 , 需要播放的话需要调用 ' 播放 mv/视频' 接口
**必选参数 :** `mvid`: mv 的 id
......@@ -1176,13 +1179,28 @@ MV 数据 , 数据包含 mv 名字 , 歌手 , 发布时间 , mv 视频地址等
![热门歌手](https://raw.githubusercontent.com/Binaryify/NeteaseCloudMusicApi/master/static/mv.png)
### 播放 mv
### 获取视频数据
说明 : 调用此接口 , 传入视频的 id ( 在搜索音乐的时候传 type=1014 获得 ) , 可获取对应
视频数据,其中视频网易做了防盗链处理 , 可能不能直接播放 , 需要播放的话需要调用 ' 播放 mv/视频' 接口
**必选参数 :** ` id`: 视频 的 id
**接口地址 :** `/video`
**调用例子 :** `/video?id=89ADDE33C0AAE8EC14B99F6750DB954D`
返回数据如下图 :
![视频数据](https://ws1.sinaimg.cn/large/006tNbRwgy1fuqdv10p5rj31kw0da76y.jpg)
### 播放 mv/视频
说明 : 调用此接口 , 传入 mv 地址 , 可播放 mv, 也可将接口嵌入 video 标签使用 , 由
说明 : 调用此接口 , 传入 mv/视频 地址 , 可播放 mv/视频, 也可将接口嵌入 video 标签使用 , 由
于使用了 'pipe', 进度条无法通过拖动进度条控制进度 , 如有解决方案可提出 PR 或者自
行改造
**可选参数 :** `url`: mv 的 地址
**可选参数 :** `url`: mv/视频 的 地址
**接口地址 :** `/mv/url`
......
{
"name": "NeteaseCloudMusicApi",
"version": "2.17.0",
"version": "2.18.0",
"description": "网易云音乐 NodeJS 版 API",
"scripts": {
"start": "node app.js",
......
// 搜索
module.exports = (req, res, createWebAPIRequest, request) => {
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
const keywords = req.query.keywords;
const type = req.query.type || 1;
const limit = req.query.limit || 30;
const offset = req.query.offset || 0;
// *(type)* 搜索单曲(1),歌手(100),专辑(10),歌单(1000),用户(1002)
const cookie = req.get('Cookie') ? req.get('Cookie') : ''
const keywords = req.query.keywords
const type = req.query.type || 1
const limit = req.query.limit || 30
const offset = req.query.offset || 0
// *(type)* 搜索类型;默认为 1 即单曲 , 取值意义 : 1: 单曲, 10: 专辑, 100: 歌手, 1000: 歌单, 1002: 用户, 1004: MV, 1006: 歌词, 1009: 电台, 1014: 视频
const data = {
csrf_token: "",
csrf_token: '',
limit,
type,
s: keywords,
offset
};
}
createWebAPIRequest(
"music.163.com",
"/weapi/search/get",
"POST",
'music.163.com',
'/weapi/search/get',
'POST',
data,
cookie,
music_req => res.send(music_req),
err => res.status(502).send("fetch error")
);
};
err => res.status(502).send('fetch error')
)
}
//video
module.exports = (req, res, createWebAPIRequest, request) => {
const cookie = req.get('Cookie') ? req.get('Cookie') : ''
const videoId = req.query.id
const data = {}
createWebAPIRequest(
'music.163.com',
`/api/cloudvideo/playurl?ids=['${videoId}']&resolution=720`,
'POST',
data,
cookie,
music_req => {
res.send(music_req)
},
err => res.status(502).send('fetch error')
)
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册