diff --git a/.npmignore b/.npmignore index 1d6a290..3c3629e 100644 --- a/.npmignore +++ b/.npmignore @@ -1,4 +1 @@ -static -docs node_modules -module_example diff --git a/README.MD b/README.MD index 4e25bb7..749069e 100644 --- a/README.MD +++ b/README.MD @@ -131,7 +131,7 @@ banner({ type:0 }).then(res=>{ [文档地址](http://docs.neteasecloudmusicapi.binaryify.com/#/) -![文档](https://raw.githubusercontent.com/Binaryify/NeteaseCloudMusicApi/master/static/docs.png) +![文档](https://raw.githubusercontent.com/Binaryify/NeteaseCloudMusicApi/master/public/static/docs.png) ## 功能特性 @@ -417,8 +417,8 @@ banner({ type:0 }).then(res=>{ $ npm test ``` -![单元测试](https://raw.githubusercontent.com/Binaryify/NeteaseCloudMusicApi/master/static/screenshot1.png) -![单元测试](https://raw.githubusercontent.com/Binaryify/NeteaseCloudMusicApi/master/static/screenshot2.png) +![单元测试](https://raw.githubusercontent.com/Binaryify/NeteaseCloudMusicApi/master/public/static/screenshot1.png) +![单元测试](https://raw.githubusercontent.com/Binaryify/NeteaseCloudMusicApi/master/public/static/screenshot2.png) ## SDK diff --git a/docs/v2.md b/docs/v2.md deleted file mode 100644 index aa95e30..0000000 --- a/docs/v2.md +++ /dev/null @@ -1,1430 +0,0 @@ -# NeteaseCloudMusicApi - -网易云音乐 NodeJS 版 API - -## 灵感来自 - -[disoul/electron-cloud-music](https://github.com/disoul/electron-cloud-music) - -[darknessomi/musicbox](https://github.com/darknessomi/musicbox) - -[sqaiyan/netmusic-node](https://github.com/sqaiyan/netmusic-node) - -## 工作原理 - -跨站请求伪造 (CSRF), 伪造请求头 , 调用官方 API - -## 功能特性 - -1. 登录 -2. 刷新登录 -3. 获取用户信息 , 歌单,收藏,mv, dj 数量 -4. 获取用户歌单 -5. 获取用户电台 -6. 获取用户关注列表 -7. 获取用户粉丝列表 -8. 获取用户动态 -9. 获取用户播放记录 -10. 获取精品歌单 -11. 获取歌单详情 -12. 搜索 -13. 搜索建议 -14. 获取歌词 -15. 歌曲评论 -16. 收藏单曲到歌单 -17. 专辑评论 -18. 歌单评论 -19. mv 评论 -20. 电台节目评论 -21. banner -22. 获取歌曲详情 -23. 获取专辑内容 -24. 获取歌手单曲 -25. 获取歌手 mv -26. 获取歌手专辑 -27. 获取歌手描述 -28. 获取相似歌手 -29. 获取相似歌单 -30. 相似 mv -31. 获取相似音乐 -32. 获取最近 5 个听了这首歌的用户 -33. 获取每日推荐歌单 -34. 获取每日推荐歌曲 -35. 私人 FM -36. 签到 -37. 喜欢音乐 -38. 垃圾桶 -39. 歌单 ( 网友精选碟 ) -40. 新碟上架 -41. 热门歌手 -42. 最新 mv -43. 推荐 mv -44. 推荐歌单 -45. 推荐新音乐 -46. 推荐电台 -47. 推荐节目 -48. 独家放送 -49. mv 排行 -50. 获取 mv 数据 -51. 播放 mv/视频 -52. 排行榜 -53. 歌手榜 -54. 云盘 -55. 电台 - 推荐 -56. 电台 - 分类 -57. 电台 - 分类推荐 -58. 电台 - 订阅 -59. 电台 - 详情 -60. 电台 - 节目 -61. 给评论点赞 -62. 获取动态 -63. 获取热搜 -64. 发送私信 -65. 发送私信歌单 -66. 新建歌单 -67. 收藏/取消收藏歌单 -68. 歌单分类 -69. 收藏的歌手列表 -70. 订阅的电台列表 -71. 相关歌单推荐 -72. 付费精选接口 -73. 音乐是否可用检查接口 -74. 登录状态 -75. 获取视频数据 -76. 发送/删除评论 -77. 热门评论 -78. 视频评论 -79. 退出登录 - -## 安装 - -```shell -$ git clone git@github.com:Binaryify/NeteaseCloudMusicApi.git -$ npm install -``` - -## 运行 - -```shell -$ node app.js -``` - -服务器启动默认端口为 3000, 若不想使用 3000 端口 , 可使用以下命令 : Mac/Linux - -```shell -$ PORT=4000 node app.js -``` - -windows 下使用 git-bash 或者 cmder 等终端执行以下命令 : - -```shell -$ set PORT=4000 && node app.js -``` - -## 可以使用代理 - -在 query 参数中加上 proxy=your-proxy 即可让这一次的请求使用 proxy - -```javascript -// 例子 -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 的文档](https://github.com/request/request#proxies), 如果这些环境变 -> 量 指向的代理不可用, 那么就会造成错误, 所以在使用 docker 的时候一定要注意这些 -> 环境变量. 不过, 要是你在 query 中加上了 proxy 参数, 那么环境变量会被覆盖, 就会 -> 用你通过 proxy 参数提供的代理了. - -request 相关的环境变量 - -1. http_proxy -2. https_proxy -3. HTTP_PROXY -4. HTTPS_PROXY -5. no_proxy -6. NO_PROXY - -```shell -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](https://github.com/hiyangguo)提出的[解决方法](https://github.com/Binaryify/NeteaseCloudMusicApi/issues/29#issuecomment-298358438): -在 '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` - -返回数据如下图 : -![登录](https://raw.githubusercontent.com/Binaryify/NeteaseCloudMusicApi/master/static/%E7%99%BB%E5%BD%95.png) - -完成登录后 , 会在浏览器保存一个 Cookies 用作登录凭证 , 大部分 API 都需要用到这个 -Cookies - -#### 注意 - -调用登录接口的速度比调用其他接口慢 , 因为登录过程调用了加密算法 - -### 刷新登录 - -说明 : 调用此接口 , 可刷新登录状态 - -**调用例子 :** `/login/refresh` - -### 退出登录 - -说明 : 调用此接口 , 可退出登录 - -**调用例子 :** `/logout` - -### 登录状态 - -说明 : 调用此接口,可获取登录状态 - -**接口地址 :** `/login/status` -返回数据如下图: -![数据](https://ws2.sinaimg.cn/large/006tNbRwgy1fup6q18kk6j316i0nw0wa.jpg) - -### 获取用户详情 - -说明 : 登录后调用此接口 , 传入用户 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` - -返回数据如下图 : -![用户歌单](https://raw.githubusercontent.com/Binaryify/NeteaseCloudMusicApi/master/static/%E7%94%A8%E6%88%B7%E6%AD%8C%E5%8D%95.png) - -### 更新歌单 - -说明 : 登录后调用此接口,可以更新用户歌单 -参数: - -``` -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` -返回数据如下图: -![数据](https://ws1.sinaimg.cn/large/006tKfTcgy1fr3p3hfeudj31kw1aek2e.jpg) - -### 发送私信(带歌单) - -说明 : 登录后调用此接口 , 传入用户 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` -返回数据如下图: -![数据](https://ws1.sinaimg.cn/large/006tKfTcgy1fr3p1z7qmcj30v409adg5.jpg) - -### 获取用户电台 - -说明 : 登录后调用此接口 , 传入用户 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` : 返回数量 , 默认为 30 `offset` : 偏移数量,用于分页 , 如 -: 如 :( 页数 -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` - -返回数据如下图: -![数据](https://ws1.sinaimg.cn/large/006tKfTcgy1fr60g9zps9j31kw1bpk4n.jpg) - -### 收藏歌手 - -说明 : 调用此接口,可收藏歌手 -**必选参数 :** `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` - -返回数据如下图 : - -![精选碟](https://raw.githubusercontent.com/Binaryify/NeteaseCloudMusicApi/master/static/top_playlist.png) -![对应位置](https://ws2.sinaimg.cn/large/006tKfTcgy1fr3wnpyg6jj317e0vcqdc.jpg) -![返回数据](https://ws4.sinaimg.cn/large/006tKfTcgy1fr3wqs5lw9j31ic1re4c4.jpg) - -### 获取精品歌单 - -说明 : 调用此接口 , 可获取精品歌单 - -**可选参数 :** `cat`: tag, 比如 " 华语 "、" 古风 " 、" 欧美 "、" 流行 ", 默认为 -"全部",可从歌单分类接口获取(/playlist/catlist) - -`limit`: 取出歌单数量 , 默认为 20 - -**接口地址 :** `/top/playlist/highquality` - -**调用例子 :** `/top/playlist/highquality?limit=30` - -### 相关歌单推荐 - -说明 : 调用此接口,传入歌单 id 可获取相关歌单(对应页面 [https://music.163.com/#/playlist?id=1](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` - -返回数据如下图 : -![歌单详情](https://raw.githubusercontent.com/Binaryify/NeteaseCloudMusicApi/master/static/%E6%AD%8C%E5%8D%95%E8%AF%A6%E6%83%85.png) - -### 获取音乐 url - -说明 : 使用歌单详情接口后 , 能得到的音乐的 id, 但不能得到的音乐 url, 调用此接口 -, 传入的音乐 id( 可多个 , 用逗号隔开 ), 可以获取对应的音乐的 url( 不需要登录 ) - -> 注 : 部分用户反馈获取的 url 会 403,[hwaphon](https://github.com/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` - -返回数据如下图 : -![音乐 url](https://raw.githubusercontent.com/Binaryify/NeteaseCloudMusicApi/master/static/%E9%9F%B3%E4%B9%90%20url.png) - -### 音乐是否可用 - -说明: 调用此接口,传入歌曲 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` : 返回数量 , 默认为 30 `offset` : 偏移数量,用于分页 , 如 -: 如 :( 页数 -1)\*30, 其中 30 为 limit 的值 , 默认为 0 - -`type`: 搜索类型;默认为 1 即单曲 , 取值意义 : 1: 单曲, 10: 专辑, 100: 歌手, 1000: -歌单, 1002: 用户, 1004: MV, 1006: 歌词, 1009: 电台, 1014: 视频 - -**接口地址 :** `/search` - -**调用例子 :** `/search?keywords= 海阔天空` - -返回数据如下图 : -![搜索音乐](https://raw.githubusercontent.com/Binaryify/NeteaseCloudMusicApi/master/static/%E6%90%9C%E7%B4%A2.png) - -### 热搜 - -说明 : 调用此接口,可获取热门搜索列表 - -**接口地址 :** `/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=测试歌单` - -返回数据如下图: -![数据](https://ws1.sinaimg.cn/large/006tKfTcgy1fr3va885z5j31a617qwjy.jpg) - -### 收藏/取消收藏歌单 - -说明 : 调用此接口 , 传入类型和歌单 id 可收藏歌单或者取消收藏歌单 - -**必选参数 :** -`t` : 类型,1:收藏,2:取消收藏 -`id` : 歌单 id - -**接口地址 :** `/playlist/subscribe` - -**调用例子 :** `/playlist/subscribe?t=1&id=106697785` `/playlist/subscribe?t=2&id=106697785` - -返回数据如下图: -![数据](https://ws1.sinaimg.cn/large/006tKfTcgy1fr3vdwx0hvj30s405u74b.jpg) - -### 对歌单添加或删除歌曲 - -说明 : 调用此接口 , 可以添加歌曲到歌单或者从歌单删除某首歌曲 ( 需要登录 ) - -**必选参数 :** -`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` - -返回数据如下图 : -![获取歌词](https://raw.githubusercontent.com/Binaryify/NeteaseCloudMusicApi/master/static/%E6%AD%8C%E8%AF%8D.png) - -### 歌曲评论 - -说明 : 调用此接口 , 传入音乐 id 和 limit 参数 , 可获得该音乐的所有评论 ( 不需要 -登录 ) - -**必选参数 :** `id`: 音乐 id - -**可选参数 :** `limit`: 取出评论数量 , 默认为 20 - -`offset`: 偏移数量 , 用于分页 , 如 :( 评论页数 -1)\*20, 其中 20 为 limit 的值 - -**接口地址 :** `/comment/music` - -**调用例子 :** `/comment/music?id=186016&limit=1` 对应晴天评论 - -返回数据如下图 : -![获取评论](https://raw.githubusercontent.com/Binaryify/NeteaseCloudMusicApi/master/static/comment.png) - -### 专辑评论 - -说明 : 调用此接口 , 传入音乐 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](https://music.163.com/#/song?id=29178366) 最热门的评论点赞 - -### 发送/删除评论 - -说明 : 调用此接口,可发送评论或者删除评论 - -**接口地址 :** `/comment` - -1. 发送评论 - - **必选参数** - `action`:1 发送 - - `type`: 数字,资源类型,对应歌曲,mv,专辑,歌单,电台,视频对应以下类型 - - ``` - 0: 歌曲 - 1: mv - 2: 歌单 - 3: 专辑 - 4: 电台 - 5: 视频 - ``` - - `id`:对应资源 id - - `content` :要发送的内容 - - **调用例子** : `/comment?action=1&type=1&id=5436712&content=test` (往广岛之恋 mv 发送评论: test) - -2. 删除评论 - - **必选参数** - `action`:0 删除 - - `type`: 数字,资源类型,对应歌曲,mv,专辑,歌单,电台,视频对应以下类型 - - ``` - 0: 歌曲 - 1: mv - 2: 歌单 - 3: 专辑 - 4: 电台 - 5: 视频 - ``` - - `id`:对应资源 id - `content` :内容 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` - -返回数据如下图 : -![获取歌曲详情](https://raw.githubusercontent.com/Binaryify/NeteaseCloudMusicApi/master/static/songDetail.png) - -### 获取专辑内容 - -说明 : 调用此接口 , 传入专辑 id, 可获得专辑内容 - -**必选参数 :** `id`: 专辑 id - -**接口地址 :** `/album` - -**调用例子 :** `/album?id=32311` - -返回数据如下图 : -![获取专辑内容](https://raw.githubusercontent.com/Binaryify/NeteaseCloudMusicApi/master/static/%E4%B8%93%E8%BE%91.png) - -### 获取歌手单曲 - -说明 : 调用此接口 , 传入歌手 id, 可获得歌手部分信息和热门歌曲 - -**必选参数 :** `id`: 歌手 id, 可由搜索接口获得 - -**接口地址 :** `/artists` - -**调用例子 :** `/artists?id=6452` - -返回数据如下图 : -![获取歌手单曲](https://raw.githubusercontent.com/Binaryify/NeteaseCloudMusicApi/master/static/artists.png) - -### 获取歌手 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` ( 周杰伦 ) - -返回数据如下图 : -![获取专辑内容](https://raw.githubusercontent.com/Binaryify/NeteaseCloudMusicApi/master/static/artist_album.png) - -### 获取歌手描述 - -说明 : 调用此接口 , 传入歌手 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` - -返回数据如下图 : -![每日推荐歌单](https://raw.githubusercontent.com/Binaryify/NeteaseCloudMusicApi/master/static/%E6%8E%A8%E8%8D%90%E6%AD%8C%E5%8D%95.png) - -### 获取每日推荐歌曲 - -说明 : 调用此接口 , 可获得每日推荐歌曲 ( 需要登录 ) - -**接口地址 :** `/recommend/songs` - -**调用例子 :** `/recommend/songs` - -返回数据如下图 : -![每日推荐歌曲](https://raw.githubusercontent.com/Binaryify/NeteaseCloudMusicApi/master/static/%E6%8E%A8%E8%8D%90%E6%AD%8C%E6%9B%B2.png) - -### 私人 FM - -说明 : 私人 FM( 需要登录 ) - -**接口地址 :** `/personal_fm` - -**调用例子 :** `/personal_fm` - -返回数据如下图 : - -![私人 FM](https://raw.githubusercontent.com/Binaryify/NeteaseCloudMusicApi/master/static/personal_fm.png) - -### 签到 - -说明 : 调用此接口 , 传入签到类型 ( 可不传 , 默认安卓端签到 ), 可签到 ( 需要登录 -), 其中安卓端签到可获得 3 点经验 , web/PC 端签到可获得 2 点经验 - -**可选参数 :** `type`: 签到类型 , 默认 0, 其中 0 为安卓端签到 ,1 为 web/PC 签到 - -**接口地址 :** `/daily_signin` - -**调用例子 :** `/daily_signin` - -返回数据如下图 : - -![签到成功](https://raw.githubusercontent.com/Binaryify/NeteaseCloudMusicApi/master/static/signinSuccess.png) - -![签到失败](https://raw.githubusercontent.com/Binaryify/NeteaseCloudMusicApi/master/static/signinError.png) - -### 喜欢音乐 - -说明 : 调用此接口 , 传入音乐 id, 可喜欢该音乐 - -**必选参数 :** `id`: 歌曲 id - -**可选参数 :** `like`: 布尔值 , 默认为 true 即喜欢 , 若传 false, 则取消喜欢 - -**接口地址 :** `/like` - -**调用例子 :** `/like?id=347230` - -返回数据如下图 : - -![喜欢成功](https://raw.githubusercontent.com/Binaryify/NeteaseCloudMusicApi/master/static/like.png) - -喜欢成功则返回数据的 code 为 200, 其余为失败 - -![喜欢成功截图](https://raw.githubusercontent.com/Binaryify/NeteaseCloudMusicApi/master/static/likeSuccess.png) - -### 垃圾桶 - -说明 : 调用此接口 , 传入音乐 id, 可把该音乐从私人 FM 中移除至垃圾桶 - -**必选参数 :** `id`: 歌曲 id - -**接口地址 :** `/fm_trash` - -**调用例子 :** `/fm_trash?id=347230` - -返回数据如下图 : - -![移除成功](https://raw.githubusercontent.com/Binaryify/NeteaseCloudMusicApi/master/static/fm_trash.png) - -### 新碟上架 - -说明 : 调用此接口 , 可获取新碟上架列表 , 如需具体音乐信息需要调用获取专辑列表接 -口 `/album` , 然后传入 id, 如 `/album?id=32311&limit=30` - -**可选参数 :** `limit`: 取出数量 , 默认为 50 - -`offset`: 偏移数量 , 用于分页 , 如 :( 页数 -1)\*50, 其中 50 为 limit 的值 , 默认 -为 0 - -**接口地址 :** `/top/album` - -**调用例子 :** `/top/album?offset=0&limit=30` - -返回数据如下图 : - -![新碟上架](https://raw.githubusercontent.com/Binaryify/NeteaseCloudMusicApi/master/static/new_albums.png) - -### 热门歌手 - -说明 : 调用此接口 , 可获取热门歌手数据 - -**可选参数 :** `limit`: 取出数量 , 默认为 50 - -`offset`: 偏移数量 , 用于分页 , 如 :( 页数 -1)\*50, 其中 50 为 limit 的值 , 默认 -为 0 - -**接口地址 :** `/top/artists` - -**调用例子 :** `/top/artists?offset=0&limit=30` - -返回数据如下图 : - -![热门歌手](https://raw.githubusercontent.com/Binaryify/NeteaseCloudMusicApi/master/static/top_artists.png) - -### 最新 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` - -返回数据如下图 : - -![热门歌手](https://raw.githubusercontent.com/Binaryify/NeteaseCloudMusicApi/master/static/mv.png) - -### 获取视频数据 - -说明 : 调用此接口 , 传入视频的 id ( 在搜索音乐的时候传 type=1014 获得 ) , 可获取对应 -视频数据,其中视频网易做了防盗链处理 , 可能不能直接播放 , 需要播放的话需要调用 ' 播放 mv/视频' 接口 - -**必选参数 :** `id`: 视频 的 id - -**接口地址 :** `/video` - -**调用例子 :** `/video?id=89ADDE33C0AAE8EC14B99F6750DB954D` - -返回数据如下图 : - -![视频数据](https://ws1.sinaimg.cn/large/006tNbRwgy1fuqdv10p5rj31kw0da76y.jpg) - -### 播放 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` - -如下图 : - -![播放视频](https://raw.githubusercontent.com/Binaryify/NeteaseCloudMusicApi/master/static/play_mv.png) - -### 排行榜 - -说明 : 调用此接口 , 传入数字 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` - -返回数据如下图 : - -![排行榜](https://raw.githubusercontent.com/Binaryify/NeteaseCloudMusicApi/master/static/top_list.png) - -### 歌手榜 - -说明 : 调用此接口 , 可获取 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](https://github.com/QingWei-Li/docsify/) 生成 docsify 是一个动 -态生成文档网站的工具。不同于 GitBook、Hexo 的地方是它不会生成将 .md 转成 .html -文件,所有转换工作都是在运行时进行。 - -## License - -[The MIT License (MIT)](https://github.com/Binaryify/NeteaseCloudMusicApi/blob/master/LICENSE) diff --git a/package.json b/package.json index 11dcb9d..a40fd75 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "NeteaseCloudMusicApi", - "version": "4.14.1", + "version": "4.14.2", "description": "网易云音乐 NodeJS 版 API", "scripts": { "start": "node app.js", diff --git a/docs/.nojekyll b/public/docs/.nojekyll similarity index 100% rename from docs/.nojekyll rename to public/docs/.nojekyll diff --git a/docs/README.md b/public/docs/README.md similarity index 98% rename from docs/README.md rename to public/docs/README.md index 1908c94..012f4b4 100644 --- a/docs/README.md +++ b/public/docs/README.md @@ -861,8 +861,6 @@ signature:用户签名 **调用例子 :** `/user/playlist?uid=32953014` -返回数据如下图 : -![用户歌单](https://raw.githubusercontent.com/Binaryify/NeteaseCloudMusicApi/master/static/%E7%94%A8%E6%88%B7%E6%AD%8C%E5%8D%95.png) ### 更新歌单 @@ -1686,8 +1684,6 @@ tags: 歌单标签 **调用例子 :** `/lyric?id=33894312` -返回数据如下图 : -![获取歌词](https://raw.githubusercontent.com/Binaryify/NeteaseCloudMusicApi/master/static/%E6%AD%8C%E8%AF%8D.png) ### 获取逐字歌词 @@ -1789,8 +1785,6 @@ tags: 歌单标签 **调用例子 :** `/comment/music?id=186016&limit=1` 对应晴天评论 -返回数据如下图 : -![获取评论](https://raw.githubusercontent.com/Binaryify/NeteaseCloudMusicApi/master/static/comment.png) ### 楼层评论 @@ -2360,8 +2354,6 @@ pc: 云盘歌曲信息,如果不存在该字段,则为非云盘歌曲 **调用例子 :** `/artists?id=6452` -返回数据如下图 : -![获取歌手单曲](https://raw.githubusercontent.com/Binaryify/NeteaseCloudMusicApi/master/static/artists.png) ### 获取歌手 mv @@ -2390,8 +2382,6 @@ pc: 云盘歌曲信息,如果不存在该字段,则为非云盘歌曲 **调用例子 :** `/artist/album?id=6452&limit=5` ( 周杰伦 ) -返回数据如下图 : -![获取专辑内容](https://raw.githubusercontent.com/Binaryify/NeteaseCloudMusicApi/master/static/artist_album.png) ### 获取歌手描述 @@ -2471,8 +2461,6 @@ pc: 云盘歌曲信息,如果不存在该字段,则为非云盘歌曲 **调用例子 :** `/recommend/resource` -返回数据如下图 : -![每日推荐歌单](https://raw.githubusercontent.com/Binaryify/NeteaseCloudMusicApi/master/static/%E6%8E%A8%E8%8D%90%E6%AD%8C%E5%8D%95.png) ### 获取每日推荐歌曲 @@ -2482,8 +2470,6 @@ pc: 云盘歌曲信息,如果不存在该字段,则为非云盘歌曲 **调用例子 :** `/recommend/songs` -返回数据如下图 : -![每日推荐歌曲](https://raw.githubusercontent.com/Binaryify/NeteaseCloudMusicApi/master/static/%E6%8E%A8%E8%8D%90%E6%AD%8C%E6%9B%B2.png) ### 每日推荐歌曲-不感兴趣 @@ -2535,9 +2521,7 @@ pc: 云盘歌曲信息,如果不存在该字段,则为非云盘歌曲 **调用例子 :** `/personal_fm` -返回数据如下图 : -![私人 FM](https://raw.githubusercontent.com/Binaryify/NeteaseCloudMusicApi/master/static/personal_fm.png) ### 签到 @@ -2550,11 +2534,8 @@ pc: 云盘歌曲信息,如果不存在该字段,则为非云盘歌曲 **调用例子 :** `/daily_signin` -返回数据如下图 : -![签到成功](https://raw.githubusercontent.com/Binaryify/NeteaseCloudMusicApi/master/static/signinSuccess.png) -![签到失败](https://raw.githubusercontent.com/Binaryify/NeteaseCloudMusicApi/master/static/signinError.png) ### 乐签信息 @@ -2574,13 +2555,10 @@ pc: 云盘歌曲信息,如果不存在该字段,则为非云盘歌曲 **调用例子 :** `/like?id=347230` -返回数据如下图 : -![喜欢成功](https://raw.githubusercontent.com/Binaryify/NeteaseCloudMusicApi/master/static/like.png) 喜欢成功则返回数据的 code 为 200, 其余为失败 -![喜欢成功截图](https://raw.githubusercontent.com/Binaryify/NeteaseCloudMusicApi/master/static/likeSuccess.png) ### 喜欢音乐列表 @@ -2602,9 +2580,7 @@ pc: 云盘歌曲信息,如果不存在该字段,则为非云盘歌曲 **调用例子 :** `/fm_trash?id=347230` -返回数据如下图 : -![移除成功](https://raw.githubusercontent.com/Binaryify/NeteaseCloudMusicApi/master/static/fm_trash.png) ### 新碟上架 @@ -2676,9 +2652,7 @@ pc: 云盘歌曲信息,如果不存在该字段,则为非云盘歌曲 **调用例子 :** `/top/artists?offset=0&limit=30` -返回数据如下图 : -![热门歌手](https://raw.githubusercontent.com/Binaryify/NeteaseCloudMusicApi/master/static/top_artists.png) ### 全部 mv @@ -2823,9 +2797,7 @@ MV 数据 , 数据包含 mv 名字 , 歌手 , 发布时间 , mv 视频地址等 **调用例子 :** `/mv/detail?mvid=5436712` -返回数据如下图 : -![mv 数据](https://raw.githubusercontent.com/Binaryify/NeteaseCloudMusicApi/master/static/mv.png) ### 获取 mv 点赞转发评论数数据 diff --git a/docs/_coverpage.md b/public/docs/_coverpage.md similarity index 100% rename from docs/_coverpage.md rename to public/docs/_coverpage.md diff --git a/docs/favicon.ico b/public/docs/favicon.ico similarity index 100% rename from docs/favicon.ico rename to public/docs/favicon.ico diff --git a/docs/icon.png b/public/docs/icon.png similarity index 100% rename from docs/icon.png rename to public/docs/icon.png diff --git a/docs/index.html b/public/docs/index.html similarity index 100% rename from docs/index.html rename to public/docs/index.html diff --git a/docs/sw.js b/public/docs/sw.js similarity index 100% rename from docs/sw.js rename to public/docs/sw.js diff --git a/public/index.html b/public/index.html index a150225..e54ba43 100644 --- a/public/index.html +++ b/public/index.html @@ -11,7 +11,7 @@

网易云音乐 API

当你看到这个页面时,这个服务已经成功跑起来了~ - 查看文档 + 查看文档

例子: