README.md 5.7 KB
Newer Older
B
binaryify 已提交
1 2 3
# NeteaseCloudMusicApi

网易云音乐 NodeJS 版 API
B
binaryify 已提交
4

B
binaryify 已提交
5 6

## 版本新特性  
B
binaryify 已提交
7
版本升级到 2.0 .增加使用文档,完成项目重构,增加更完善的单元测试,升级 api 到 v2+,支持登录并获取用户信息和创建的歌单,可通过获取音乐 url 接口获取用户歌单里的的音乐,获取每日推荐歌单和每日推荐音乐
B
binaryify 已提交
8 9 10

## 安装  
``` shell
11 12
$ git clone git@github.com:Binaryify/NeteaseCloudMusicApi.git
$ npm install
B
binaryify 已提交
13
```
14
## 运行
B
binaryify 已提交
15
``` shell
16
$ node app.js 
B
binaryify 已提交
17 18 19 20 21
```

服务器启动,默认端口为3000


22
## 接口文档
B
binaryify 已提交
23 24

### 登录
25 26 27 28 29 30 31 32
说明:登录有两个接口  
#### 1. 手机登录  

**必选参数:**  
`phone`: 手机号码   
`password`:  密码  

**接口地址:**  
B
binaryify 已提交
33
`/login/cellphone`  
34 35 36 37 38 39 40 41 42 43 44 45 46 47

**调用例子:**  
`/login/cellphone?phone=xxx&password=yyy`  

#### 2. 邮箱登录  

**必选参数:**  
`email`: 163网易邮箱   
`password`:  密码  

**接口地址:**  
`/login`  

**调用例子:**  
B
improve  
binaryify 已提交
48
`/login?email=xxx@163.com&password=yyy`  
49

