网易云api你了解过吗
前言
大家好,我是小阵 🔥,一路奔波不停的码字业务员 身为一个前端小菜鸟,总是有一个飞高飞远的梦想,因此,每点小成长,我都想要让它变得更有意义,为了自己,也为了更多值得的人 如果喜欢我的文章,可以关注 ➕ 点赞,与我一同成长吧~😋 加我微信:zzz886885,邀你进群,一起学习交流,摸鱼学习两不误🌟
开开心心学技术大法~~
来了来了,他真的来了~
正文
想必大家都或多或少的接触过各位大神的开源音乐平台,比如YesPlayMusic,他们是怎样被搞出来的呢?
网易云api可以做到什么
-
想实现一个属于自己的音乐播放器吗?
-
想实现一个属于自己的FM吗?
-
想实现一个属于自己的基于网易云音乐的评论平台吗?
-
想实现一个属于自己的短视频播放平台吗?
-
如果你又上面的任意需求,都可以研究下网易云api!
api使用
本质上,api的调用需要跨站请求伪造 (CSRF), 伪造请求头 , 调用官方 API
- 将平台代码拉到本地启动node之后来使用
安装
$ git clone git@github.com:Binaryify/NeteaseCloudMusicApi.git
$ npm install
启动
$ node app.js
调用
const url = `http://localhost:3000/song/url?id=33894312&proxy=http://121.196.226.246:84`
fetch(url).then(function () {
// do what you want
})
可以看到,即便是通过请求直接调用,也需要依赖一个base服务
- 用平台已经封装好的node包
NeteaseCloudMusicApi
直接调用
const { login_cellphone, user_cloud } = require('NeteaseCloudMusicApi')
async function main() {
try {
const result = await login_cellphone({ phone: '手机号', password: '密码', })
console.log(result);
const result2 = await user_cloud({ cookie: result.body.cookie, // 凭证 }); console.log(result2.body)
} catch (error) {
console.log(error)
} }
main()
关键api
可以看到网易云的api非常的多,我们篇幅有限,仅介绍几个关键api,抛下砖,引下玉而已。
登陆
如果不登录网易云的话,基本除了用户相关的api,其他的都可以正常调用,但是返回数据却不如登陆之后那样精准。
更有一些接口,比如获取音乐url的接口/song/url?id=33894312
,虽然可以正常返回数据,但是却基本都是只有试听内容。
所以登录功能也是很有必要的。
获取歌单列表
依赖登陆token
- 接口:
/login/cellphone
- 入参:
- 必选参数:
phone
: 手机号码password
: 密码
- 可选参数:
countrycode
: 国家码,用于国外手机号登录,例如美国传入:1
md5_password
: md5 加密后的密码,传入后password
参数将失效
- 必选参数:
示例:
/login/cellphone?phone=xxx&password=yyy
/login/cellphone?phone=xxx&md5_password=yyy
/login/cellphone?phone=xxx&captcha=1234
获取用户歌单
说明 : 登录后调用此接口 , 传入用户 id, 可以获取用户歌单
-
接口:
/user/playlist
-
必选参数 :
uid
: 用户 id -
可选参数 :
-
limit
: 返回数量 , 默认为 30 -
offset
: 偏移数量,用于分页 , 如 :( 页数 -1)*30, 其中 30 为 limit 的值 , 默认为 0
-
示例 : /user/playlist?uid=32953014
获取歌词
说明 : 调用此接口 , 传入音乐 id 可获得对应音乐的歌词 ( 不需要登录 )
-
接口 :
/lyric
-
必选参数 :
id
: 音乐 id -
示例 :
/lyric?id=33894312
获取歌曲url
-
接口 :
/song/url
-
必选参数 :
id
: 音乐 id -
可选参数 :
br
: 码率,默认设置了 999000 即最大码率,如果要 320k 则可设置为 320000,其他类推
-
示例 :
/song/url?id=33894312
/song/url?id=405998841,33894312
获取热门评论
说明 : 调用此接口 , 传入 type, 资源 id 可获得对应资源热门评论 ( 不需要登录 )
-
接口地址 :
/comment/hot
-
必选参数 :
id
: 资源 idtype
: 数字 , 资源类型 , 对应歌曲 , mv, 专辑 , 歌单 , 电台, 视频对应以下类型
0: 歌曲
1: mv
2: 歌单
3: 专辑
4: 电台
5: 视频
-
可选参数 :
limit
: 取出评论数量 , 默认为 20offset
: 偏移数量 , 用于分页 , 如 :( 评论页数 -1)*20, 其中 20 为 limit 的值before
: 分页参数,取上一页最后一项的time
获取下一页数据(获取超过 5000 条评论的时候需要用到)
-
示例 :
/comment/hot?id=186016&type=0
获取全部视频列表
说明 : 调用此接口,可获取视频分类列表,分页参数只能传入 offset
-
接口 :
/video/timeline/all
-
可选参数 :
offset
: 默认 0 -
调用例子 :
/video/timeline/all
其他的各位可以直接上官网去看,中文文档随便一看就可以上手。完整文档
结语
往期好文推荐「我不推荐下,大家可能就错过了史上最牛逼vscode插件集合
啦!!!(嘎嘎嘎~)😄」