mirror of
https://gitlab.com/Binaryify/neteasecloudmusicapi.git
synced 2025-07-04 23:08:55 +08:00
commit
00844f9860
37
CHANGELOG.MD
37
CHANGELOG.MD
@ -1,4 +1,27 @@
|
|||||||
# 更新日志
|
# 更新日志
|
||||||
|
### 3.0.9 | 2018.12.15
|
||||||
|
- 修复关注异常的问题 #399
|
||||||
|
|
||||||
|
### 3.0.8 | 2018.12.12
|
||||||
|
- 更新文档 #386 #394
|
||||||
|
|
||||||
|
- 优化电台节目接口
|
||||||
|
|
||||||
|
### 3.0.7 | 2018.11.21
|
||||||
|
- 修复歌单详情列表,排行榜,所有榜单失效的问题,更新文档 #380 #381
|
||||||
|
|
||||||
|
### 3.0.4 | 2018.11.15
|
||||||
|
- 修复 `/song/url` 接口无法返回多个音乐数据的问题
|
||||||
|
|
||||||
|
### 3.0.3 | 2018.11.09
|
||||||
|
- 修复取消喜欢歌曲失败问题 [#360](https://github.com/Binaryify/NeteaseCloudMusicApi/issues/360)
|
||||||
|
|
||||||
|
- 补充已喜欢音乐列表接口说明文档 [#370](https://github.com/Binaryify/NeteaseCloudMusicApi/issues/370)
|
||||||
|
|
||||||
|
- 默认关闭 debug 模式 [#365](https://github.com/Binaryify/NeteaseCloudMusicApi/pull/365)
|
||||||
|
|
||||||
|
- 更新 Dockerfile 文件 [#367](https://github.com/Binaryify/NeteaseCloudMusicApi/pull/367)
|
||||||
|
|
||||||
|
|
||||||
### 3.0.1 | 2018.10.21
|
### 3.0.1 | 2018.10.21
|
||||||
|
|
||||||
@ -12,7 +35,7 @@
|
|||||||
|
|
||||||
### 3.0.0 | 2018.10.14
|
### 3.0.0 | 2018.10.14
|
||||||
|
|
||||||
## 整体
|
#### 整体
|
||||||
|
|
||||||
- 完善文档,增加之前没写进文档的接口说明
|
- 完善文档,增加之前没写进文档的接口说明
|
||||||
|
|
||||||
@ -24,7 +47,7 @@
|
|||||||
|
|
||||||
- 增加 cookie-parser
|
- 增加 cookie-parser
|
||||||
|
|
||||||
### 参数修改
|
##### 参数修改
|
||||||
|
|
||||||
- `/song/detail` 增加多 id 支持
|
- `/song/detail` 增加多 id 支持
|
||||||
|
|
||||||
@ -34,7 +57,7 @@
|
|||||||
|
|
||||||
- `/top/playlist/highquality` 增加分页参数 `before`
|
- `/top/playlist/highquality` 增加分页参数 `before`
|
||||||
|
|
||||||
### 统一参数
|
##### 统一参数
|
||||||
|
|
||||||
- `/artist/sub` 与 `artist/unsub` 合并, 用`query.t`
|
- `/artist/sub` 与 `artist/unsub` 合并, 用`query.t`
|
||||||
|
|
||||||
@ -42,7 +65,7 @@
|
|||||||
|
|
||||||
- `/comment` 中 `query.action` 换成 `query.t`
|
- `/comment` 中 `query.action` 换成 `query.t`
|
||||||
|
|
||||||
### URL 重命名
|
##### URL 重命名
|
||||||
|
|
||||||
- `/video` 改为 `video/url`
|
- `/video` 改为 `video/url`
|
||||||
|
|
||||||
@ -50,17 +73,17 @@
|
|||||||
|
|
||||||
- `/music/url` 改为 `/song/url`
|
- `/music/url` 改为 `/song/url`
|
||||||
|
|
||||||
### 转发逻辑修改
|
##### 转发逻辑修改
|
||||||
|
|
||||||
- `/toplist/artist` 换成 weapi
|
- `/toplist/artist` 换成 weapi
|
||||||
|
|
||||||
- `/mv/url` 去除了 pipe
|
- `/mv/url` 去除了 pipe
|
||||||
|
|
||||||
### BUG 修复
|
##### BUG 修复
|
||||||
|
|
||||||
- `/playlist/create`, `/playlist/update` 被判欺骗,增加 cookie
|
- `/playlist/create`, `/playlist/update` 被判欺骗,增加 cookie
|
||||||
|
|
||||||
### 路由增删
|
##### 路由增删
|
||||||
|
|
||||||
- 删除 `/recommend/dislike`
|
- 删除 `/recommend/dislike`
|
||||||
|
|
||||||
|
@ -3,7 +3,7 @@ FROM mhart/alpine-node:9
|
|||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
COPY . /app
|
COPY . /app
|
||||||
|
|
||||||
RUN rm package-lock.json \
|
RUN rm -f package-lock.json \
|
||||||
; rm -rf .idea \
|
; rm -rf .idea \
|
||||||
; rm -rf node_modules \
|
; rm -rf node_modules \
|
||||||
; npm config set registry "https://registry.npm.taobao.org/" \
|
; npm config set registry "https://registry.npm.taobao.org/" \
|
||||||
|
11
README.MD
11
README.MD
@ -99,10 +99,19 @@
|
|||||||
77. 热门评论
|
77. 热门评论
|
||||||
78. 视频评论
|
78. 视频评论
|
||||||
79. 退出登录
|
79. 退出登录
|
||||||
|
80. 所有榜单
|
||||||
|
81. 所有榜单内容摘要
|
||||||
|
82. 收藏视频
|
||||||
|
83. 收藏 MV
|
||||||
|
84. 视频详情
|
||||||
|
85. 相关视频
|
||||||
|
86. 关注用户
|
||||||
|
87. 新歌速递
|
||||||
|
88. 喜欢音乐列表(无序)
|
||||||
|
|
||||||
## 环境要求
|
## 环境要求
|
||||||
|
|
||||||
需要 NodeJS 6.0+ 环境
|
需要 NodeJS 8.12+ 环境
|
||||||
|
|
||||||
## 安装
|
## 安装
|
||||||
|
|
||||||
|
7
app.js
7
app.js
@ -1,6 +1,7 @@
|
|||||||
const fs = require('fs')
|
const fs = require('fs')
|
||||||
const path = require('path')
|
const path = require('path')
|
||||||
const express = require('express')
|
const express = require('express')
|
||||||
|
const bodyParser = require('body-parser')
|
||||||
const request = require('./util/request')
|
const request = require('./util/request')
|
||||||
const package = require('./package.json')
|
const package = require('./package.json')
|
||||||
const exec = require('child_process').exec
|
const exec = require('child_process').exec
|
||||||
@ -42,6 +43,10 @@ app.use((req, res, next) => {
|
|||||||
next()
|
next()
|
||||||
})
|
})
|
||||||
|
|
||||||
|
// body parser
|
||||||
|
app.use(bodyParser.json())
|
||||||
|
app.use(bodyParser.urlencoded({extended: false}))
|
||||||
|
|
||||||
// cache
|
// cache
|
||||||
app.use(cache('2 minutes', ((req, res) => res.statusCode === 200)))
|
app.use(cache('2 minutes', ((req, res) => res.statusCode === 200)))
|
||||||
|
|
||||||
@ -61,7 +66,7 @@ fs.readdirSync(path.join(__dirname, 'module')).reverse().forEach(file => {
|
|||||||
let question = require(path.join(__dirname, 'module', file))
|
let question = require(path.join(__dirname, 'module', file))
|
||||||
|
|
||||||
app.use(route, (req, res) => {
|
app.use(route, (req, res) => {
|
||||||
let query = {...req.query, ...req.body, cookie: req.cookies}
|
let query = Object.assign({}, req.query, req.body, {cookie: req.cookies})
|
||||||
question(query, request)
|
question(query, request)
|
||||||
.then(answer => {
|
.then(answer => {
|
||||||
console.log('[OK]', decodeURIComponent(req.originalUrl))
|
console.log('[OK]', decodeURIComponent(req.originalUrl))
|
||||||
|
159
docs/README.md
159
docs/README.md
@ -95,18 +95,21 @@
|
|||||||
77. 热门评论
|
77. 热门评论
|
||||||
78. 视频评论
|
78. 视频评论
|
||||||
79. 退出登录
|
79. 退出登录
|
||||||
80. 所有榜单内容摘要
|
80. 所有榜单
|
||||||
81. 收藏视频
|
81. 所有榜单内容摘要
|
||||||
82. 收藏 MV
|
82. 收藏视频
|
||||||
83. 视频详情
|
83. 收藏 MV
|
||||||
84. 相关视频
|
84. 视频详情
|
||||||
85. 关注用户
|
85. 相关视频
|
||||||
86. 新歌速递
|
86. 关注用户
|
||||||
|
87. 新歌速递
|
||||||
|
88. 喜欢音乐列表(无序)
|
||||||
|
|
||||||
## 安装
|
## 安装
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
$ git clone git@github.com:Binaryify/NeteaseCloudMusicApi.git
|
$ git clone git@github.com:Binaryify/NeteaseCloudMusicApi.git
|
||||||
|
|
||||||
$ npm install
|
$ npm install
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -161,18 +164,29 @@ request 相关的环境变量
|
|||||||
6. NO_PROXY
|
6. NO_PROXY
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
docker pull twesix/netease-cloud-music
|
docker pull binaryify/netease_cloud_music_api
|
||||||
docker run -d -p 3000:3000 --name netease-cloud-music twesix/netease-music-api
|
|
||||||
|
docker run -d -p 3000:3000 --name netease_cloud_music_api binaryify/netease_cloud_music_api
|
||||||
|
|
||||||
|
|
||||||
|
// 或者
|
||||||
|
docker run -d -p 3000:3000 binaryify/netease_cloud_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 run -d -p 3000:3000 --name netease_cloud_music_api -e http_proxy= -e https_proxy= -e no_proxy= -e HTTP_PROXY= -e HTTPS_PROXY= -e NO_PROXY= binaryify/netease_cloud_music_api
|
||||||
|
|
||||||
|
// 或者
|
||||||
|
docker run -d -p 3000:3000 -e http_proxy= -e https_proxy= -e no_proxy= -e HTTP_PROXY= -e HTTPS_PROXY= -e NO_PROXY= binaryify/netease_cloud_music_api
|
||||||
```
|
```
|
||||||
|
|
||||||
> 由于 docker 镜像更新不是很及时,推荐自己 build, 以下为 build 镜像的方式
|
> 以下是自行 build docker 镜像方式
|
||||||
|
|
||||||
```
|
```
|
||||||
$ git clone https://github.com/Binaryify/NeteaseCloudMusicApi && cd NeteaseCloudMusicApi
|
$ git clone https://github.com/Binaryify/NeteaseCloudMusicApi && cd NeteaseCloudMusicApi
|
||||||
|
|
||||||
$ sudo docker build . -t netease-music-api
|
$ sudo docker build . -t netease-music-api
|
||||||
|
|
||||||
$ sudo docker run -d -p 3000:3000 netease-music-api
|
$ sudo docker run -d -p 3000:3000 netease-music-api
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -182,7 +196,7 @@ $ sudo docker run -d -p 3000:3000 netease-music-api
|
|||||||
|
|
||||||
!> 为使用方便,降低门槛,登录接口直接使用了 get 明文请求,请按实际需求对源码修改
|
!> 为使用方便,降低门槛,登录接口直接使用了 get 明文请求,请按实际需求对源码修改
|
||||||
|
|
||||||
!> 由于接口做了缓存处理 ( 缓存 2 分钟 , 可在 app.js 设置 , 可能会导致登陆后获取不
|
!> 由于接口做了缓存处理 ( 缓存 2 分钟,不缓存数据极容易引起网易服务器高频ip错误 , 可在 app.js 设置 , 可能会导致登陆后获取不
|
||||||
到 cookie), 相同的 url 会在两分钟内只向网易服务器发一次请求 , 如果遇到不需要缓
|
到 cookie), 相同的 url 会在两分钟内只向网易服务器发一次请求 , 如果遇到不需要缓
|
||||||
存结果的接口 , 可在请求 url 后面加一个时间戳参数使 url 不同 , 例子 :
|
存结果的接口 , 可在请求 url 后面加一个时间戳参数使 url 不同 , 例子 :
|
||||||
`/simi/playlist?id=347230×tamp=1503019930000`
|
`/simi/playlist?id=347230×tamp=1503019930000`
|
||||||
@ -280,10 +294,15 @@ Cookies
|
|||||||
|
|
||||||
```
|
```
|
||||||
gender: 性别 0:保密 1:男性 2:女性
|
gender: 性别 0:保密 1:男性 2:女性
|
||||||
|
|
||||||
birthday: 出生日期,时间戳 unix timestamp
|
birthday: 出生日期,时间戳 unix timestamp
|
||||||
|
|
||||||
nickname: 用户昵称
|
nickname: 用户昵称
|
||||||
|
|
||||||
province: 省份id
|
province: 省份id
|
||||||
|
|
||||||
city: 城市id
|
city: 城市id
|
||||||
|
|
||||||
signature:用户签名
|
signature:用户签名
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -311,8 +330,11 @@ signature:用户签名
|
|||||||
|
|
||||||
```
|
```
|
||||||
id:歌单id
|
id:歌单id
|
||||||
name:歌单名字
|
|
||||||
|
name:歌单名字=
|
||||||
|
|
||||||
desc:歌单描述
|
desc:歌单描述
|
||||||
|
|
||||||
tags:歌单tag
|
tags:歌单tag
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -369,6 +391,7 @@ tags:歌单tag
|
|||||||
**必选参数 :** `uid` : 用户 id
|
**必选参数 :** `uid` : 用户 id
|
||||||
|
|
||||||
**可选参数 :**
|
**可选参数 :**
|
||||||
|
|
||||||
`limit` : 返回数量 , 默认为 30
|
`limit` : 返回数量 , 默认为 30
|
||||||
|
|
||||||
`offset` : 偏移数量,用于分页 , 如
|
`offset` : 偏移数量,用于分页 , 如
|
||||||
@ -443,6 +466,7 @@ tags:歌单tag
|
|||||||
说明 : 调用此接口,可获取歌手分类列表
|
说明 : 调用此接口,可获取歌手分类列表
|
||||||
**必选参数 :** `cat` : 即 category Code,歌手类型,默认 1001,返回华语男歌手数据
|
**必选参数 :** `cat` : 即 category Code,歌手类型,默认 1001,返回华语男歌手数据
|
||||||
**可选参数 :**
|
**可选参数 :**
|
||||||
|
|
||||||
`limit` : 返回数量 , 默认为 30
|
`limit` : 返回数量 , 默认为 30
|
||||||
|
|
||||||
`offset` : 偏移数量,用于分页 , 如
|
`offset` : 偏移数量,用于分页 , 如
|
||||||
@ -453,20 +477,35 @@ category Code 取值:
|
|||||||
|
|
||||||
```
|
```
|
||||||
入驻歌手 5001
|
入驻歌手 5001
|
||||||
|
|
||||||
华语男歌手 1001
|
华语男歌手 1001
|
||||||
|
|
||||||
华语女歌手 1002
|
华语女歌手 1002
|
||||||
|
|
||||||
华语组合/乐队 1003
|
华语组合/乐队 1003
|
||||||
|
|
||||||
欧美男歌手 2001
|
欧美男歌手 2001
|
||||||
|
|
||||||
欧美女歌手 2002
|
欧美女歌手 2002
|
||||||
|
|
||||||
欧美组合/乐队 2003
|
欧美组合/乐队 2003
|
||||||
|
|
||||||
日本男歌手 6001
|
日本男歌手 6001
|
||||||
|
|
||||||
日本女歌手 6002
|
日本女歌手 6002
|
||||||
|
|
||||||
日本组合/乐队 6003
|
日本组合/乐队 6003
|
||||||
|
|
||||||
韩国男歌手 7001
|
韩国男歌手 7001
|
||||||
|
|
||||||
韩国女歌手 7002
|
韩国女歌手 7002
|
||||||
|
|
||||||
韩国组合/乐队 7003
|
韩国组合/乐队 7003
|
||||||
|
|
||||||
其他男歌手 4001
|
其他男歌手 4001
|
||||||
|
|
||||||
其他女歌手 4002
|
其他女歌手 4002
|
||||||
|
|
||||||
其他组合/乐队 4003
|
其他组合/乐队 4003
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -560,7 +599,9 @@ category Code 取值:
|
|||||||
返回数据如下图 :
|
返回数据如下图 :
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||

|

|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
### 获取精品歌单
|
### 获取精品歌单
|
||||||
@ -611,7 +652,7 @@ category Code 取值:
|
|||||||
|
|
||||||
> 注 : 部分用户反馈获取的 url 会 403,[hwaphon](https://github.com/hwaphon)找到的
|
> 注 : 部分用户反馈获取的 url 会 403,[hwaphon](https://github.com/hwaphon)找到的
|
||||||
> 解决方案是当获取到音乐的 id 后,将
|
> 解决方案是当获取到音乐的 id 后,将
|
||||||
> http://music.163.com/song/media/outer/url?id=id.mp3 以 src 赋予 Audio 即可播放
|
> https://music.163.com/song/media/outer/url?id=id.mp3 以 src 赋予 Audio 即可播放
|
||||||
|
|
||||||
**必选参数 :** `id` : 音乐 id
|
**必选参数 :** `id` : 音乐 id
|
||||||
|
|
||||||
@ -672,15 +713,6 @@ mp3url 不能直接用 , 可通过 `/song/url` 接口传入歌曲 id 获取具
|
|||||||
|
|
||||||
**必选参数 :** `keywords` : 关键词
|
**必选参数 :** `keywords` : 关键词
|
||||||
|
|
||||||
**可选参数 :**
|
|
||||||
`limit` : 返回数量 , 默认为 30
|
|
||||||
|
|
||||||
`offset` : 偏移数量,用于分页 , 如
|
|
||||||
: 如 :( 页数 -1)\*30, 其中 30 为 limit 的值 , 默认为 0
|
|
||||||
|
|
||||||
`type`: 搜索类型;默认为 1 即单曲 , 取值意义 : 1: 单曲 10: 专辑 100: 歌手 1000:
|
|
||||||
歌单 1002: 用户 1004: MV 1006: 歌词 1009: 电台
|
|
||||||
|
|
||||||
**接口地址 :** `/search/suggest`
|
**接口地址 :** `/search/suggest`
|
||||||
|
|
||||||
**调用例子 :** `/search/suggest?keywords= 海阔天空`
|
**调用例子 :** `/search/suggest?keywords= 海阔天空`
|
||||||
@ -713,6 +745,7 @@ mp3url 不能直接用 , 可通过 `/song/url` 接口传入歌曲 id 获取具
|
|||||||
说明 : 调用此接口 , 传入类型和歌单 id 可收藏歌单或者取消收藏歌单
|
说明 : 调用此接口 , 传入类型和歌单 id 可收藏歌单或者取消收藏歌单
|
||||||
|
|
||||||
**必选参数 :**
|
**必选参数 :**
|
||||||
|
|
||||||
`t` : 类型,1:收藏,2:取消收藏
|
`t` : 类型,1:收藏,2:取消收藏
|
||||||
`id` : 歌单 id
|
`id` : 歌单 id
|
||||||
|
|
||||||
@ -728,6 +761,7 @@ mp3url 不能直接用 , 可通过 `/song/url` 接口传入歌曲 id 获取具
|
|||||||
说明 : 调用此接口 , 可以添加歌曲到歌单或者从歌单删除某首歌曲 ( 需要登录 )
|
说明 : 调用此接口 , 可以添加歌曲到歌单或者从歌单删除某首歌曲 ( 需要登录 )
|
||||||
|
|
||||||
**必选参数 :**
|
**必选参数 :**
|
||||||
|
|
||||||
`op`: 从歌单增加单曲为 add, 删除为 del
|
`op`: 从歌单增加单曲为 add, 删除为 del
|
||||||
|
|
||||||
`pid`: 歌单 id
|
`pid`: 歌单 id
|
||||||
@ -760,16 +794,16 @@ mp3url 不能直接用 , 可通过 `/song/url` 接口传入歌曲 id 获取具
|
|||||||
|
|
||||||
```
|
```
|
||||||
全部:0
|
全部:0
|
||||||
|
|
||||||
华语:7
|
华语:7
|
||||||
|
|
||||||
欧美:96
|
欧美:96
|
||||||
|
|
||||||
日本:8
|
日本:8
|
||||||
|
|
||||||
韩国:16
|
韩国:16
|
||||||
```
|
```
|
||||||
|
|
||||||
`limit`: 取出数量 , 默认为 100
|
|
||||||
|
|
||||||
`offset`: 偏移数量 , 用于分页 , 如 :( 评论页数 -1)\*100, 其中 100 为 limit 的值
|
|
||||||
|
|
||||||
**接口地址 :** `/top/song`
|
**接口地址 :** `/top/song`
|
||||||
|
|
||||||
**调用例子 :** `/top/song?type=96`
|
**调用例子 :** `/top/song?type=96`
|
||||||
@ -879,10 +913,15 @@ mp3url 不能直接用 , 可通过 `/song/url` 接口传入歌曲 id 获取具
|
|||||||
|
|
||||||
```
|
```
|
||||||
0: 歌曲
|
0: 歌曲
|
||||||
|
|
||||||
1: mv
|
1: mv
|
||||||
|
|
||||||
2: 歌单
|
2: 歌单
|
||||||
|
|
||||||
3: 专辑
|
3: 专辑
|
||||||
|
|
||||||
4: 电台
|
4: 电台
|
||||||
|
|
||||||
5: 视频
|
5: 视频
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -905,10 +944,15 @@ mp3url 不能直接用 , 可通过 `/song/url` 接口传入歌曲 id 获取具
|
|||||||
|
|
||||||
```
|
```
|
||||||
0: 歌曲
|
0: 歌曲
|
||||||
|
|
||||||
1: mv
|
1: mv
|
||||||
|
|
||||||
2: 歌单
|
2: 歌单
|
||||||
|
|
||||||
3: 专辑
|
3: 专辑
|
||||||
|
|
||||||
4: 电台
|
4: 电台
|
||||||
|
|
||||||
5: 视频
|
5: 视频
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -925,16 +969,22 @@ mp3url 不能直接用 , 可通过 `/song/url` 接口传入歌曲 id 获取具
|
|||||||
1. 发送评论
|
1. 发送评论
|
||||||
|
|
||||||
**必选参数**
|
**必选参数**
|
||||||
|
|
||||||
`t`:1 发送
|
`t`:1 发送
|
||||||
|
|
||||||
`tpye`: 数字,资源类型,对应歌曲,mv,专辑,歌单,电台,视频对应以下类型
|
`tpye`: 数字,资源类型,对应歌曲,mv,专辑,歌单,电台,视频对应以下类型
|
||||||
|
|
||||||
```
|
```
|
||||||
0: 歌曲
|
0: 歌曲
|
||||||
|
|
||||||
1: mv
|
1: mv
|
||||||
|
|
||||||
2: 歌单
|
2: 歌单
|
||||||
|
|
||||||
3: 专辑
|
3: 专辑
|
||||||
|
|
||||||
4: 电台
|
4: 电台
|
||||||
|
|
||||||
5: 视频
|
5: 视频
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -947,16 +997,23 @@ mp3url 不能直接用 , 可通过 `/song/url` 接口传入歌曲 id 获取具
|
|||||||
2. 删除评论
|
2. 删除评论
|
||||||
|
|
||||||
**必选参数**
|
**必选参数**
|
||||||
|
|
||||||
`t`:0 删除
|
`t`:0 删除
|
||||||
|
|
||||||
`tpye`: 数字,资源类型,对应歌曲,mv,专辑,歌单,电台,视频对应以下类型
|
`tpye`: 数字,资源类型,对应歌曲,mv,专辑,歌单,电台,视频对应以下类型
|
||||||
|
|
||||||
```
|
```
|
||||||
0: 歌曲
|
0: 歌曲
|
||||||
|
|
||||||
1: mv
|
1: mv
|
||||||
|
|
||||||
2: 歌单
|
2: 歌单
|
||||||
|
|
||||||
3: 专辑
|
3: 专辑
|
||||||
|
|
||||||
4: 电台
|
4: 电台
|
||||||
|
|
||||||
|
|
||||||
5: 视频
|
5: 视频
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -964,6 +1021,8 @@ mp3url 不能直接用 , 可通过 `/song/url` 接口传入歌曲 id 获取具
|
|||||||
`content` :内容 id,可通过 `/comment/mv` 等接口获取
|
`content` :内容 id,可通过 `/comment/mv` 等接口获取
|
||||||
|
|
||||||
**调用例子** : `/comment?t=0&type=1&id=5436712&commentId=1535550516319` (在广岛之恋 mv 删除评论)
|
**调用例子** : `/comment?t=0&type=1&id=5436712&commentId=1535550516319` (在广岛之恋 mv 删除评论)
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
### banner
|
### banner
|
||||||
|
|
||||||
@ -983,7 +1042,9 @@ mp3url 不能直接用 , 可通过 `/song/url` 接口传入歌曲 id 获取具
|
|||||||
|
|
||||||
```
|
```
|
||||||
1: mv
|
1: mv
|
||||||
|
|
||||||
4: 电台
|
4: 电台
|
||||||
|
|
||||||
5: 视频
|
5: 视频
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -1195,6 +1256,16 @@ mp3url 不能直接用 , 可通过 `/song/url` 接口传入歌曲 id 获取具
|
|||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
### 喜欢音乐列表
|
||||||
|
|
||||||
|
说明 : 调用此接口 , 传入用户 id, 可获取已喜欢音乐id列表(id数组)
|
||||||
|
|
||||||
|
**必选参数 :** `uid`: 用户 id
|
||||||
|
|
||||||
|
**接口地址 :** `/likelist`
|
||||||
|
|
||||||
|
**调用例子 :** `/likelist?uid=32953014`
|
||||||
|
|
||||||
### 垃圾桶
|
### 垃圾桶
|
||||||
|
|
||||||
说明 : 调用此接口 , 传入音乐 id, 可把该音乐从私人 FM 中移除至垃圾桶
|
说明 : 调用此接口 , 传入音乐 id, 可把该音乐从私人 FM 中移除至垃圾桶
|
||||||
@ -1340,6 +1411,7 @@ MV 数据 , 数据包含 mv 名字 , 歌手 , 发布时间 , mv 视频地址等
|
|||||||
**接口地址 :** `/mv/url`
|
**接口地址 :** `/mv/url`
|
||||||
|
|
||||||
**调用例子 :**
|
**调用例子 :**
|
||||||
|
|
||||||
`/mv/url?id=5436712`
|
`/mv/url?id=5436712`
|
||||||
|
|
||||||
### 相关视频
|
### 相关视频
|
||||||
@ -1385,28 +1457,51 @@ MV 数据 , 数据包含 mv 名字 , 歌手 , 发布时间 , mv 视频地址等
|
|||||||
|
|
||||||
```
|
```
|
||||||
"0": 云音乐新歌榜,
|
"0": 云音乐新歌榜,
|
||||||
|
|
||||||
"1": 云音乐热歌榜,
|
"1": 云音乐热歌榜,
|
||||||
|
|
||||||
"2": 网易原创歌曲榜,
|
"2": 网易原创歌曲榜,
|
||||||
|
|
||||||
"3": 云音乐飙升榜,
|
"3": 云音乐飙升榜,
|
||||||
|
|
||||||
"4": 云音乐电音榜,
|
"4": 云音乐电音榜,
|
||||||
|
|
||||||
"5": UK排行榜周榜,
|
"5": UK排行榜周榜,
|
||||||
|
|
||||||
"6": 美国Billboard周榜
|
"6": 美国Billboard周榜
|
||||||
|
|
||||||
"7": KTV嗨榜,
|
"7": KTV嗨榜,
|
||||||
|
|
||||||
"8": iTunes榜,
|
"8": iTunes榜,
|
||||||
|
|
||||||
"9": Hit FM Top榜,
|
"9": Hit FM Top榜,
|
||||||
|
|
||||||
"10": 日本Oricon周榜
|
"10": 日本Oricon周榜
|
||||||
|
|
||||||
"11": 韩国Melon排行榜周榜,
|
"11": 韩国Melon排行榜周榜,
|
||||||
|
|
||||||
"12": 韩国Mnet排行榜周榜,
|
"12": 韩国Mnet排行榜周榜,
|
||||||
|
|
||||||
"13": 韩国Melon原声周榜,
|
"13": 韩国Melon原声周榜,
|
||||||
|
|
||||||
"14": 中国TOP排行榜(港台榜),
|
"14": 中国TOP排行榜(港台榜),
|
||||||
|
|
||||||
"15": 中国TOP排行榜(内地榜)
|
"15": 中国TOP排行榜(内地榜)
|
||||||
|
|
||||||
"16": 香港电台中文歌曲龙虎榜,
|
"16": 香港电台中文歌曲龙虎榜,
|
||||||
|
|
||||||
"17": 华语金曲榜,
|
"17": 华语金曲榜,
|
||||||
|
|
||||||
"18": 中国嘻哈榜,
|
"18": 中国嘻哈榜,
|
||||||
|
|
||||||
"19": 法国 NRJ EuroHot 30周榜,
|
"19": 法国 NRJ EuroHot 30周榜,
|
||||||
|
|
||||||
"20": 台湾Hito排行榜,
|
"20": 台湾Hito排行榜,
|
||||||
|
|
||||||
"21": Beatport全球电子舞曲榜,
|
"21": Beatport全球电子舞曲榜,
|
||||||
|
|
||||||
"22": 云音乐ACG音乐榜,
|
"22": 云音乐ACG音乐榜,
|
||||||
|
|
||||||
"23": 云音乐嘻哈榜
|
"23": 云音乐嘻哈榜
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -1418,6 +1513,13 @@ MV 数据 , 数据包含 mv 名字 , 歌手 , 发布时间 , mv 视频地址等
|
|||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
### 所有榜单
|
||||||
|
|
||||||
|
说明 : 调用此接口,可获取所有榜单
|
||||||
|
**接口地址 :** `/toplist`
|
||||||
|
|
||||||
|
**调用例子 :** `/toplist`
|
||||||
|
|
||||||
### 所有榜单内容摘要
|
### 所有榜单内容摘要
|
||||||
|
|
||||||
说明 : 调用此接口,可获取所有榜单内容摘要
|
说明 : 调用此接口,可获取所有榜单内容摘要
|
||||||
@ -1517,11 +1619,14 @@ type='1009' 获取其 id, 如`/search?keywords= 代码时间 &type=1009`
|
|||||||
**必选参数 :** `rid`: 电台 的 id
|
**必选参数 :** `rid`: 电台 的 id
|
||||||
|
|
||||||
**可选参数 :**
|
**可选参数 :**
|
||||||
|
|
||||||
`limit` : 返回数量 , 默认为 30
|
`limit` : 返回数量 , 默认为 30
|
||||||
|
|
||||||
`offset` : 偏移数量,用于分页 , 如
|
`offset` : 偏移数量,用于分页 , 如
|
||||||
: 如 :( 页数 -1)\*30, 其中 30 为 limit 的值 , 默认为 0
|
: 如 :( 页数 -1)\*30, 其中 30 为 limit 的值 , 默认为 0
|
||||||
|
|
||||||
|
`asc` : 排序方式,默认为 `false` (新 => 老 ) 设置 `true` 可改为 老 => 新
|
||||||
|
|
||||||
**接口地址 :** `/dj/program`
|
**接口地址 :** `/dj/program`
|
||||||
|
|
||||||
**调用例子 :** `/dj/program?rid=336355127&limit=40` ( 对应 ' 代码时间 ' 的节目列表 )
|
**调用例子 :** `/dj/program?rid=336355127&limit=40` ( 对应 ' 代码时间 ' 的节目列表 )
|
||||||
|
@ -565,7 +565,7 @@ category Code 取值:
|
|||||||
|
|
||||||
> 注 : 部分用户反馈获取的 url 会 403,[hwaphon](https://github.com/hwaphon)找到的
|
> 注 : 部分用户反馈获取的 url 会 403,[hwaphon](https://github.com/hwaphon)找到的
|
||||||
> 解决方案是当获取到音乐的 id 后,将
|
> 解决方案是当获取到音乐的 id 后,将
|
||||||
> http://music.163.com/song/media/outer/url?id=id.mp3 以 src 赋予 Audio 即可播放
|
> https://music.163.com/song/media/outer/url?id=id.mp3 以 src 赋予 Audio 即可播放
|
||||||
|
|
||||||
**必选参数 :** `id` : 音乐 id
|
**必选参数 :** `id` : 音乐 id
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
module.exports = (query, request) => {
|
module.exports = (query, request) => {
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/v1/album/${query.id}`, {},
|
'POST', `https://music.163.com/weapi/v1/album/${query.id}`, {},
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -7,7 +7,7 @@ module.exports = (query, request) => {
|
|||||||
total: true
|
total: true
|
||||||
}
|
}
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/artist/albums/${query.id}`, data,
|
'POST', `https://music.163.com/weapi/artist/albums/${query.id}`, data,
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -5,7 +5,7 @@ module.exports = (query, request) => {
|
|||||||
id: query.id
|
id: query.id
|
||||||
}
|
}
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/artist/introduction`, data,
|
'POST', `https://music.163.com/weapi/artist/introduction`, data,
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -31,7 +31,7 @@ module.exports = (query, request) => {
|
|||||||
total: true
|
total: true
|
||||||
}
|
}
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/artist/list`, data,
|
'POST', `https://music.163.com/weapi/artist/list`, data,
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -8,7 +8,7 @@ module.exports = (query, request) => {
|
|||||||
total: true
|
total: true
|
||||||
}
|
}
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/artist/mvs`, data,
|
'POST', `https://music.163.com/weapi/artist/mvs`, data,
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -7,7 +7,7 @@ module.exports = (query, request) => {
|
|||||||
artistIds: '[' + query.id + ']'
|
artistIds: '[' + query.id + ']'
|
||||||
}
|
}
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/artist/${query.t}`, data,
|
'POST', `https://music.163.com/weapi/artist/${query.t}`, data,
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -7,7 +7,7 @@ module.exports = (query, request) => {
|
|||||||
total: true
|
total: true
|
||||||
}
|
}
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/artist/sublist`, data,
|
'POST', `https://music.163.com/weapi/artist/sublist`, data,
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
module.exports = (query, request) => {
|
module.exports = (query, request) => {
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/v1/artist/${query.id}`, {},
|
'POST', `https://music.163.com/weapi/v1/artist/${query.id}`, {},
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
module.exports = (query, request) => {
|
module.exports = (query, request) => {
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/api/v2/banner/get`, {clientType: "pc"},
|
'POST', `https://music.163.com/api/v2/banner/get`, {clientType: "pc"},
|
||||||
{crypto: 'linuxapi', proxy: query.proxy}
|
{crypto: 'linuxapi', proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -6,7 +6,7 @@ module.exports = (query, request) => {
|
|||||||
br: parseInt(query.br || 999000)
|
br: parseInt(query.br || 999000)
|
||||||
}
|
}
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/song/enhance/player/url`, data,
|
'POST', `https://music.163.com/weapi/song/enhance/player/url`, data,
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
.then(response => {
|
.then(response => {
|
||||||
|
@ -19,7 +19,7 @@ module.exports = (query, request) => {
|
|||||||
else if(query.t == 'delete')
|
else if(query.t == 'delete')
|
||||||
data.commentId = query.commentId
|
data.commentId = query.commentId
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/resource/comments/${query.t}`, data,
|
'POST', `https://music.163.com/weapi/resource/comments/${query.t}`, data,
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -7,7 +7,7 @@ module.exports = (query, request) => {
|
|||||||
offset: query.offset || 0
|
offset: query.offset || 0
|
||||||
}
|
}
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/v1/resource/comments/R_AL_3_${query.id}`, data,
|
'POST', `https://music.163.com/weapi/v1/resource/comments/R_AL_3_${query.id}`, data,
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -7,7 +7,7 @@ module.exports = (query, request) => {
|
|||||||
offset: query.offset || 0
|
offset: query.offset || 0
|
||||||
}
|
}
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/v1/resource/comments/A_DJ_1_${query.id}`, data,
|
'POST', `https://music.163.com/weapi/v1/resource/comments/A_DJ_1_${query.id}`, data,
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -16,7 +16,7 @@ module.exports = (query, request) => {
|
|||||||
offset: query.offset || 0
|
offset: query.offset || 0
|
||||||
}
|
}
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/v1/resource/hotcomments/${query.type}${query.id}`, data,
|
'POST', `https://music.163.com/weapi/v1/resource/hotcomments/${query.type}${query.id}`, data,
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -16,7 +16,7 @@ module.exports = (query, request) => {
|
|||||||
commentId: query.cid
|
commentId: query.cid
|
||||||
}
|
}
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/v1/comment/${query.t}`, data,
|
'POST', `https://music.163.com/weapi/v1/comment/${query.t}`, data,
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -7,7 +7,7 @@ module.exports = (query, request) => {
|
|||||||
offset: query.offset || 0
|
offset: query.offset || 0
|
||||||
}
|
}
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/v1/resource/comments/R_SO_4_${query.id}`, data,
|
'POST', `https://music.163.com/weapi/v1/resource/comments/R_SO_4_${query.id}`, data,
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -7,7 +7,7 @@ module.exports = (query, request) => {
|
|||||||
offset: query.offset || 0
|
offset: query.offset || 0
|
||||||
}
|
}
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/v1/resource/comments/R_MV_5_${query.id}`, data,
|
'POST', `https://music.163.com/weapi/v1/resource/comments/R_MV_5_${query.id}`, data,
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -7,7 +7,7 @@ module.exports = (query, request) => {
|
|||||||
offset: query.offset || 0
|
offset: query.offset || 0
|
||||||
}
|
}
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/v1/resource/comments/A_PL_0_${query.id}`, data,
|
'POST', `https://music.163.com/weapi/v1/resource/comments/A_PL_0_${query.id}`, data,
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -7,7 +7,7 @@ module.exports = (query, request) => {
|
|||||||
offset: query.offset || 0
|
offset: query.offset || 0
|
||||||
}
|
}
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/v1/resource/comments/R_VI_62_${query.id}`, data,
|
'POST', `https://music.163.com/weapi/v1/resource/comments/R_VI_62_${query.id}`, data,
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -12,7 +12,7 @@ module.exports = (query, request) => {
|
|||||||
type: query.type || 0
|
type: query.type || 0
|
||||||
}
|
}
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/point/dailyTask`, data,
|
'POST', `https://music.163.com/weapi/point/dailyTask`, data,
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
module.exports = (query, request) => {
|
module.exports = (query, request) => {
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/djradio/category/get`, {},
|
'POST', `https://music.163.com/weapi/djradio/category/get`, {},
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -5,7 +5,7 @@ module.exports = (query, request) => {
|
|||||||
id: query.rid
|
id: query.rid
|
||||||
}
|
}
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/djradio/get`, data,
|
'POST', `https://music.163.com/weapi/djradio/get`, data,
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -11,7 +11,7 @@ module.exports = (query, request) => {
|
|||||||
offset: query.offset
|
offset: query.offset
|
||||||
}
|
}
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/djradio/hot/v1`, data,
|
'POST', `https://music.163.com/weapi/djradio/hot/v1`, data,
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -6,7 +6,7 @@ module.exports = (query, request) => {
|
|||||||
offset: query.offset || 0
|
offset: query.offset || 0
|
||||||
}
|
}
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/djradio/home/paygift/list?_nmclfl=1`, data,
|
'POST', `https://music.163.com/weapi/djradio/home/paygift/list?_nmclfl=1`, data,
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -1,14 +1,17 @@
|
|||||||
// 电台节目列表
|
// 电台节目列表
|
||||||
|
const { toBoolean } = require('../util')
|
||||||
module.exports = (query, request) => {
|
module.exports = (query, request) => {
|
||||||
const data = {
|
const data = {
|
||||||
radioId: query.rid,
|
radioId: query.rid,
|
||||||
limit: query.limit || 30,
|
limit: query.limit || 30,
|
||||||
offset: query.offset || 0,
|
offset: query.offset || 0,
|
||||||
asc: query.asc
|
asc: toBoolean(query.asc)
|
||||||
}
|
}
|
||||||
|
console.log(toBoolean(query.asc))
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/dj/program/byradio`, data,
|
'POST',
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
`https://music.163.com/weapi/dj/program/byradio`,
|
||||||
|
data,
|
||||||
|
{ crypto: 'weapi', cookie: query.cookie, proxy: query.proxy }
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -5,7 +5,7 @@ module.exports = (query, request) => {
|
|||||||
id: query.id
|
id: query.id
|
||||||
}
|
}
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/dj/program/detail`, data,
|
'POST', `https://music.163.com/weapi/dj/program/detail`, data,
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
module.exports = (query, request) => {
|
module.exports = (query, request) => {
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/djradio/recommend/v1`, {},
|
'POST', `https://music.163.com/weapi/djradio/recommend/v1`, {},
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@ -28,7 +28,7 @@ module.exports = (query, request) => {
|
|||||||
cateId: query.type
|
cateId: query.type
|
||||||
}
|
}
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/djradio/recommend`, data,
|
'POST', `https://music.163.com/weapi/djradio/recommend`, data,
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -6,7 +6,7 @@ module.exports = (query, request) => {
|
|||||||
id: query.rid
|
id: query.rid
|
||||||
}
|
}
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/djradio/${query.t}`, data,
|
'POST', `https://music.163.com/weapi/djradio/${query.t}`, data,
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -7,7 +7,7 @@ module.exports = (query, request) => {
|
|||||||
total: true
|
total: true
|
||||||
}
|
}
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/djradio/get/subed`, data,
|
'POST', `https://music.163.com/weapi/djradio/get/subed`, data,
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
module.exports = (query, request) => {
|
module.exports = (query, request) => {
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/v1/event/get`, {},
|
'POST', `https://music.163.com/weapi/v1/event/get`, {},
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -5,7 +5,7 @@ module.exports = (query, request) => {
|
|||||||
songId: query.id
|
songId: query.id
|
||||||
}
|
}
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/radio/trash/add?alg=RT&songId=${query.id}&time=${query.time || 25}`, data,
|
'POST', `https://music.163.com/weapi/radio/trash/add?alg=RT&songId=${query.id}&time=${query.time || 25}`, data,
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -1,9 +1,10 @@
|
|||||||
// 关注与取消关注用户
|
// 关注与取消关注用户
|
||||||
|
|
||||||
module.exports = (query, request) => {
|
module.exports = (query, request) => {
|
||||||
|
query.cookie.os = 'pc'
|
||||||
query.t = (query.t == 1 ? 'follow' : 'delfollow')
|
query.t = (query.t == 1 ? 'follow' : 'delfollow')
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/user/${query.t}/${query.id}`, {},
|
'POST', `https://music.163.com/weapi/user/${query.t}/${query.id}`, {},
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -1,13 +1,18 @@
|
|||||||
// 红心与取消红心歌曲
|
// 红心与取消红心歌曲
|
||||||
|
const { toBoolean } = require('../util')
|
||||||
|
|
||||||
module.exports = (query, request) => {
|
module.exports = (query, request) => {
|
||||||
query.like = (query.like ? true : false)
|
query.like = query.like ? true : false
|
||||||
const data = {
|
const data = {
|
||||||
trackId: query.id,
|
trackId: query.id,
|
||||||
like: query.like
|
like: query.like
|
||||||
}
|
}
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/radio/like?alg=${query.alg || 'itembased'}&trackId=${query.id}&like=${query.like}&time=${query.time || 25}`, data,
|
'POST',
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
`https://music.163.com/weapi/radio/like?alg=${query.alg ||
|
||||||
|
'itembased'}&trackId=${query.id}&like=${query.like}&time=${query.time ||
|
||||||
|
25}`,
|
||||||
|
data,
|
||||||
|
{ crypto: 'weapi', cookie: query.cookie, proxy: query.proxy }
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -5,7 +5,7 @@ module.exports = (query, request) => {
|
|||||||
uid: query.uid
|
uid: query.uid
|
||||||
}
|
}
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/song/like/get`, data,
|
'POST', `https://music.163.com/weapi/song/like/get`, data,
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -9,7 +9,7 @@ module.exports = (query, request) => {
|
|||||||
rememberLogin: 'true'
|
rememberLogin: 'true'
|
||||||
}
|
}
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/login`, data,
|
'POST', `https://music.163.com/weapi/login`, data,
|
||||||
{crypto: 'weapi', ua: 'pc', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', ua: 'pc', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -9,7 +9,7 @@ module.exports = (query, request) => {
|
|||||||
rememberLogin: 'true'
|
rememberLogin: 'true'
|
||||||
}
|
}
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/login/cellphone`, data,
|
'POST', `https://music.163.com/weapi/login/cellphone`, data,
|
||||||
{crypto: 'weapi', ua: 'pc', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', ua: 'pc', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
module.exports = (query, request) => {
|
module.exports = (query, request) => {
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/login/token/refresh`, {},
|
'POST', `https://music.163.com/weapi/login/token/refresh`, {},
|
||||||
{crypto: 'weapi', ua: 'pc', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', ua: 'pc', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
module.exports = (query, request) => {
|
module.exports = (query, request) => {
|
||||||
return request(
|
return request(
|
||||||
'GET', `http://music.163.com`, {},
|
'GET', `https://music.163.com`, {},
|
||||||
{cookie: query.cookie, proxy: query.proxy}
|
{cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
.then(response => {
|
.then(response => {
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
module.exports = (query, request) => {
|
module.exports = (query, request) => {
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/logout`, {},
|
'POST', `https://music.163.com/weapi/logout`, {},
|
||||||
{crypto: 'weapi', ua: 'pc', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', ua: 'pc', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
module.exports = (query, request) => {
|
module.exports = (query, request) => {
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/song/lyric?os=osx&id=${query.id}&lv=-1&kv=-1&tv=-1`, {},
|
'POST', `https://music.163.com/weapi/song/lyric?os=osx&id=${query.id}&lv=-1&kv=-1&tv=-1`, {},
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -5,7 +5,7 @@ module.exports = (query, request) => {
|
|||||||
id: query.mvid
|
id: query.mvid
|
||||||
}
|
}
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/mv/detail`, data,
|
'POST', `https://music.163.com/weapi/mv/detail`, data,
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -7,7 +7,7 @@ module.exports = (query, request) => {
|
|||||||
total: true
|
total: true
|
||||||
}
|
}
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/mv/first`, data,
|
'POST', `https://music.163.com/weapi/mv/first`, data,
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -7,7 +7,7 @@ module.exports = (query, request) => {
|
|||||||
mvIds: '["' + query.mvid + '"]'
|
mvIds: '["' + query.mvid + '"]'
|
||||||
}
|
}
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/mv/${query.t}`, data,
|
'POST', `https://music.163.com/weapi/mv/${query.t}`, data,
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -6,7 +6,7 @@ module.exports = (query, request) => {
|
|||||||
r: query.res || 1080
|
r: query.res || 1080
|
||||||
}
|
}
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/song/enhance/play/mv/url`, data,
|
'POST', `https://music.163.com/weapi/song/enhance/play/mv/url`, data,
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
module.exports = (query, request) => {
|
module.exports = (query, request) => {
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/v1/radio/get`, {},
|
'POST', `https://music.163.com/weapi/v1/radio/get`, {},
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -8,7 +8,7 @@ module.exports = (query, request) => {
|
|||||||
n: 1000
|
n: 1000
|
||||||
}
|
}
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/personalized/playlist`, data,
|
'POST', `https://music.163.com/weapi/personalized/playlist`, data,
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
module.exports = (query, request) => {
|
module.exports = (query, request) => {
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/personalized/djprogram`, {},
|
'POST', `https://music.163.com/weapi/personalized/djprogram`, {},
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
module.exports = (query, request) => {
|
module.exports = (query, request) => {
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/personalized/mv`, {},
|
'POST', `https://music.163.com/weapi/personalized/mv`, {},
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -5,7 +5,7 @@ module.exports = (query, request) => {
|
|||||||
type: "recommend"
|
type: "recommend"
|
||||||
}
|
}
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/personalized/newsong`, data,
|
'POST', `https://music.163.com/weapi/personalized/newsong`, data,
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
module.exports = (query, request) => {
|
module.exports = (query, request) => {
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/personalized/privatecontent`, {},
|
'POST', `https://music.163.com/weapi/personalized/privatecontent`, {},
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
module.exports = (query, request) => {
|
module.exports = (query, request) => {
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/playlist/catalogue`, {},
|
'POST', `https://music.163.com/weapi/playlist/catalogue`, {},
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -6,7 +6,7 @@ module.exports = (query, request) => {
|
|||||||
name: query.name
|
name: query.name
|
||||||
}
|
}
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/playlist/create`, data,
|
'POST', `https://music.163.com/weapi/playlist/create`, data,
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -7,7 +7,7 @@ module.exports = (query, request) => {
|
|||||||
s: query.s || 8
|
s: query.s || 8
|
||||||
}
|
}
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/v3/playlist/detail`, data,
|
'POST', `https://music.163.com/weapi/v3/playlist/detail`, data,
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'linuxapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
module.exports = (query, request) => {
|
module.exports = (query, request) => {
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/playlist/hottags`, {},
|
'POST', `https://music.163.com/weapi/playlist/hottags`, {},
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -6,7 +6,7 @@ module.exports = (query, request) => {
|
|||||||
id: query.id
|
id: query.id
|
||||||
}
|
}
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/playlist/${query.t}`, data,
|
'POST', `https://music.163.com/weapi/playlist/${query.t}`, data,
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -7,7 +7,7 @@ module.exports = (query, request) => {
|
|||||||
trackIds: '[' + query.tracks + ']' // 歌曲id
|
trackIds: '[' + query.tracks + ']' // 歌曲id
|
||||||
}
|
}
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/playlist/manipulate/tracks`, data,
|
'POST', `https://music.163.com/weapi/playlist/manipulate/tracks`, data,
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -10,7 +10,7 @@ module.exports = (query, request) => {
|
|||||||
"/api/playlist/update/name": `{"id":${query.id},"name":"${query.name}"}`
|
"/api/playlist/update/name": `{"id":${query.id},"name":"${query.name}"}`
|
||||||
}
|
}
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/batch`, data,
|
'POST', `https://music.163.com/weapi/batch`, data,
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -7,7 +7,7 @@ module.exports = (query, request) => {
|
|||||||
offset: query.offset || 0
|
offset: query.offset || 0
|
||||||
}
|
}
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/program/recommend/v1`, data,
|
'POST', `https://music.163.com/weapi/program/recommend/v1`, data,
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
module.exports = (query, request) => {
|
module.exports = (query, request) => {
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/v1/discovery/recommend/resource`, {},
|
'POST', `https://music.163.com/weapi/v1/discovery/recommend/resource`, {},
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -7,7 +7,7 @@ module.exports = (query, request) => {
|
|||||||
total: true
|
total: true
|
||||||
}
|
}
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/v1/discovery/recommend/songs`, data,
|
'POST', `https://music.163.com/weapi/v1/discovery/recommend/songs`, data,
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -6,7 +6,7 @@ module.exports = (query, request) => {
|
|||||||
type: (/^\d+$/.test(query.id)) ? 0 : 1
|
type: (/^\d+$/.test(query.id)) ? 0 : 1
|
||||||
}
|
}
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/cloudvideo/v1/allvideo/rcmd`, data,
|
'POST', `https://music.163.com/weapi/cloudvideo/v1/allvideo/rcmd`, data,
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
module.exports = (query, request) => {
|
module.exports = (query, request) => {
|
||||||
return request(
|
return request(
|
||||||
'GET', `http://music.163.com/playlist?id=${query.id}`, {},
|
'GET', `https://music.163.com/playlist?id=${query.id}`, {},
|
||||||
{ua: 'pc', cookie: query.cookie, proxy: query.proxy}
|
{ua: 'pc', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
.then(response => {
|
.then(response => {
|
||||||
|
@ -11,7 +11,7 @@ module.exports = (query, request) => {
|
|||||||
threadId: query.type + query.id
|
threadId: query.type + query.id
|
||||||
}
|
}
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/resource/${query.t}`, data,
|
'POST', `https://music.163.com/weapi/resource/${query.t}`, data,
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -8,7 +8,7 @@ module.exports = (query, request) => {
|
|||||||
offset: query.offset || 0
|
offset: query.offset || 0
|
||||||
}
|
}
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/search/get`, data,
|
'POST', `https://music.163.com/weapi/search/get`, data,
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -5,7 +5,7 @@ module.exports = (query, request) => {
|
|||||||
type: 1111
|
type: 1111
|
||||||
}
|
}
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/search/hot`, data,
|
'POST', `https://music.163.com/weapi/search/hot`, data,
|
||||||
{crypto: 'weapi', ua: 'mobile', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', ua: 'mobile', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -6,7 +6,7 @@ module.exports = (query, request) => {
|
|||||||
s: query.keywords || ''
|
s: query.keywords || ''
|
||||||
}
|
}
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/search/suggest/multimatch`, data,
|
'POST', `https://music.163.com/weapi/search/suggest/multimatch`, data,
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -5,7 +5,7 @@ module.exports = (query, request) => {
|
|||||||
s: query.keywords || ''
|
s: query.keywords || ''
|
||||||
}
|
}
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/search/suggest/web`, data,
|
'POST', `https://music.163.com/weapi/search/suggest/web`, data,
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -9,7 +9,7 @@ module.exports = (query, request) => {
|
|||||||
userIds: '[' + query.user_ids + ']'
|
userIds: '[' + query.user_ids + ']'
|
||||||
}
|
}
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/msg/private/send`, data,
|
'POST', `https://music.163.com/weapi/msg/private/send`, data,
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -9,7 +9,7 @@ module.exports = (query, request) => {
|
|||||||
userIds: '[' + query.user_ids + ']'
|
userIds: '[' + query.user_ids + ']'
|
||||||
}
|
}
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/msg/private/send`, data,
|
'POST', `https://music.163.com/weapi/msg/private/send`, data,
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -5,7 +5,7 @@ module.exports = (query, request) => {
|
|||||||
artistid: query.id
|
artistid: query.id
|
||||||
}
|
}
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/discovery/simiArtist`, data,
|
'POST', `https://music.163.com/weapi/discovery/simiArtist`, data,
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -5,7 +5,7 @@ module.exports = (query, request) => {
|
|||||||
mvid: query.mvid
|
mvid: query.mvid
|
||||||
}
|
}
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/discovery/simiMV`, data,
|
'POST', `https://music.163.com/weapi/discovery/simiMV`, data,
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -7,7 +7,7 @@ module.exports = (query, request) => {
|
|||||||
offset: query.offset || 0
|
offset: query.offset || 0
|
||||||
}
|
}
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/discovery/simiPlaylist`, data,
|
'POST', `https://music.163.com/weapi/discovery/simiPlaylist`, data,
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -7,7 +7,7 @@ module.exports = (query, request) => {
|
|||||||
offset: query.offset || 0
|
offset: query.offset || 0
|
||||||
}
|
}
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/v1/discovery/simiSong`, data,
|
'POST', `https://music.163.com/weapi/v1/discovery/simiSong`, data,
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -7,7 +7,7 @@ module.exports = (query, request) => {
|
|||||||
offset: query.offset || 0
|
offset: query.offset || 0
|
||||||
}
|
}
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/discovery/simiUser`, data,
|
'POST', `https://music.163.com/weapi/discovery/simiUser`, data,
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -7,7 +7,7 @@ module.exports = (query, request) => {
|
|||||||
ids: '[' + query.ids.join(',') + ']'
|
ids: '[' + query.ids.join(',') + ']'
|
||||||
}
|
}
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/v3/song/detail`, data,
|
'POST', `https://music.163.com/weapi/v3/song/detail`, data,
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -5,11 +5,11 @@ const crypto = require('crypto')
|
|||||||
module.exports = (query, request) => {
|
module.exports = (query, request) => {
|
||||||
if(!('MUSIC_U' in query.cookie)) query.cookie._ntes_nuid = crypto.randomBytes(16).toString("hex")
|
if(!('MUSIC_U' in query.cookie)) query.cookie._ntes_nuid = crypto.randomBytes(16).toString("hex")
|
||||||
const data = {
|
const data = {
|
||||||
ids: '[' + parseInt(query.id) + ']',
|
ids: '[' + query.id + ']',
|
||||||
br: parseInt(query.br || 999000)
|
br: parseInt(query.br || 999000)
|
||||||
}
|
}
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/song/enhance/player/url`, data,
|
'POST', `https://music.163.com/weapi/song/enhance/player/url`, data,
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -8,7 +8,7 @@ module.exports = (query, request) => {
|
|||||||
total: true
|
total: true
|
||||||
}
|
}
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/album/new`, data,
|
'POST', `https://music.163.com/weapi/album/new`, data,
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -7,7 +7,7 @@ module.exports = (query, request) => {
|
|||||||
total: true
|
total: true
|
||||||
}
|
}
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/artist/top`, data,
|
'POST', `https://music.163.com/weapi/artist/top`, data,
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -33,7 +33,7 @@ module.exports = (query, request) => {
|
|||||||
n: 10000
|
n: 10000
|
||||||
}
|
}
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/v3/playlist/detail`, data,
|
'POST', `https://music.163.com/weapi/v3/playlist/detail`, data,
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'linuxapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -7,7 +7,7 @@ module.exports = (query, request) => {
|
|||||||
total: true
|
total: true
|
||||||
}
|
}
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/mv/toplist`, data,
|
'POST', `https://music.163.com/weapi/mv/toplist`, data,
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -9,7 +9,7 @@ module.exports = (query, request) => {
|
|||||||
total: true
|
total: true
|
||||||
}
|
}
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/playlist/list`, data,
|
'POST', `https://music.163.com/weapi/playlist/list`, data,
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -8,7 +8,7 @@ module.exports = (query, request) => {
|
|||||||
total: true
|
total: true
|
||||||
}
|
}
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/playlist/highquality/list`, data,
|
'POST', `https://music.163.com/weapi/playlist/highquality/list`, data,
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -3,13 +3,13 @@
|
|||||||
module.exports = (query, request) => {
|
module.exports = (query, request) => {
|
||||||
const data = {
|
const data = {
|
||||||
areaId: query.type || 0, // 全部:0 华语:7 欧美:96 日本:8 韩国:16
|
areaId: query.type || 0, // 全部:0 华语:7 欧美:96 日本:8 韩国:16
|
||||||
limit: query.limit || 100,
|
// limit: query.limit || 100,
|
||||||
offset: query.offset || 0,
|
// offset: query.offset || 0,
|
||||||
total: true
|
total: true
|
||||||
}
|
}
|
||||||
return request(
|
return request(
|
||||||
'POST',
|
'POST',
|
||||||
`http://music.163.com/weapi/v1/discovery/new/songs`,
|
`https://music.163.com/weapi/v1/discovery/new/songs`,
|
||||||
data,
|
data,
|
||||||
{ crypto: 'weapi', cookie: query.cookie, proxy: query.proxy }
|
{ crypto: 'weapi', cookie: query.cookie, proxy: query.proxy }
|
||||||
)
|
)
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
module.exports = (query, request) => {
|
module.exports = (query, request) => {
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/toplist`, {},
|
'POST', `https://music.163.com/weapi/toplist`, {},
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'linuxapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -8,7 +8,7 @@ module.exports = (query, request) => {
|
|||||||
total: true
|
total: true
|
||||||
}
|
}
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/toplist/artist`, data,
|
'POST', `https://music.163.com/weapi/toplist/artist`, data,
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
module.exports = (query, request) => {
|
module.exports = (query, request) => {
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/toplist/detail`, {},
|
'POST', `https://music.163.com/weapi/toplist/detail`, {},
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -5,7 +5,7 @@ module.exports = (query, request) => {
|
|||||||
userId: query.uid
|
userId: query.uid
|
||||||
}
|
}
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/djradio/get/byuser`, data,
|
'POST', `https://music.163.com/weapi/djradio/get/byuser`, data,
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -6,7 +6,7 @@ module.exports = (query, request) => {
|
|||||||
offset: query.offset || 0
|
offset: query.offset || 0
|
||||||
}
|
}
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/v1/cloud/get`, data,
|
'POST', `https://music.163.com/weapi/v1/cloud/get`, data,
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -6,7 +6,7 @@ module.exports = (query, request) => {
|
|||||||
id: query.id
|
id: query.id
|
||||||
}
|
}
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/v1/cloud/get/byids`, data,
|
'POST', `https://music.163.com/weapi/v1/cloud/get/byids`, data,
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
module.exports = (query, request) => {
|
module.exports = (query, request) => {
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/v1/user/detail/${query.uid}`, {},
|
'POST', `https://music.163.com/weapi/v1/user/detail/${query.uid}`, {},
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -6,7 +6,7 @@ module.exports = (query, request) => {
|
|||||||
offset: query.offset || 0
|
offset: query.offset || 0
|
||||||
}
|
}
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/dj/program/${query.uid}`, data,
|
'POST', `https://music.163.com/weapi/dj/program/${query.uid}`, data,
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -6,7 +6,7 @@ module.exports = (query, request) => {
|
|||||||
getcounts: true
|
getcounts: true
|
||||||
}
|
}
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/event/get/${query.uid}`, data,
|
'POST', `https://music.163.com/weapi/event/get/${query.uid}`, data,
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -7,7 +7,7 @@ module.exports = (query, request) => {
|
|||||||
offset: query.offset || 0
|
offset: query.offset || 0
|
||||||
}
|
}
|
||||||
return request(
|
return request(
|
||||||
'POST', `http://music.163.com/weapi/user/getfolloweds`, data,
|
'POST', `https://music.163.com/weapi/user/getfolloweds`, data,
|
||||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||||
)
|
)
|
||||||
}
|
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user