B
binaryify 已提交
50 51 52 53
返回数据如下图:  
![登录](https://raw.githubusercontent.com/Binaryify/NeteaseCloudMusicApi/master/static/%E7%99%BB%E5%BD%95.png)


B
binaryify 已提交
54
完成登录后,会在浏览器保存一个 cookie 用作登录凭证, 除了搜索的音乐和歌词,以及获取音乐 url 都需要用到这个 cookie  
B
binaryify 已提交
55

B
binaryify 已提交
56 57
#### 注意
调用登录接口的速度比调用其他接口慢,因为登录过程调用了加密算法
B
binaryify 已提交
58 59 60

### 获取用户歌单
说明:登陆后调用此接口,传入用户 id, 可以获取用户歌单  
61 62 63 64 65

**必选参数:**  
`uid` : 用户 id  

**接口地址:**  
B
binaryify 已提交
66
`/user/playlist`  
67 68

**调用例子:**  
B
binaryify 已提交
69
`/user/playlist?uid=32953014`  
70

B
binaryify 已提交
71 72 73 74 75
返回数据如下图:  
![用户歌单](https://raw.githubusercontent.com/Binaryify/NeteaseCloudMusicApi/master/static/%E7%94%A8%E6%88%B7%E6%AD%8C%E5%8D%95.png)

### 获取歌单详情  
说明:歌单能看到歌单名字,但看不到具体歌单内容,调用此接口,传入歌单 id,可以获取对应歌单内的所有的音乐  
76 77 78 79 80

**必选参数:**  
`id` : 歌单 id  

**接口地址:**  
F
fuyumi 已提交
81
`/playlist/detail`  
82 83

**调用例子:**  
B
binaryify 已提交
84
`/playlist/detail?id=24381616`  
85

B
binaryify 已提交
86 87 88 89
返回数据如下图:  
![歌单详情](https://raw.githubusercontent.com/Binaryify/NeteaseCloudMusicApi/master/static/%E6%AD%8C%E5%8D%95%E8%AF%A6%E6%83%85.png)

### 获取音乐 url
B
binaryify 已提交
90
说明:使用歌单详情接口后,能得到的音乐的 id, 但不能得到的音乐 url, 调用此接口,传入的音乐 id,可以获取对应的音乐的 url(不需要登录)  
91 92 93 94 95

**必选参数:**  
`id` : 音乐 id  

**接口地址:**  
F
fuyumi 已提交
96
`/music/url`  
97 98

**调用例子:**  
F
fuyumi 已提交
99
`/music/url?id=347230`  
100

B
binaryify 已提交
101 102 103 104
返回数据如下图:  
![音乐 url](https://raw.githubusercontent.com/Binaryify/NeteaseCloudMusicApi/master/static/%E9%9F%B3%E4%B9%90%20url.png)

### 搜索音乐
B
binaryify 已提交
105
说明:调用此接口,传入搜索关键词可以搜索该音乐,关键词可以多个,以空格隔开,如"周杰伦 搁浅"(不需要登录)  
106 107

**必选参数:**  
108
`keywords` : 关键词  
109 110

**可选参数:** 
111
`limit` : 返回数量,默认为30  
112
`type`: 搜索类型;默认为1,取值意义:  
B
binaryify 已提交
113 114 115 116 117
1: 单曲  
10: 专辑  
100: 歌手  
1000: 歌单  
1002: 用户  
118
 
119
`offset` : 偏移数量,用于分页,如:  如:(评论页数-1)*30, 其中 30 为 limit 的值  
120

121
**接口地址:**  
B
binaryify 已提交
122
`/search`  
123 124

**调用例子:**  
B
binaryify 已提交
125
`/search?keywords=海阔天空`  
126

B
binaryify 已提交
127 128 129 130
返回数据如下图: 
![搜索音乐](https://raw.githubusercontent.com/Binaryify/NeteaseCloudMusicApi/master/static/%E6%90%9C%E7%B4%A2.png)

### 获取歌词
B
binaryify 已提交
131
说明:调用此接口,传入音乐 id 可获得对应音乐的歌词(不需要登录)  
132 133 134 135 136

**必选参数:**  
`id`: 音乐 id  

**接口地址:**  
B
binaryify 已提交
137
`/lyric`  
138 139

**调用例子:**  
B
binaryify 已提交
140
`/lyric?id=347230`  
141

B
binaryify 已提交
142 143 144
返回数据如下图: 
![搜索音乐](https://raw.githubusercontent.com/Binaryify/NeteaseCloudMusicApi/master/static/%E6%AD%8C%E8%AF%8D.png)

145 146 147 148 149 150 151 152 153
### 获取评论
说明:调用此接口,传入歌音乐 id和 limit 参数, 可获得该音乐的所有评论(不需要登录)  

**必选参数:**  
`id`: 音乐 id  

**可选参数:**  
`limit`: 取出评论数量,默认为20  

154 155
`offset`: 偏移数量,用于分页,如:(评论页数-1)*20, 其中 20 为 limit 的值  

156 157 158 159 160 161 162 163 164
**接口地址:**
`/comment`  

**调用例子:**  
`/comment?id=186016&limit=1`  

返回数据如下图: 
![获取评论](https://raw.githubusercontent.com/Binaryify/NeteaseCloudMusicApi/master/static/comment.png)

165 166
### 获取歌手专辑列表
说明:调用此接口,传入歌手 id,可获得歌手专辑列表  
167 168 169 170 171

**必选参数:**  
`id`: 歌手 id 

**接口地址:**  
172
`/album`  
173 174

**调用例子:**  
175
`album?id=32311`  
176 177

返回数据如下图: 
178 179 180 181 182
![获取专辑](https://raw.githubusercontent.com/Binaryify/NeteaseCloudMusicApi/master/static/%E4%B8%93%E8%BE%91.png)




B
binaryify 已提交
183
### 获取每日推荐歌单
184 185 186
说明:调用此接口,可获得每日推荐歌单(需要登录)  

**接口地址:**  
B
binaryify 已提交
187
`/recommend/resource`  
188 189

**调用例子:**  
B
binaryify 已提交
190
`/recommend/resource`  
191

B
binaryify 已提交
192 193
返回数据如下图: 
![搜索音乐](https://raw.githubusercontent.com/Binaryify/NeteaseCloudMusicApi/master/static/%E6%8E%A8%E8%8D%90%E6%AD%8C%E5%8D%95.png)
194

B
binaryify 已提交
195
### 获取每日推荐歌曲
196 197 198
说明:调用此接口,可获得每日推荐歌曲(需要登录)  

**接口地址:**  
B
binaryify 已提交
199
`/recommend/songs`  
200 201

**调用例子:**  
B
binaryify 已提交
202
`/recommend/songs`  
203

B
binaryify 已提交
204 205 206
返回数据如下图: 
![搜索音乐](https://raw.githubusercontent.com/Binaryify/NeteaseCloudMusicApi/master/static/%E6%8E%A8%E8%8D%90%E6%AD%8C%E6%9B%B2.png)

B
binaryify 已提交
207
## 离线访问此文档
B
binaryify 已提交
208
此文档同时也是 Progressive Web Apps(PWA), 加入了serviceWorker,可离线访问
B
binaryify 已提交
209

B
binaryify 已提交
210 211 212 213 214

## 关于此文档
此文档由 [docsify](https://github.com/QingWei-Li/docsify/) 生成  
docsify 是一个动态生成文档网站的工具。不同于 GitBook、Hexo 的地方是它不会生成将 .md 转成 .html 文件,所有转换工作都是在运行时进行。

B
binaryify 已提交
215 216
## License
[The MIT License (MIT)](LICENSE)