NeteaseCloudMusicApi
Advanced tools
Comparing version 2.7.3 to 2.7.6
# 更新日志 | ||
### 2.7.3 | 2017.11.25 | ||
### 2.7.6 | 2017.11.27 | ||
修复 / 更新歌手榜接口 | ||
更新 / 修复排行榜接口 | ||
@@ -7,0 +7,0 @@ ### 2.7.2 | 2017.9.7 |
{ | ||
"name": "NeteaseCloudMusicApi", | ||
"version": "2.7.3", | ||
"version": "2.7.6", | ||
"description": "网易云音乐 NodeJS 版 API", | ||
@@ -5,0 +5,0 @@ "scripts": { |
110
README.MD
# 网易云音乐 API | ||
网易云音乐 NodeJS 版 API | ||
<p> | ||
@@ -11,6 +9,5 @@ <a href="https://www.npmjs.com/package/NeteaseCloudMusicApi"><img src="https://img.shields.io/npm/v/NeteaseCloudMusicApi.svg" alt="Version"></a> | ||
<a href="https://codeclimate.com/github/Binaryify/NeteaseCloudMusicApi"><img src="https://codeclimate.com/github/Binaryify/NeteaseCloudMusicApi/badges/gpa.svg" /></a> | ||
</p> | ||
</p> | ||
## 灵感来自 | ||
[disoul/electron-cloud-music](https://github.com/disoul/electron-cloud-music) | ||
@@ -22,108 +19,79 @@ | ||
## 版本新特性 | ||
### 2.6.5 | 2017.7.16 | ||
优化 CORS 设置 | ||
### 2.6.4 | 2017.7.16 | ||
添加缓存机制和随机 UA 机制 感谢[@u3u](https://github.com/u3u) | ||
[issue:77](https://github.com/Binaryify/NeteaseCloudMusicApi/issues/77) 优化请求 | ||
代码 感谢 [@huhuime](https://github.com/huhuime) | ||
添加缓存机制和随机 UA 机制 感谢[@u3u](https://github.com/u3u) | ||
[issue:77](https://github.com/Binaryify/NeteaseCloudMusicApi/issues/77) | ||
优化请求代码 感谢 [@huhuime](https://github.com/huhuime) | ||
[issue:83](https://github.com/Binaryify/NeteaseCloudMusicApi/issues/83) | ||
### 2.7.3 | 2017.11.25 | ||
修复 / 更新歌手榜接口 | ||
### 2.6.2 | 2017.7.16 | ||
修复垃圾桶接口 | ||
### 2.6.1 | 2017.7.16 | ||
修复红心接口 | ||
### 2.6.0 | 2017.6.25 | ||
修复签到接口 | ||
### 2.5.9 | 2017.6.14 | ||
增加启动说明页 | ||
### 2.5.8 | 2017.6.1 | ||
修复若干细节问题 | ||
### 2.5.7 | 2017.5.22 | ||
修复若干问题 | ||
### 2.5.6 | 2017.5.14 | ||
增加动态消息接口 | ||
### 2.5.5 | 2017.5.10 | ||
修复 mv 排行榜接口崩溃问题 | ||
### 2.5.4 | 2017.5.5 | ||
新增点赞接口,更新文档 | ||
新增点赞接口 , 更新文档 | ||
### 2.5.3 | 2017.5.2 | ||
修复歌手单曲数据空白问题和文档获取歌手单曲url 描述问题,更新文档 | ||
修复歌手单曲数据空白问题和文档获取歌手单曲 url 描述问题 , 更新文档 | ||
### 2.5.0 | 2017.4.29 | ||
增加 mv/专辑/歌单评论接口,增加云盘相关接口,增加获取用户动态/信息接口,增加关注/粉丝列表接口,增加收藏歌单接口,增加相似 mv/歌曲/用户接口,增加 banner 接口,增加刷新登录接口,增加电台相关接口,补充评论接口,更新文档 | ||
增加 mv/ 专辑 / 歌单评论接口 , 增加云盘相关接口 , 增加获取用户动态 / 信息接口 , | ||
增加关注 / 粉丝列表接口 , 增加收藏歌单接口 , 增加相似 mv/ 歌曲 / 用户接口 , 增加 | ||
banner 接口 , 增加刷新登录接口 , 增加电台相关接口 , 补充评论接口 , 更新文档 | ||
### 2.4.6 | 2017.4.21 | ||
增加播放 mv 接口,更新文档 | ||
增加播放 mv 接口 , 更新文档 | ||
### 2.4.5 | 2017.4.20 | ||
增加歌手专辑,歌手单曲等接口,修复/album 接口描述错误,更新文档 | ||
增加歌手专辑 , 歌手单曲等接口 , 修复 /album 接口描述错误 , 更新文档 | ||
### 2.4.0 | 2017.4.20 | ||
增加歌单(网友精选碟),新碟上架,热门歌手等接口,更新文档 | ||
增加歌单(网友精选碟 ), 新碟上架 , 热门歌手等接口 , 更新文档 | ||
### 2.3.4 | 2017.4.20 | ||
增加歌曲详情接口,更新文档 | ||
增加歌曲详情接口 , 更新文档 | ||
### 2.3.0 | 2017.4.15 | ||
增加排行榜接口,更新文档 | ||
增加排行榜接口 , 更新文档 | ||
### 2.2.0 |2017.4.14 | ||
增加私人 FM, 喜欢歌曲,垃圾桶,每日签到等接口,更新文档 | ||
增加私人 FM, 喜欢歌曲 , 垃圾桶 , 每日签到等接口 , 更新文档 | ||
### 2.1.3 | 2017.4.6 | ||
改善文档 | ||
### 2.1.0 | 2017.4.6 | ||
增加获取评论接口以及对应单元测试,增加更新日志 | ||
增加获取评论接口以及对应单元测试 , 增加更新日志 | ||
### 2.0.0 | 2017.4.1 | ||
版本升级到 2.0.增加使用文档,完成项目重构,增加更完善的单元测试,升级 api 到 v2+,支持登录并获取用户信息和创建的歌单,可通过获取音乐 url 接口获取用户歌单里的的音乐,获取每日推荐歌单和每日推荐音乐 | ||
版本升级到 2.0. 增加使用文档 , 完成项目重构 , 增加更完善的单元测试 , 升级 api 到 | ||
v2+, 支持登录并获取用户信息和创建的歌单 , 可通过获取音乐 url 接口获取用户歌单里 | ||
的的音乐 , 获取每日推荐歌单和每日推荐音乐 | ||
## 功能特性 | ||
1. 登录 | ||
2. 刷新登录 | ||
3. 获取用户信息 , 歌单,收藏,mv, dj 数量 | ||
3. 获取用户信息,歌单,收藏,mv, dj 数量 | ||
4. 获取用户歌单 | ||
@@ -164,3 +132,3 @@ 5. 获取用户电台 | ||
38. 垃圾桶 | ||
39. 歌单 ( 网友精选碟 ) | ||
39. 歌单(网友精选碟) | ||
40. 新碟上架 | ||
@@ -180,30 +148,24 @@ 41. 热门歌手 | ||
53. 云盘 | ||
54. 电台 - 推荐 | ||
55. 电台 - 分类 | ||
56. 电台 - 分类推荐 | ||
57. 电台 - 订阅 | ||
58. 电台 - 详情 | ||
59. 电台 - 节目 | ||
54. 电台-推荐 | ||
55. 电台-分类 | ||
56. 电台-分类推荐 | ||
57. 电台-订阅 | ||
58. 电台-详情 | ||
59. 电台-节目 | ||
60. 给评论点赞 | ||
## 环境要求 | ||
需要 NodeJS 6.0+ 环境 | ||
## 安装 | ||
```shell | ||
## 安装 | ||
``` shell | ||
$ git clone git@github.com:Binaryify/NeteaseCloudMusicApi.git | ||
$ npm install | ||
``` | ||
## 运行 | ||
```shell | ||
$ node app.js | ||
``` shell | ||
$ node app.js | ||
``` | ||
服务器启动默认端口为 3000, 若不想使用 3000 端口 , 可使用以下命令 :\ | ||
服务器启动默认端口为3000,若不想使用3000端口,可使用以下命令: | ||
Mac/Linux | ||
```shell | ||
@@ -213,4 +175,3 @@ $ PORT=4000 node app.js | ||
windows 下使用 git-bash 或者 cmder 等终端执行以下命令 : | ||
windows 下使用 git-bash 或者 cmder 等终端执行以下命令: | ||
```shell | ||
@@ -221,3 +182,2 @@ $ set PORT=4000 && node app.js | ||
## 使用文档 | ||
[文档地址](https://binaryify.github.io/NeteaseCloudMusicApi) | ||
@@ -228,10 +188,9 @@ | ||
## 更新日志 | ||
[changelog](https://github.com/Binaryify/NeteaseCloudMusicApi/blob/master/CHANGELOG.MD) | ||
[changelog](https://github.com/Binaryify/NeteaseCloudMusicApi/blob/master/CHANGELOG.MD) | ||
## 单元测试 | ||
```shell | ||
``` shell | ||
$ npm test | ||
``` | ||
``` | ||
@@ -242,3 +201,2 @@ ![单元测试](https://raw.githubusercontent.com/Binaryify/NeteaseCloudMusicApi/master/static/screenshot1.png) | ||
## License | ||
[The MIT License (MIT)](https://github.com/Binaryify/NeteaseCloudMusicApi/blob/master/LICENSE) |
const top_list_all = { | ||
"0": ['云音乐新歌榜', '/eapi/playlist/v4/detail?cache_key=g8IDT%2BcGcAWCkEndWtol2Ea%2FhY50nrfUbzklolfnyqw%3D'], | ||
"1": ['云音乐热歌榜', '/eapi/playlist/v4/detail?cache_key=g8IDT%2BcGcAWCkEndWtol2OLsLDPQ3IxdiVlypGQbPv8%3D'], | ||
"2": ['网易原创歌曲榜', '/eapi/playlist/v4/detail?cache_key=WnRJLZBw0KHIEEkjjzDg%2Fu4YvW2gEFAnkdKiySiXh5E%3D'], | ||
"3": ['云音乐飙升榜', '/eapi/playlist/v4/detail?cache_key=A2o%2BlvkEda2wn30sSajnXY9k0Wwi1Kpd1%2BG6PDTFRfM%3D'], | ||
"4": ['云音乐电音榜', '/api/playlist/detail?id=10520166'], | ||
"5": ['UK排行榜周榜', '/api/playlist/detail?id=180106'], | ||
"6": ['美国Billboard周榜', '/api/playlist/detail?id=60198'], | ||
"7": ['KTV嗨榜', '/api/playlist/detail?id=21845217'], | ||
"8": ['iTunes榜', '/api/playlist/detail?id=11641012'], | ||
"9": ['Hit FM Top榜', '/api/playlist/detail?id=120001'], | ||
"10": ['日本Oricon周榜', '/api/playlist/detail?id=60131'], | ||
"11": ['韩国Melon排行榜周榜', '/api/playlist/detail?id=3733003'], | ||
"12": ['韩国Mnet排行榜周榜', '/api/playlist/detail?id=60255'], | ||
"13": ['韩国Melon原声周榜', '/api/playlist/detail?id=46772709'], | ||
"14": ['中国TOP排行榜(港台榜)', '/api/playlist/detail?id=112504'], | ||
"15": ['中国TOP排行榜(内地榜)', '/api/playlist/detail?id=64016'], | ||
"16": ['香港电台中文歌曲龙虎榜', '/api/playlist/detail?id=10169002'], | ||
"17": ['华语金曲榜', '/api/playlist/detail?id=4395559'], | ||
"18": ['中国嘻哈榜', '/api/playlist/detail?id=1899724'], | ||
"19": ['法国 NRJ EuroHot 30周榜', '/api/playlist/detail?id=27135204'], | ||
"20": ['台湾Hito排行榜', '/api/playlist/detail?id=112463'], | ||
"21": ['Beatport全球电子舞曲榜', '/api/playlist/detail?id=3812895'], | ||
"22": ['Beatport全球电子舞曲榜', '/api/playlist/detail?id=3812895'] | ||
} | ||
const express = require("express") | ||
const router = express() | ||
const { createRequest } = require("../util/util") | ||
"0": ["云音乐新歌榜", "3779629"], | ||
"1": ["云音乐热歌榜", "3778678"], | ||
"2": ["网易原创歌曲榜", "2884035"], | ||
"3": ["云音乐飙升榜", "19723756"], | ||
"4": ["云音乐电音榜", "10520166"], | ||
"5": ["UK排行榜周榜", "180106"], | ||
"6": ["美国Billboard周榜", "60198"], | ||
"7": ["KTV嗨榜", "21845217"], | ||
"8": ["iTunes榜", "11641012"], | ||
"9": ["Hit FM Top榜", "120001"], | ||
"10": ["日本Oricon周榜", "60131"], | ||
"11": ["韩国Melon排行榜周榜", "3733003"], | ||
"12": ["韩国Mnet排行榜周榜", "60255"], | ||
"13": ["韩国Melon原声周榜", "46772709"], | ||
"14": ["中国TOP排行榜(港台榜)", "112504"], | ||
"15": ["中国TOP排行榜(内地榜)", "64016"], | ||
"16": ["香港电台中文歌曲龙虎榜", "10169002"], | ||
"17": ["华语金曲榜", "4395559"], | ||
"18": ["中国嘻哈榜", "1899724"], | ||
"19": ["法国 NRJ EuroHot 30周榜", "27135204"], | ||
"20": ["台湾Hito排行榜", "112463"], | ||
"21": ["Beatport全球电子舞曲榜", "3812895"] | ||
}; | ||
const express = require("express"); | ||
const router = express(); | ||
const { createRequest, createWebAPIRequest } = require("../util/util"); | ||
router.get("/", (req, res) => { | ||
const idx = req.query.idx | ||
const action = 'http://music.163.com' + top_list_all[idx][1] | ||
createRequest(`${action}`, 'GET', null) | ||
.then(result => { | ||
res.setHeader("Content-Type", "application/json") | ||
res.send(result) | ||
}) | ||
.catch(err => { | ||
res.status(502).send('fetch error') | ||
}) | ||
}) | ||
const idx = req.query.idx; | ||
const id = top_list_all[idx][1]; | ||
const cookie = req.get("Cookie") ? req.get("Cookie") : ""; | ||
const action = "/weapi/v3/playlist/detail"; | ||
const data = { | ||
id, | ||
limit: req.query.limit || 30, | ||
offset: req.query.limit || 0, | ||
total: true, | ||
n: 1000, | ||
csrf_token: "" | ||
}; | ||
createWebAPIRequest( | ||
"music.163.com", | ||
action, | ||
"POST", | ||
data, | ||
cookie, | ||
music_req => { | ||
res.setHeader("Content-Type", "application/json"); | ||
res.send(music_req); | ||
}, | ||
err => res.status(502).send("fetch error") | ||
); | ||
}); | ||
module.exports = router | ||
module.exports = router; |
2510
139075
195