39 KiB
Vendored
NeteaseCloudMusicApi
网易云音乐 NodeJS 版 API
灵感来自
工作原理
跨站请求伪造 (CSRF), 伪造请求头 , 调用官方 API
功能特性
- 登录
- 刷新登录
- 获取用户信息 , 歌单,收藏,mv, dj 数量
- 获取用户歌单
- 获取用户电台
- 获取用户关注列表
- 获取用户粉丝列表
- 获取用户动态
- 获取用户播放记录
- 获取精品歌单
- 获取歌单详情
- 搜索
- 搜索建议
- 获取歌词
- 歌曲评论
- 收藏单曲到歌单
- 专辑评论
- 歌单评论
- mv 评论
- 电台节目评论
- banner
- 获取歌曲详情
- 获取专辑内容
- 获取歌手单曲
- 获取歌手 mv
- 获取歌手专辑
- 获取歌手描述
- 获取相似歌手
- 获取相似歌单
- 相似 mv
- 获取相似音乐
- 获取最近 5 个听了这首歌的用户
- 获取每日推荐歌单
- 获取每日推荐歌曲
- 私人 FM
- 签到
- 喜欢音乐
- 垃圾桶
- 歌单 ( 网友精选碟 )
- 新碟上架
- 热门歌手
- 最新 mv
- 推荐 mv
- 推荐歌单
- 推荐新音乐
- 推荐电台
- 推荐节目
- 独家放送
- mv 排行
- 获取 mv 数据
- 播放 mv/视频
- 排行榜
- 歌手榜
- 云盘
- 电台 - 推荐
- 电台 - 分类
- 电台 - 分类推荐
- 电台 - 订阅
- 电台 - 详情
- 电台 - 节目
- 给评论点赞
- 获取动态
- 获取热搜
- 发送私信
- 发送私信歌单
- 新建歌单
- 收藏/取消收藏歌单
- 歌单分类
- 收藏的歌手列表
- 订阅的电台列表
- 相关歌单推荐
- 付费精选接口
- 音乐是否可用检查接口
- 登录状态
- 获取视频数据
- 发送/删除评论
- 热门评论
- 视频评论
- 退出登录
安装
$ git clone git@github.com:Binaryify/NeteaseCloudMusicApi.git
$ npm install
运行
$ node app.js
服务器启动默认端口为 3000, 若不想使用 3000 端口 , 可使用以下命令 : Mac/Linux
$ PORT=4000 node app.js
windows 下使用 git-bash 或者 cmder 等终端执行以下命令 :
$ set PORT=4000 && node app.js
可以使用代理
在 query 参数中加上 proxy=your-proxy 即可让这一次的请求使用 proxy
// 例子
const url = `http://localhost:3000/music/url?id=33894312&proxy=http://121.196.226.246:84`
fetch(url).then(function() {
// do what you want
})
// 结果
// {"data":[{"id":33894312,"url":"http://m10.music.126.net/20180104125640/930a968b3fb04908b733506b3833e60b/ymusic/0fd6/4f65/43ed/a8772889f38dfcb91c04da915b301617.mp3","br":320000,"size":10691439,"md5":"a8772889f38dfcb91c04da915b301617","code":200,"expi":1200,"type":"mp3","gain":-2.0E-4,"fee":0,"uf":null,"payed":0,"flag":0,"canExtend":false}],"code": 200}
Docker 容器运行
注意: 在 docker 中运行的时候, 由于使用了 request 来发请求, 所以会检查几个 proxy 相关的环境变量(如下所列), 这些环境变量 会影响到 request 的代理, 详情请参 考request 的文档, 如果这些环境变 量 指向的代理不可用, 那么就会造成错误, 所以在使用 docker 的时候一定要注意这些 环境变量. 不过, 要是你在 query 中加上了 proxy 参数, 那么环境变量会被覆盖, 就会 用你通过 proxy 参数提供的代理了.
request 相关的环境变量
- http_proxy
- https_proxy
- HTTP_PROXY
- HTTPS_PROXY
- no_proxy
- NO_PROXY
docker pull twesix/netease-cloud-music
docker run -d -p 3000:3000 --name netease-cloud-music twesix/netease-music-api
// 去掉或者设置相关的环境变量
docker run -d -p 3000:3000 --name netease-cloud-music -e http_proxy= -e https_proxy= -e no_proxy= -e HTTP_PROXY= -e HTTPS_PROXY= -e NO_PROXY= netease-cloud-music
由于 docker 镜像更新不是很及时,推荐自己 build, 以下为 build 镜像的方式
$ git clone https://github.com/Binaryify/NeteaseCloudMusicApi && cd NeteaseCloudMusicApi
$ sudo docker build . -t netease-music-api
$ sudo docker run -d -p 3000:3000 netease-music-api
接口文档
调用前须知
!> 为使用方便,降低门槛,登录接口直接使用了 get 明文请求,请按实际需求对源码修改
!> 由于接口做了缓存处理 ( 缓存 2 分钟 , 可在 app.js 设置 , 可能会导致登录后获取不
到 cookie), 相同的 url 会在两分钟内只向网易服务器发一次请求 , 如果遇到不需要缓
存结果的接口 , 可在请求 url 后面加一个时间戳参数使 url 不同 , 例子 :
/simi/playlist?id=347230×tamp=1503019930000
!> 如果是跨域请求 , 请在所有请求带上 xhrFields: { withCredentials: true }
否则
可能会因为没带上 cookie 导致 301, 具体例子可看 public/test.html
, 例子使用 jQuery, axios 版本也类似
!> 301 错误基本都是没登录就调用了需要登录的接口,如果登录了还是提示 301, 基本都是缓存把数据缓存起来了,解决方法是等待 2 分钟或者重启服务重新登录后再调用接口
!> 部分接口如登录接口不能调用太频繁 , 否则可能会触发 503 错误或者 ip 高频错误 ,若需频繁调用 , 需要准备 IP 代理池 (更新:已加入缓存机制,但仍需注意).
!> 本项目仅供学习使用 , 文档可能会有缓存 , 如果文档版本和 github 上的版本不一致,请清除缓存再查看
!> 由于网易限制,此项目在国外服务器上使用会受到限制,如需解决 , 可使用大陆服务器或者使用代理 , 感谢 @hiyangguo提出的解决方法:
在 'util.js' 的 'headers' 处增加 X-Real-IP':'211.161.244.70' // 任意国内 IP
即可解决
登录
说明 : 登录有两个接口
1. 手机登录
必选参数 : phone
: 手机号码 password
: 密码
接口地址 : /login/cellphone
调用例子 : /login/cellphone?phone=xxx&password=yyy
2. 邮箱登录
~~ 注意 : 此接口被网易和谐了 , 待修复 , 暂时使用手机登录 (2017.05.20)~~
更新 : 此接口已经可以正常使用(2018.07.03)
必选参数 : email
: 163 网易邮箱 password
: 密码
接口地址 : /login
调用例子 : /login?email=xxx@163.com&password=yyy
完成登录后 , 会在浏览器保存一个 Cookies 用作登录凭证 , 大部分 API 都需要用到这个 Cookies
注意
调用登录接口的速度比调用其他接口慢 , 因为登录过程调用了加密算法
刷新登录
说明 : 调用此接口 , 可刷新登录状态
调用例子 : /login/refresh
退出登录
说明 : 调用此接口 , 可退出登录
调用例子 : /logout
登录状态
说明 : 调用此接口,可获取登录状态
获取用户详情
说明 : 登录后调用此接口 , 传入用户 id, 可以获取用户详情
必选参数 : uid
: 用户 id
接口地址 : /user/detail
调用例子 : /user/detail?uid=32953014
获取用户信息 , 歌单,收藏,mv, dj 数量
说明 : 登录后调用此接口 , 可以获取用户信息
接口地址 : /user/subcount
调用例子 : /user/subcount
更新用户信息
说明 : 登录后调用此接口 , 传入相关信息,可以更新用户信息
必选参数 :
gender: 性别 0:保密 1:男性 2:女性
birthday: 出生日期,时间戳 unix timestamp
nickname: 用户昵称
province: 省份id
city: 城市id
signature:用户签名
接口地址 : /user/subcount
调用例子 : /user/update/?gender=0&signature=测试签名&city=440300&nickname=binary&birthday=1525918298004&province=440000
获取用户歌单
说明 : 登录后调用此接口 , 传入用户 id, 可以获取用户歌单
必选参数 : uid
: 用户 id
接口地址 : /user/playlist
调用例子 : /user/playlist?uid=32953014
更新歌单
说明 : 登录后调用此接口,可以更新用户歌单 参数:
id:歌单id
name:歌单名字
desc:歌单描述
tags:歌单tag
接口地址 : /playlist/update
调用例子 : /playlist/update/?id=24381616&name=新歌单&desc=描述&tags=学习
发送私信
说明 : 登录后调用此接口 , 传入用户 id 和要发送的信息, 可以发送私信,返回内容为历史私信,包含带歌单的私信信息(注:不能发送私信给自己)
必选参数 :
user_ids
: 用户 id,多个需用逗号隔开
msg
: 要发送的信息
接口地址 : /send/text
调用例子 : /send/text?user_ids=32953014&msg=test
,/send/text?user_ids=32953014,475625142&msg=test
返回数据如下图:
发送私信(带歌单)
说明 : 登录后调用此接口 , 传入用户 id 和要发送的信息和歌单 id, 可以发送带歌单的私信(注:不能发送重复的歌单)
必选参数 :
user_ids
: 用户 id,多个需用逗号隔开
msg
: 要发送的信息
接口地址 : /send/playlist
调用例子 : /send/playlist?msg=test&user_ids=475625142&playlist=705123491
,/send/playlist?msg=test2&user_ids=475625142,32953014&playlist=705123493
返回数据如下图:
获取用户电台
说明 : 登录后调用此接口 , 传入用户 id, 可以获取用户电台
必选参数 : uid
: 用户 id
接口地址 : /user/dj
调用例子 : /user/dj?uid=32953014
获取用户关注列表
说明 : 登录后调用此接口 , 传入用户 id, 可以获取用户关注列表
必选参数 : uid
: 用户 id
可选参数 :
limit
: 返回数量 , 默认为 30
offset
: 偏移数量,用于分页 , 如- 如 :( 页数 -1)*30, 其中 30 为 limit 的值 , 默认为 0
接口地址 : /user/follows
调用例子 : /user/follows?uid=32953014
获取用户粉丝列表
说明 : 登录后调用此接口 , 传入用户 id, 可以获取用户粉丝列表
必选参数 : uid
: 用户 id
- 可选参数 :
limit
: 返回数量 , 默认为 30offset
: 偏移数量,用于分页 , 如 - 如 :( 页数 -1)*30, 其中 30 为 limit 的值 , 默认为 0
接口地址 : /user/followeds
调用例子 : /user/followeds?uid=32953014
获取用户动态
说明 : 登录后调用此接口 , 传入用户 id, 可以获取用户动态
必选参数 : uid
: 用户 id
接口地址 : /user/event
调用例子 : /user/event?uid=32953014
获取用户播放记录
说明 : 登录后调用此接口 , 传入用户 id, 可获取用户播放记录
必选参数 : uid
: 用户 id
可选参数 : type
: type=1 时只返回 weekData, type=0 时返回 allData
接口地址 : /user/record
调用例子 : /user/record?uid=32953014&type=1
获取动态消息
说明 : 调用此接口 , 可获取各种动态 , 对应网页版网易云,朋友界面里的各种动态消息 ,如分享的视频,音乐,照片等!
必选参数 : 未知
接口地址 : /event
调用例子 : /event
歌手分类列表
说明 : 调用此接口,可获取歌手分类列表
必选参数 : cat
: 即 category Code,歌手类型,默认 1001,返回华语男歌手数据
可选参数 :
limit
: 返回数量 , 默认为 30
offset
: 偏移数量,用于分页 , 如- 如 :( 页数 -1)*30, 其中 30 为 limit 的值 , 默认为 0
initial
: 按首字母索引查找参数,如/artist/list?cat=1001&initial=b
返回内容将以 name 字段开头为 b 或者拼音开头为 b 为顺序排列
category Code 取值:
入驻歌手 5001
华语男歌手 1001
华语女歌手 1002
华语组合/乐队 1003
欧美男歌手 2001
欧美女歌手 2002
欧美组合/乐队 2003
日本男歌手 6001
日本女歌手 6002
日本组合/乐队 6003
韩国男歌手 7001
韩国女歌手 7002
韩国组合/乐队 7003
其他男歌手 4001
其他女歌手 4002
其他组合/乐队 4003
接口地址 : /artist/list
调用例子 : /artist/list?cat=1001
收藏歌手
说明 : 调用此接口,可收藏歌手
必选参数 : artistId
: 歌手 id
接口地址 : /artist/sub
调用例子 : /artist/sub?id=6452
取消收藏歌手
说明 : 调用此接口,可取消收藏歌手
必选参数 : artistId
: 歌手 id
接口地址 : /artist/unsub
调用例子 : /artist/unsub?id=6452
收藏的歌手列表
说明 : 调用此接口,可获取收藏的歌手列表
接口地址 : /artist/sublist
调用例子 : /artist/sublist
歌单分类
说明 : 调用此接口,可获取歌单分类,包含 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
返回数据如下图 :
获取精品歌单
说明 : 调用此接口 , 可获取精品歌单
可选参数 : cat
: tag, 比如 " 华语 "、" 古风 " 、" 欧美 "、" 流行 ", 默认为
"全部",可从歌单分类接口获取(/playlist/catlist)
limit
: 取出歌单数量 , 默认为 20
接口地址 : /top/playlist/highquality
调用例子 : /top/playlist/highquality?limit=30
相关歌单推荐
说明 : 调用此接口,传入歌单 id 可获取相关歌单(对应页面 https://music.163.com/#/playlist?id=1)
必选参数 : id
: 歌单 id
接口地址 : /related/playlist
调用例子 : /related/playlist?id=1
获取歌单详情
说明 : 歌单能看到歌单名字 , 但看不到具体歌单内容 , 调用此接口 , 传入歌单 id, 可 以获取对应歌单内的所有的音乐
必选参数 : id
: 歌单 id
可选参数 : s
: 歌单最近的 s 个收藏者
接口地址 : /playlist/detail
调用例子 : /playlist/detail?id=24381616
获取音乐 url
说明 : 使用歌单详情接口后 , 能得到的音乐的 id, 但不能得到的音乐 url, 调用此接口 , 传入的音乐 id( 可多个 , 用逗号隔开 ), 可以获取对应的音乐的 url( 不需要登录 )
注 : 部分用户反馈获取的 url 会 403,hwaphon找到的 解决方案是当获取到音乐的 id 后,将 https://music.163.com/song/media/outer/url?id=id.mp3 以 src 赋予 Audio 即可播放
必选参数 : id
: 音乐 id
可选参数 : br
: 码率,默认设置了 999000 即最大码率,如果要 320k 则可设置为 320000,其他类推
接口地址 : /music/url
调用例子 : /music/url?id=33894312
/music/url?id=405998841,33894312
音乐是否可用
说明: 调用此接口,传入歌曲 id, 可获取音乐是否可用,返回 { success: true, message: 'ok' }
或者 { success: false, message: '亲爱的,暂无版权' }
必选参数 : id
: 歌曲 id
可选参数 : br
: 码率,默认设置了 999000 即最大码率,如果要 320k 则可设置为 320000,其他类推
接口地址 : /check/music
调用例子 : /check/music?id=33894312
搜索
说明 : 调用此接口 , 传入搜索关键词可以搜索该音乐 / 专辑 / 歌手 / 歌单 / 用户 ,
关键词可以多个 , 以空格隔开 , 如 " 周杰伦 搁浅 "( 不需要登录 ), 搜索获取的
mp3url 不能直接用 , 可通过 /music/url
接口传入歌曲 id 获取具体的播放链接
必选参数 : keywords
: 关键词
- 可选参数 :
limit
: 返回数量 , 默认为 30offset
: 偏移数量,用于分页 , 如 - 如 :( 页数 -1)*30, 其中 30 为 limit 的值 , 默认为 0
type
: 搜索类型;默认为 1 即单曲 , 取值意义 : 1: 单曲, 10: 专辑, 100: 歌手, 1000:
歌单, 1002: 用户, 1004: MV, 1006: 歌词, 1009: 电台, 1014: 视频
接口地址 : /search
调用例子 : /search?keywords= 海阔天空
热搜
说明 : 调用此接口,可获取热门搜索列表
接口地址 : /search/hot
调用例子 : /search/hot
搜索建议
说明 : 调用此接口 , 传入搜索关键词可获得搜索建议 , 搜索结果同时包含单曲 , 歌手 , 歌单 ,mv 信息
必选参数 : keywords
: 关键词
可选参数 :
limit
: 返回数量 , 默认为 30
offset
: 偏移数量,用于分页 , 如- 如 :( 页数 -1)*30, 其中 30 为 limit 的值 , 默认为 0
type
: 搜索类型;默认为 1 即单曲 , 取值意义 : 1: 单曲 10: 专辑 100: 歌手 1000:
歌单 1002: 用户 1004: MV 1006: 歌词 1009: 电台
接口地址 : /search/suggest
调用例子 : /search/suggest?keywords= 海阔天空
搜索多重匹配
说明 : 调用此接口 , 传入搜索关键词可获得搜索结果
必选参数 : keywords
: 关键词
接口地址 : /search/multimatch
调用例子 : /search/multimatch?keywords= 海阔天空
新建歌单
说明 : 调用此接口 , 传入歌单名字可新建歌单
必选参数 : name
: 歌单名
接口地址 : /playlist/create
调用例子 : /playlist/create?name=测试歌单
收藏/取消收藏歌单
说明 : 调用此接口 , 传入类型和歌单 id 可收藏歌单或者取消收藏歌单
必选参数 :
t
: 类型,1:收藏,2:取消收藏
id
: 歌单 id
接口地址 : /playlist/subscribe
调用例子 : /playlist/subscribe?t=1&id=106697785
/playlist/subscribe?t=2&id=106697785
对歌单添加或删除歌曲
说明 : 调用此接口 , 可以添加歌曲到歌单或者从歌单删除某首歌曲 ( 需要登录 )
必选参数 :
op
: 从歌单增加单曲为 add, 删除为 del
pid
: 歌单 id
tracks
: 歌曲 id,可多个,用逗号隔开
接口地址 : /playlist/tracks
调用例子 : /playlist/tracks?op=add&pid=24381616&tracks=347231
( 对应把歌曲添加到 ' 我 ' 的歌单 , 测试的时候请把这里的 pid 换成你自己的, id 和 tracks 不对可能会报 502 错误)
获取歌词
说明 : 调用此接口 , 传入音乐 id 可获得对应音乐的歌词 ( 不需要登录 )
必选参数 : id
: 音乐 id
接口地址 : /lyric
调用例子 : /lyric?id=33894312
歌曲评论
说明 : 调用此接口 , 传入音乐 id 和 limit 参数 , 可获得该音乐的所有评论 ( 不需要 登录 )
必选参数 : id
: 音乐 id
可选参数 : limit
: 取出评论数量 , 默认为 20
offset
: 偏移数量 , 用于分页 , 如 :( 评论页数 -1)*20, 其中 20 为 limit 的值
接口地址 : /comment/music
调用例子 : /comment/music?id=186016&limit=1
对应晴天评论
专辑评论
说明 : 调用此接口 , 传入音乐 id 和 limit 参数 , 可获得该专辑的所有评论 ( 不需要 登录 )
必选参数 : id
: 专辑 id
可选参数 : limit
: 取出评论数量 , 默认为 20
offset
: 偏移数量 , 用于分页 , 如 :( 评论页数 -1)*20, 其中 20 为 limit 的值
接口地址 : /comment/album
调用例子 : /comment/album?id=32311
歌单评论
说明 : 调用此接口 , 传入音乐 id 和 limit 参数 , 可获得该歌单的所有评论 ( 不需要 登录 )
必选参数 : id
: 歌单 id
可选参数 : limit
: 取出评论数量 , 默认为 20
offset
: 偏移数量 , 用于分页 , 如 :( 评论页数 -1)*20, 其中 20 为 limit 的值
接口地址 : /comment/playlist
调用例子 : /comment/playlist?id=705123491
mv 评论
说明 : 调用此接口 , 传入音乐 id 和 limit 参数 , 可获得该 mv 的所有评论 ( 不需要 登录 )
必选参数 : id
: mv id
可选参数 : limit
: 取出评论数量 , 默认为 20
offset
: 偏移数量 , 用于分页 , 如 :( 评论页数 -1)*20, 其中 20 为 limit 的值
接口地址 : /comment/mv
调用例子 : /comment/mv?id=5436712
电台节目评论
说明 : 调用此接口 , 传入音乐 id 和 limit 参数 , 可获得该 电台节目 的所有评论 ( 不需要登录 )
必选参数 : id
: 电台节目的 id
可选参数 : limit
: 取出评论数量 , 默认为 20
offset
: 偏移数量 , 用于分页 , 如 :( 评论页数 -1)*20, 其中 20 为 limit 的值
接口地址 : /comment/dj
调用例子 : /comment/dj?id=794062371
视频评论
说明 : 调用此接口 , 传入音乐 id 和 limit 参数 , 可获得该 视频 的所有评论 ( 不需要登录 )
必选参数 : id
: 视频的 id
可选参数 : limit
: 取出评论数量 , 默认为 20
offset
: 偏移数量 , 用于分页 , 如 :( 评论页数 -1)*20, 其中 20 为 limit 的值
接口地址 : /comment/video
调用例子 : /comment/video?id=89ADDE33C0AAE8EC14B99F6750DB954D
热门评论
说明 : 调用此接口 , 传入 type, 资源 id 可获得对应资源热门评论 ( 不需要登录 )
必选参数 :
id
: 资源 id
type
: 数字 , 资源类型 , 对应歌曲 , mv, 专辑 , 歌单 , 电台, 视频对应以下类型
0: 歌曲
1: mv
2: 歌单
3: 专辑
4: 电台
5: 视频
接口地址 : /comment/hot
调用例子 : /comment/hot?id=186016&type=0
给评论点赞
说明 : 调用此接口 , 传入 type, 资源 id, 和评论 id cid 和 是否点赞参数 t 即可给对 应评论点赞 ( 需要登录 )
必选参数 : id
: 资源 id, 如歌曲 id,mv id
cid
: 评论 id
t
: 是否点赞 ,1 为点赞 ,0 为取消点赞
type
: 数字 , 资源类型 , 对应歌曲 , mv, 专辑 , 歌单 , 电台, 视频对应以下类型
0: 歌曲
1: mv
2: 歌单
3: 专辑
4: 电台
5: 视频
接口地址 : comment/like
调用例子 : /comment/like?id=29178366&cid=12840183&t=1&type=0
对应给 https://music.163.com/#/song?id=29178366 最热门的评论点赞
发送/删除评论
说明 : 调用此接口,可发送评论或者删除评论
接口地址 : /comment
-
发送评论
必选参数
action
:1 发送type
: 数字,资源类型,对应歌曲,mv,专辑,歌单,电台,视频对应以下类型0: 歌曲 1: mv 2: 歌单 3: 专辑 4: 电台 5: 视频
id
:对应资源 idcontent
:要发送的内容调用例子 :
/comment?action=1&type=1&id=5436712&content=test
(往广岛之恋 mv 发送评论: test) -
删除评论
必选参数
action
:0 删除type
: 数字,资源类型,对应歌曲,mv,专辑,歌单,电台,视频对应以下类型0: 歌曲 1: mv 2: 歌单 3: 专辑 4: 电台 5: 视频
id
:对应资源 idcontent
:内容 id,可通过/comment/mv
等接口获取调用例子 :
/comment?action=0&type=1&id=5436712&commentId=1535550516319
(在广岛之恋 mv 删除评论)
banner
说明 : 调用此接口 , 可获取 banner( 轮播图 ) 数据注 : 因参数未知 , 只能获取比较旧 的数据 , 如果有知道参数的小伙伴 , 可提交 PR
接口地址 : /banner
调用例子 : /banner
获取歌曲详情
说明 : 调用此接口 , 传入音乐 id, 可获得歌曲详情(注意:歌曲封面现在需要通过专辑内容接口获取)
必选参数 : ids
: 音乐 id, 如 ids=347230
接口地址 : /song/detail
调用例子 : /song/detail?ids=347230
获取专辑内容
说明 : 调用此接口 , 传入专辑 id, 可获得专辑内容
必选参数 : id
: 专辑 id
接口地址 : /album
调用例子 : /album?id=32311
获取歌手单曲
说明 : 调用此接口 , 传入歌手 id, 可获得歌手部分信息和热门歌曲
必选参数 : id
: 歌手 id, 可由搜索接口获得
接口地址 : /artists
调用例子 : /artists?id=6452
获取歌手 mv
说明 : 调用此接口 , 传入歌手 id, 可获得歌手 mv 信息 , 具体 mv 播放地址可调
用/mv
传入此接口获得的 mvid 来拿到 , 如 :
/artist/mv?id=6452
,/mv?mvid=5461064
必选参数 : id
: 歌手 id, 可由搜索接口获得
接口地址 : /artist/mv
调用例子 : /artist/mv?id=6452
获取歌手专辑
说明 : 调用此接口 , 传入歌手 id, 可获得歌手专辑内容
必选参数 : id
: 歌手 id
可选参数 : limit
: 取出数量 , 默认为 50
offset
: 偏移数量 , 用于分页 , 如 :( 页数 -1)*50, 其中 50 为 limit 的值 , 默认
为 0
接口地址 : /artist/album
调用例子 : /artist/album?id=6452&limit=30
( 周杰伦 )
获取歌手描述
说明 : 调用此接口 , 传入歌手 id, 可获得歌手描述
必选参数 : id
: 歌手 id
接口地址 : /artist/desc
调用例子 : /artist/desc?id=6452
( 周杰伦 )
获取相似歌手
说明 : 调用此接口 , 传入歌手 id, 可获得相似歌手
必选参数 : id
: 歌手 id
接口地址 : /simi/artist
调用例子 : /simi/artist?id=6452
( 对应和周杰伦相似歌手 )
获取相似歌单
说明 : 调用此接口 , 传入歌曲 id, 可获得相似歌单
必选参数 : id
: 歌曲 id
接口地址 : /simi/playlist
调用例子 : /simi/playlist?id=347230
( 对应 ' 光辉岁月 ' 相似歌单 )
相似 mv
说明 : 调用此接口 , 传入 mvid
可获取相似 mv
必选参数 : mvid
: mv id
接口地址 : /simi/mv
调用例子 : /simi/mv?mvid=5436712
获取相似音乐
说明 : 调用此接口 , 传入歌曲 id, 可获得相似歌曲
必选参数 : id
: 歌曲 id
接口地址 : /simi/song
调用例子 : /simi/song?id=347230
( 对应 ' 光辉岁月 ' 相似歌曲 )
获取最近 5 个听了这首歌的用户
说明 : 调用此接口 , 传入歌曲 id, 最近 5 个听了这首歌的用户
必选参数 : id
: 歌曲 id
接口地址 : /simi/user
调用例子 : /simi/user?id=347230
( 对应 ' 光辉岁月 ' 相似歌曲 )
获取每日推荐歌单
说明 : 调用此接口 , 可获得每日推荐歌单 ( 需要登录 )
接口地址 : /recommend/resource
调用例子 : /recommend/resource
获取每日推荐歌曲
说明 : 调用此接口 , 可获得每日推荐歌曲 ( 需要登录 )
接口地址 : /recommend/songs
调用例子 : /recommend/songs
私人 FM
说明 : 私人 FM( 需要登录 )
接口地址 : /personal_fm
调用例子 : /personal_fm
返回数据如下图 :
签到
说明 : 调用此接口 , 传入签到类型 ( 可不传 , 默认安卓端签到 ), 可签到 ( 需要登录 ), 其中安卓端签到可获得 3 点经验 , web/PC 端签到可获得 2 点经验
可选参数 : type
: 签到类型 , 默认 0, 其中 0 为安卓端签到 ,1 为 web/PC 签到
接口地址 : /daily_signin
调用例子 : /daily_signin
返回数据如下图 :
喜欢音乐
说明 : 调用此接口 , 传入音乐 id, 可喜欢该音乐
必选参数 : id
: 歌曲 id
可选参数 : like
: 布尔值 , 默认为 true 即喜欢 , 若传 false, 则取消喜欢
接口地址 : /like
调用例子 : /like?id=347230
返回数据如下图 :
喜欢成功则返回数据的 code 为 200, 其余为失败
垃圾桶
说明 : 调用此接口 , 传入音乐 id, 可把该音乐从私人 FM 中移除至垃圾桶
必选参数 : id
: 歌曲 id
接口地址 : /fm_trash
调用例子 : /fm_trash?id=347230
返回数据如下图 :
新碟上架
说明 : 调用此接口 , 可获取新碟上架列表 , 如需具体音乐信息需要调用获取专辑列表接
口 /album
, 然后传入 id, 如 /album?id=32311&limit=30
可选参数 : limit
: 取出数量 , 默认为 50
offset
: 偏移数量 , 用于分页 , 如 :( 页数 -1)*50, 其中 50 为 limit 的值 , 默认
为 0
接口地址 : /top/album
调用例子 : /top/album?offset=0&limit=30
返回数据如下图 :
热门歌手
说明 : 调用此接口 , 可获取热门歌手数据
可选参数 : limit
: 取出数量 , 默认为 50
offset
: 偏移数量 , 用于分页 , 如 :( 页数 -1)*50, 其中 50 为 limit 的值 , 默认
为 0
接口地址 : /top/artists
调用例子 : /top/artists?offset=0&limit=30
返回数据如下图 :
最新 mv
说明 : 调用此接口 , 可获取最新 mv
可选参数 : limit
: 取出数量 , 默认为 30
接口地址 : /mv/first
调用例子 : /mv/first?limit=10
推荐 mv
说明 : 调用此接口 , 可获取推荐 mv
接口地址 : /personalized/mv
调用例子 : /personalized/mv
推荐歌单
说明 : 调用此接口 , 可获取推荐歌单
接口地址 : /personalized
调用例子 : /personalized
推荐新音乐
说明 : 调用此接口 , 可获取推荐新音乐
接口地址 : /personalized/newsong
调用例子 : /personalized/newsong
推荐电台
说明 : 调用此接口 , 可获取推荐电台
接口地址 : /personalized/djprogram
调用例子 : /personalized/djprogram
推荐节目
说明 : 调用此接口 , 可获取推荐电台
接口地址 : /program/recommend
调用例子 : /program/recommend
独家放送
说明 : 调用此接口 , 可获取独家放送
接口地址 : /personalized/privatecontent
调用例子 : /personalized/privatecontent
mv 排行
说明 : 调用此接口 , 可获取 mv 排行
可选参数 : limit
: 取出数量 , 默认为 30
offset
: 偏移数量 , 用于分页 , 如 :( 页数 -1)*30, 其中 30 为 limit 的值 , 默认
为 0
接口地址 : top/mv
调用例子 : top/mv?limit=10
获取 mv 数据
说明 : 调用此接口 , 传入 mvid ( 在搜索音乐的时候传 type=1004 获得 ) , 可获取对应 MV 数据 , 数据包含 mv 名字 , 歌手 , 发布时间 , mv 视频地址等数据 , 其中 mv 视频 网易做了防盗链处理 , 可能不能直接播放 , 需要播放的话需要调用 ' 播放 mv/视频' 接口
必选参数 : mvid
: mv 的 id
接口地址 : /mv
调用例子 : /mv?mvid=5436712
返回数据如下图 :
获取视频数据
说明 : 调用此接口 , 传入视频的 id ( 在搜索音乐的时候传 type=1014 获得 ) , 可获取对应 视频数据,其中视频网易做了防盗链处理 , 可能不能直接播放 , 需要播放的话需要调用 ' 播放 mv/视频' 接口
必选参数 : id
: 视频 的 id
接口地址 : /video
调用例子 : /video?id=89ADDE33C0AAE8EC14B99F6750DB954D
返回数据如下图 :
播放 mv/视频
说明 : 调用此接口 , 传入 mv/视频 地址 , 可播放 mv/视频, 也可将接口嵌入 video 标签使用 , 由 于使用了 'pipe', 进度条无法通过拖动进度条控制进度 , 如有解决方案可提出 PR 或者自 行改造
可选参数 : url
: mv/视频 的 地址
接口地址 : /mv/url
调用例子 :
/mv/url?url=http://v4.music.126.net/20170422034915/c98eab2f5e2c85fc8de2ab3f0f8ed1c6/web/cloudmusic/MjQ3NDQ3MjUw/89a6a279dc2acfcd068b45ce72b1f560/533e4183a709699d566180ed0cd9abe9.mp4
如下图 :
排行榜
说明 : 调用此接口 , 传入数字 idx, 可获取不同排行榜
必选参数 : idx
: 对象 key, 对应以下排行榜
"0": 云音乐新歌榜,
"1": 云音乐热歌榜,
"2": 网易原创歌曲榜,
"3": 云音乐飙升榜,
"4": 云音乐电音榜,
"5": UK排行榜周榜,
"6": 美国Billboard周榜
"7": KTV嗨榜,
"8": iTunes榜,
"9": Hit FM Top榜,
"10": 日本Oricon周榜
"11": 韩国Melon排行榜周榜,
"12": 韩国Mnet排行榜周榜,
"13": 韩国Melon原声周榜,
"14": 中国TOP排行榜(港台榜),
"15": 中国TOP排行榜(内地榜)
"16": 香港电台中文歌曲龙虎榜,
"17": 华语金曲榜,
"18": 中国嘻哈榜,
"19": 法国 NRJ EuroHot 30周榜,
"20": 台湾Hito排行榜,
"21": Beatport全球电子舞曲榜,
"22": 云音乐ACG音乐榜,
"23": 云音乐嘻哈榜
接口地址 : /top/list
调用例子 : /top/list?idx=6
返回数据如下图 :
歌手榜
说明 : 调用此接口 , 可获取 PC 版排行榜中的歌手榜
接口地址 : /toplist/artist
调用例子 : /toplist/artist
云盘
说明 : 登录后调用此接口 , 可获取云盘数据 , 获取的数据没有对应 url, 需要再调用一
次 /music/url
获取 url
接口地址 : /user/cloud
调用例子 : /user/cloud
电台 - 推荐
说明 : 登录后调用此接口 , 可获得推荐电台
接口地址 : /dj/recommend
调用例子 : /dj/recommend
电台 - 分类
说明 : 登录后调用此接口 , 可获得电台类型
接口地址 : /dj/catelist
调用例子 : /dj/catelist
电台 - 分类推荐
说明 : 登录后调用此接口 , 可获得推荐电台
必选参数 : type
: 电台类型 , 数字 , 可通过/dj/catelist
获取 , 对应关系为
id 对应 此接口的 type, name 对应类型意义
接口地址 : /dj/recommend/type
调用例子 : /dj/recommend/type?type=1
电台 - 订阅
说明 : 登录后调用此接口 , 传入rid
, 可订阅 dj,dj 的 rid
可通过搜索指定
type='1009' 获取其 id, 如/search?keywords= 代码时间 &type=1009
必选参数 : rid
: 电台 的 id
接口地址 : /dj/sub
调用例子 : /dj/sub?rid=336355127&t=1
( 对应关注 ' 代码时间 ')
/dj/sub?rid=336355127&t=0
( 对应取消关注 ' 代码时间 ')
电台的订阅列表
说明 : 登录后调用此接口 , 可获取订阅的电台列表
接口地址 : /dj/sublist
调用例子 : /dj/sublist
电台 - 付费精选
说明 : 可以获取付费精选的电台列表 , 传入 limit
和 offset
可以进行分页
接口地址 : /dj/paygift
调用例子 : /dj/paygift?limit=10&offset=20
电台 - 详情
说明 : 登录后调用此接口 , 传入rid
, 可获得对应电台的详情介绍
必选参数 : rid
: 电台 的 id
接口地址 : /dj/detail?rid=336355127
调用例子 : /dj/detail?rid=336355127
( 对应 ' 代码时间 ' 的详情介绍 )
电台 - 节目
说明 : 登录后调用此接口 , 传入rid
, 可查看对应电台的电台节目以及对应的 id, 需要
注意的是这个接口返回的 mp3Url 已经无效 , 都为 null, 但是通过调用 /music/url
这
个接口 , 传入节目 mainTrackId 仍然能获取到节目音频 , 如 /music/url?id=478446370
获取代
码时间的一个节目的音频
必选参数 : rid
: 电台 的 id
可选参数 :
limit
: 返回数量 , 默认为 30
offset
: 偏移数量,用于分页 , 如- 如 :( 页数 -1)*30, 其中 30 为 limit 的值 , 默认为 0
接口地址 : /dj/program
调用例子 : /dj/program?rid=336355127&limit=40
( 对应 ' 代码时间 ' 的节目列表 )
离线访问此文档
此文档同时也是 Progressive Web Apps(PWA), 加入了 serviceWorker, 可离线访问
关于此文档
此文档由 docsify 生成 docsify 是一个动 态生成文档网站的工具。不同于 GitBook、Hexo 的地方是它不会生成将 .md 转成 .html 文件,所有转换工作都是在运行时进行。