mirror of
https://gitlab.com/Binaryify/neteasecloudmusicapi.git
synced 2025-07-04 17:58:56 +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
|
||||
|
||||
@ -12,7 +35,7 @@
|
||||
|
||||
### 3.0.0 | 2018.10.14
|
||||
|
||||
## 整体
|
||||
#### 整体
|
||||
|
||||
- 完善文档,增加之前没写进文档的接口说明
|
||||
|
||||
@ -24,7 +47,7 @@
|
||||
|
||||
- 增加 cookie-parser
|
||||
|
||||
### 参数修改
|
||||
##### 参数修改
|
||||
|
||||
- `/song/detail` 增加多 id 支持
|
||||
|
||||
@ -34,7 +57,7 @@
|
||||
|
||||
- `/top/playlist/highquality` 增加分页参数 `before`
|
||||
|
||||
### 统一参数
|
||||
##### 统一参数
|
||||
|
||||
- `/artist/sub` 与 `artist/unsub` 合并, 用`query.t`
|
||||
|
||||
@ -42,7 +65,7 @@
|
||||
|
||||
- `/comment` 中 `query.action` 换成 `query.t`
|
||||
|
||||
### URL 重命名
|
||||
##### URL 重命名
|
||||
|
||||
- `/video` 改为 `video/url`
|
||||
|
||||
@ -50,17 +73,17 @@
|
||||
|
||||
- `/music/url` 改为 `/song/url`
|
||||
|
||||
### 转发逻辑修改
|
||||
##### 转发逻辑修改
|
||||
|
||||
- `/toplist/artist` 换成 weapi
|
||||
|
||||
- `/mv/url` 去除了 pipe
|
||||
|
||||
### BUG 修复
|
||||
##### BUG 修复
|
||||
|
||||
- `/playlist/create`, `/playlist/update` 被判欺骗,增加 cookie
|
||||
|
||||
### 路由增删
|
||||
##### 路由增删
|
||||
|
||||
- 删除 `/recommend/dislike`
|
||||
|
||||
|
@ -3,7 +3,7 @@ FROM mhart/alpine-node:9
|
||||
WORKDIR /app
|
||||
COPY . /app
|
||||
|
||||
RUN rm package-lock.json \
|
||||
RUN rm -f package-lock.json \
|
||||
; rm -rf .idea \
|
||||
; rm -rf node_modules \
|
||||
; npm config set registry "https://registry.npm.taobao.org/" \
|
||||
|
11
README.MD
11
README.MD
@ -99,10 +99,19 @@
|
||||
77. 热门评论
|
||||
78. 视频评论
|
||||
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 path = require('path')
|
||||
const express = require('express')
|
||||
const bodyParser = require('body-parser')
|
||||
const request = require('./util/request')
|
||||
const package = require('./package.json')
|
||||
const exec = require('child_process').exec
|
||||
@ -42,6 +43,10 @@ app.use((req, res, next) => {
|
||||
next()
|
||||
})
|
||||
|
||||
// body parser
|
||||
app.use(bodyParser.json())
|
||||
app.use(bodyParser.urlencoded({extended: false}))
|
||||
|
||||
// cache
|
||||
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))
|
||||
|
||||
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)
|
||||
.then(answer => {
|
||||
console.log('[OK]', decodeURIComponent(req.originalUrl))
|
||||
|
159
docs/README.md
159
docs/README.md
@ -95,18 +95,21 @@
|
||||
77. 热门评论
|
||||
78. 视频评论
|
||||
79. 退出登录
|
||||
80. 所有榜单内容摘要
|
||||
81. 收藏视频
|
||||
82. 收藏 MV
|
||||
83. 视频详情
|
||||
84. 相关视频
|
||||
85. 关注用户
|
||||
86. 新歌速递
|
||||
80. 所有榜单
|
||||
81. 所有榜单内容摘要
|
||||
82. 收藏视频
|
||||
83. 收藏 MV
|
||||
84. 视频详情
|
||||
85. 相关视频
|
||||
86. 关注用户
|
||||
87. 新歌速递
|
||||
88. 喜欢音乐列表(无序)
|
||||
|
||||
## 安装
|
||||
|
||||
```shell
|
||||
$ git clone git@github.com:Binaryify/NeteaseCloudMusicApi.git
|
||||
|
||||
$ npm install
|
||||
```
|
||||
|
||||
@ -161,18 +164,29 @@ request 相关的环境变量
|
||||
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 pull binaryify/netease_cloud_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
|
||||
|
||||
$ sudo docker build . -t 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 明文请求,请按实际需求对源码修改
|
||||
|
||||
!> 由于接口做了缓存处理 ( 缓存 2 分钟 , 可在 app.js 设置 , 可能会导致登陆后获取不
|
||||
!> 由于接口做了缓存处理 ( 缓存 2 分钟,不缓存数据极容易引起网易服务器高频ip错误 , 可在 app.js 设置 , 可能会导致登陆后获取不
|
||||
到 cookie), 相同的 url 会在两分钟内只向网易服务器发一次请求 , 如果遇到不需要缓
|
||||
存结果的接口 , 可在请求 url 后面加一个时间戳参数使 url 不同 , 例子 :
|
||||
`/simi/playlist?id=347230×tamp=1503019930000`
|
||||
@ -280,10 +294,15 @@ Cookies
|
||||
|
||||
```
|
||||
gender: 性别 0:保密 1:男性 2:女性
|
||||
|
||||
birthday: 出生日期,时间戳 unix timestamp
|
||||
|
||||
nickname: 用户昵称
|
||||
|
||||
province: 省份id
|
||||
|
||||
city: 城市id
|
||||
|
||||
signature:用户签名
|
||||
```
|
||||
|
||||
@ -311,8 +330,11 @@ signature:用户签名
|
||||
|
||||
```
|
||||
id:歌单id
|
||||
name:歌单名字
|
||||
|
||||
name:歌单名字=
|
||||
|
||||
desc:歌单描述
|
||||
|
||||
tags:歌单tag
|
||||
```
|
||||
|
||||
@ -369,6 +391,7 @@ tags:歌单tag
|
||||
**必选参数 :** `uid` : 用户 id
|
||||
|
||||
**可选参数 :**
|
||||
|
||||
`limit` : 返回数量 , 默认为 30
|
||||
|
||||
`offset` : 偏移数量,用于分页 , 如
|
||||
@ -443,6 +466,7 @@ tags:歌单tag
|
||||
说明 : 调用此接口,可获取歌手分类列表
|
||||
**必选参数 :** `cat` : 即 category Code,歌手类型,默认 1001,返回华语男歌手数据
|
||||
**可选参数 :**
|
||||
|
||||
`limit` : 返回数量 , 默认为 30
|
||||
|
||||
`offset` : 偏移数量,用于分页 , 如
|
||||
@ -453,20 +477,35 @@ category Code 取值:
|
||||
|
||||
```
|
||||
入驻歌手 5001
|
||||
|
||||
华语男歌手 1001
|
||||
|
||||
华语女歌手 1002
|
||||
|
||||
华语组合/乐队 1003
|
||||
|
||||
欧美男歌手 2001
|
||||
|
||||
欧美女歌手 2002
|
||||
|
||||
欧美组合/乐队 2003
|
||||
|
||||
日本男歌手 6001
|
||||
|
||||
日本女歌手 6002
|
||||
|
||||
日本组合/乐队 6003
|
||||
|
||||
韩国男歌手 7001
|
||||
|
||||
韩国女歌手 7002
|
||||
|
||||
韩国组合/乐队 7003
|
||||
|
||||
其他男歌手 4001
|
||||
|
||||
其他女歌手 4002
|
||||
|
||||
其他组合/乐队 4003
|
||||
```
|
||||
|
||||
@ -560,7 +599,9 @@ category Code 取值:
|
||||
返回数据如下图 :
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

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

|
||||
|
||||
### 喜欢音乐列表
|
||||
|
||||
说明 : 调用此接口 , 传入用户 id, 可获取已喜欢音乐id列表(id数组)
|
||||
|
||||
**必选参数 :** `uid`: 用户 id
|
||||
|
||||
**接口地址 :** `/likelist`
|
||||
|
||||
**调用例子 :** `/likelist?uid=32953014`
|
||||
|
||||
### 垃圾桶
|
||||
|
||||
说明 : 调用此接口 , 传入音乐 id, 可把该音乐从私人 FM 中移除至垃圾桶
|
||||
@ -1340,6 +1411,7 @@ MV 数据 , 数据包含 mv 名字 , 歌手 , 发布时间 , mv 视频地址等
|
||||
**接口地址 :** `/mv/url`
|
||||
|
||||
**调用例子 :**
|
||||
|
||||
`/mv/url?id=5436712`
|
||||
|
||||
### 相关视频
|
||||
@ -1385,28 +1457,51 @@ MV 数据 , 数据包含 mv 名字 , 歌手 , 发布时间 , mv 视频地址等
|
||||
|
||||
```
|
||||
"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": 云音乐嘻哈榜
|
||||
```
|
||||
|
||||
@ -1418,6 +1513,13 @@ MV 数据 , 数据包含 mv 名字 , 歌手 , 发布时间 , mv 视频地址等
|
||||
|
||||

|
||||
|
||||
### 所有榜单
|
||||
|
||||
说明 : 调用此接口,可获取所有榜单
|
||||
**接口地址 :** `/toplist`
|
||||
|
||||
**调用例子 :** `/toplist`
|
||||
|
||||
### 所有榜单内容摘要
|
||||
|
||||
说明 : 调用此接口,可获取所有榜单内容摘要
|
||||
@ -1517,11 +1619,14 @@ type='1009' 获取其 id, 如`/search?keywords= 代码时间 &type=1009`
|
||||
**必选参数 :** `rid`: 电台 的 id
|
||||
|
||||
**可选参数 :**
|
||||
|
||||
`limit` : 返回数量 , 默认为 30
|
||||
|
||||
`offset` : 偏移数量,用于分页 , 如
|
||||
: 如 :( 页数 -1)\*30, 其中 30 为 limit 的值 , 默认为 0
|
||||
|
||||
`asc` : 排序方式,默认为 `false` (新 => 老 ) 设置 `true` 可改为 老 => 新
|
||||
|
||||
**接口地址 :** `/dj/program`
|
||||
|
||||
**调用例子 :** `/dj/program?rid=336355127&limit=40` ( 对应 ' 代码时间 ' 的节目列表 )
|
||||
|
@ -565,7 +565,7 @@ category Code 取值:
|
||||
|
||||
> 注 : 部分用户反馈获取的 url 会 403,[hwaphon](https://github.com/hwaphon)找到的
|
||||
> 解决方案是当获取到音乐的 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
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
module.exports = (query, 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}
|
||||
)
|
||||
}
|
@ -7,7 +7,7 @@ module.exports = (query, request) => {
|
||||
total: true
|
||||
}
|
||||
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}
|
||||
)
|
||||
}
|
@ -5,7 +5,7 @@ module.exports = (query, request) => {
|
||||
id: query.id
|
||||
}
|
||||
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}
|
||||
)
|
||||
}
|
@ -31,7 +31,7 @@ module.exports = (query, request) => {
|
||||
total: true
|
||||
}
|
||||
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}
|
||||
)
|
||||
}
|
@ -8,7 +8,7 @@ module.exports = (query, request) => {
|
||||
total: true
|
||||
}
|
||||
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}
|
||||
)
|
||||
}
|
@ -7,7 +7,7 @@ module.exports = (query, request) => {
|
||||
artistIds: '[' + query.id + ']'
|
||||
}
|
||||
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}
|
||||
)
|
||||
}
|
@ -7,7 +7,7 @@ module.exports = (query, request) => {
|
||||
total: true
|
||||
}
|
||||
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}
|
||||
)
|
||||
}
|
@ -2,7 +2,7 @@
|
||||
|
||||
module.exports = (query, 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}
|
||||
)
|
||||
}
|
@ -2,7 +2,7 @@
|
||||
|
||||
module.exports = (query, 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}
|
||||
)
|
||||
}
|
@ -6,7 +6,7 @@ module.exports = (query, request) => {
|
||||
br: parseInt(query.br || 999000)
|
||||
}
|
||||
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}
|
||||
)
|
||||
.then(response => {
|
||||
|
@ -19,7 +19,7 @@ module.exports = (query, request) => {
|
||||
else if(query.t == 'delete')
|
||||
data.commentId = query.commentId
|
||||
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}
|
||||
)
|
||||
}
|
@ -7,7 +7,7 @@ module.exports = (query, request) => {
|
||||
offset: query.offset || 0
|
||||
}
|
||||
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}
|
||||
)
|
||||
}
|
@ -7,7 +7,7 @@ module.exports = (query, request) => {
|
||||
offset: query.offset || 0
|
||||
}
|
||||
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}
|
||||
)
|
||||
}
|
@ -16,7 +16,7 @@ module.exports = (query, request) => {
|
||||
offset: query.offset || 0
|
||||
}
|
||||
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}
|
||||
)
|
||||
}
|
@ -16,7 +16,7 @@ module.exports = (query, request) => {
|
||||
commentId: query.cid
|
||||
}
|
||||
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}
|
||||
)
|
||||
}
|
@ -7,7 +7,7 @@ module.exports = (query, request) => {
|
||||
offset: query.offset || 0
|
||||
}
|
||||
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}
|
||||
)
|
||||
}
|
@ -7,7 +7,7 @@ module.exports = (query, request) => {
|
||||
offset: query.offset || 0
|
||||
}
|
||||
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}
|
||||
)
|
||||
}
|
@ -7,7 +7,7 @@ module.exports = (query, request) => {
|
||||
offset: query.offset || 0
|
||||
}
|
||||
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}
|
||||
)
|
||||
}
|
@ -7,7 +7,7 @@ module.exports = (query, request) => {
|
||||
offset: query.offset || 0
|
||||
}
|
||||
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}
|
||||
)
|
||||
}
|
@ -12,7 +12,7 @@ module.exports = (query, request) => {
|
||||
type: query.type || 0
|
||||
}
|
||||
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}
|
||||
)
|
||||
}
|
@ -2,7 +2,7 @@
|
||||
|
||||
module.exports = (query, 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}
|
||||
)
|
||||
}
|
@ -5,7 +5,7 @@ module.exports = (query, request) => {
|
||||
id: query.rid
|
||||
}
|
||||
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}
|
||||
)
|
||||
}
|
@ -11,7 +11,7 @@ module.exports = (query, request) => {
|
||||
offset: query.offset
|
||||
}
|
||||
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}
|
||||
)
|
||||
}
|
@ -6,7 +6,7 @@ module.exports = (query, request) => {
|
||||
offset: query.offset || 0
|
||||
}
|
||||
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}
|
||||
)
|
||||
}
|
@ -1,14 +1,17 @@
|
||||
// 电台节目列表
|
||||
|
||||
const { toBoolean } = require('../util')
|
||||
module.exports = (query, request) => {
|
||||
const data = {
|
||||
radioId: query.rid,
|
||||
limit: query.limit || 30,
|
||||
offset: query.offset || 0,
|
||||
asc: query.asc
|
||||
asc: toBoolean(query.asc)
|
||||
}
|
||||
console.log(toBoolean(query.asc))
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/dj/program/byradio`, data,
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
'POST',
|
||||
`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
|
||||
}
|
||||
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}
|
||||
)
|
||||
}
|
@ -2,7 +2,7 @@
|
||||
|
||||
module.exports = (query, 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}
|
||||
)
|
||||
}
|
||||
|
@ -28,7 +28,7 @@ module.exports = (query, request) => {
|
||||
cateId: query.type
|
||||
}
|
||||
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}
|
||||
)
|
||||
}
|
@ -6,7 +6,7 @@ module.exports = (query, request) => {
|
||||
id: query.rid
|
||||
}
|
||||
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}
|
||||
)
|
||||
}
|
@ -7,7 +7,7 @@ module.exports = (query, request) => {
|
||||
total: true
|
||||
}
|
||||
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}
|
||||
)
|
||||
}
|
@ -2,7 +2,7 @@
|
||||
|
||||
module.exports = (query, 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}
|
||||
)
|
||||
}
|
@ -5,7 +5,7 @@ module.exports = (query, request) => {
|
||||
songId: query.id
|
||||
}
|
||||
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}
|
||||
)
|
||||
}
|
@ -1,9 +1,10 @@
|
||||
// 关注与取消关注用户
|
||||
|
||||
module.exports = (query, request) => {
|
||||
query.cookie.os = 'pc'
|
||||
query.t = (query.t == 1 ? 'follow' : 'delfollow')
|
||||
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}
|
||||
)
|
||||
}
|
@ -1,13 +1,18 @@
|
||||
// 红心与取消红心歌曲
|
||||
const { toBoolean } = require('../util')
|
||||
|
||||
module.exports = (query, request) => {
|
||||
query.like = (query.like ? true : false)
|
||||
query.like = query.like ? true : false
|
||||
const data = {
|
||||
trackId: query.id,
|
||||
like: query.like
|
||||
}
|
||||
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,
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
'POST',
|
||||
`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
|
||||
}
|
||||
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}
|
||||
)
|
||||
}
|
@ -9,7 +9,7 @@ module.exports = (query, request) => {
|
||||
rememberLogin: 'true'
|
||||
}
|
||||
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}
|
||||
)
|
||||
}
|
@ -9,7 +9,7 @@ module.exports = (query, request) => {
|
||||
rememberLogin: 'true'
|
||||
}
|
||||
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}
|
||||
)
|
||||
}
|
@ -2,7 +2,7 @@
|
||||
|
||||
module.exports = (query, 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}
|
||||
)
|
||||
}
|
@ -2,7 +2,7 @@
|
||||
|
||||
module.exports = (query, request) => {
|
||||
return request(
|
||||
'GET', `http://music.163.com`, {},
|
||||
'GET', `https://music.163.com`, {},
|
||||
{cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
.then(response => {
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
module.exports = (query, 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}
|
||||
)
|
||||
}
|
@ -2,7 +2,7 @@
|
||||
|
||||
module.exports = (query, 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}
|
||||
)
|
||||
}
|
@ -5,7 +5,7 @@ module.exports = (query, request) => {
|
||||
id: query.mvid
|
||||
}
|
||||
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}
|
||||
)
|
||||
}
|
@ -7,7 +7,7 @@ module.exports = (query, request) => {
|
||||
total: true
|
||||
}
|
||||
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}
|
||||
)
|
||||
}
|
@ -7,7 +7,7 @@ module.exports = (query, request) => {
|
||||
mvIds: '["' + query.mvid + '"]'
|
||||
}
|
||||
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}
|
||||
)
|
||||
}
|
@ -6,7 +6,7 @@ module.exports = (query, request) => {
|
||||
r: query.res || 1080
|
||||
}
|
||||
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}
|
||||
)
|
||||
}
|
@ -2,7 +2,7 @@
|
||||
|
||||
module.exports = (query, 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}
|
||||
)
|
||||
}
|
@ -8,7 +8,7 @@ module.exports = (query, request) => {
|
||||
n: 1000
|
||||
}
|
||||
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}
|
||||
)
|
||||
}
|
@ -2,7 +2,7 @@
|
||||
|
||||
module.exports = (query, 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}
|
||||
)
|
||||
}
|
@ -2,7 +2,7 @@
|
||||
|
||||
module.exports = (query, 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}
|
||||
)
|
||||
}
|
@ -5,7 +5,7 @@ module.exports = (query, request) => {
|
||||
type: "recommend"
|
||||
}
|
||||
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}
|
||||
)
|
||||
}
|
@ -2,7 +2,7 @@
|
||||
|
||||
module.exports = (query, 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}
|
||||
)
|
||||
}
|
@ -2,7 +2,7 @@
|
||||
|
||||
module.exports = (query, 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}
|
||||
)
|
||||
}
|
@ -6,7 +6,7 @@ module.exports = (query, request) => {
|
||||
name: query.name
|
||||
}
|
||||
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}
|
||||
)
|
||||
}
|
@ -7,7 +7,7 @@ module.exports = (query, request) => {
|
||||
s: query.s || 8
|
||||
}
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/v3/playlist/detail`, data,
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
'POST', `https://music.163.com/weapi/v3/playlist/detail`, data,
|
||||
{crypto: 'linuxapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
@ -2,7 +2,7 @@
|
||||
|
||||
module.exports = (query, 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}
|
||||
)
|
||||
}
|
@ -6,7 +6,7 @@ module.exports = (query, request) => {
|
||||
id: query.id
|
||||
}
|
||||
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}
|
||||
)
|
||||
}
|
@ -7,7 +7,7 @@ module.exports = (query, request) => {
|
||||
trackIds: '[' + query.tracks + ']' // 歌曲id
|
||||
}
|
||||
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}
|
||||
)
|
||||
}
|
@ -10,7 +10,7 @@ module.exports = (query, request) => {
|
||||
"/api/playlist/update/name": `{"id":${query.id},"name":"${query.name}"}`
|
||||
}
|
||||
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}
|
||||
)
|
||||
}
|
@ -7,7 +7,7 @@ module.exports = (query, request) => {
|
||||
offset: query.offset || 0
|
||||
}
|
||||
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}
|
||||
)
|
||||
}
|
@ -2,7 +2,7 @@
|
||||
|
||||
module.exports = (query, 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}
|
||||
)
|
||||
}
|
@ -7,7 +7,7 @@ module.exports = (query, request) => {
|
||||
total: true
|
||||
}
|
||||
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}
|
||||
)
|
||||
}
|
@ -6,7 +6,7 @@ module.exports = (query, request) => {
|
||||
type: (/^\d+$/.test(query.id)) ? 0 : 1
|
||||
}
|
||||
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}
|
||||
)
|
||||
}
|
@ -2,7 +2,7 @@
|
||||
|
||||
module.exports = (query, 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}
|
||||
)
|
||||
.then(response => {
|
||||
|
@ -11,7 +11,7 @@ module.exports = (query, request) => {
|
||||
threadId: query.type + query.id
|
||||
}
|
||||
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}
|
||||
)
|
||||
}
|
@ -8,7 +8,7 @@ module.exports = (query, request) => {
|
||||
offset: query.offset || 0
|
||||
}
|
||||
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}
|
||||
)
|
||||
}
|
@ -5,7 +5,7 @@ module.exports = (query, request) => {
|
||||
type: 1111
|
||||
}
|
||||
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}
|
||||
)
|
||||
}
|
@ -6,7 +6,7 @@ module.exports = (query, request) => {
|
||||
s: query.keywords || ''
|
||||
}
|
||||
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}
|
||||
)
|
||||
}
|
@ -5,7 +5,7 @@ module.exports = (query, request) => {
|
||||
s: query.keywords || ''
|
||||
}
|
||||
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}
|
||||
)
|
||||
}
|
@ -9,7 +9,7 @@ module.exports = (query, request) => {
|
||||
userIds: '[' + query.user_ids + ']'
|
||||
}
|
||||
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}
|
||||
)
|
||||
}
|
@ -9,7 +9,7 @@ module.exports = (query, request) => {
|
||||
userIds: '[' + query.user_ids + ']'
|
||||
}
|
||||
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}
|
||||
)
|
||||
}
|
@ -5,7 +5,7 @@ module.exports = (query, request) => {
|
||||
artistid: query.id
|
||||
}
|
||||
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}
|
||||
)
|
||||
}
|
@ -5,7 +5,7 @@ module.exports = (query, request) => {
|
||||
mvid: query.mvid
|
||||
}
|
||||
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}
|
||||
)
|
||||
}
|
@ -7,7 +7,7 @@ module.exports = (query, request) => {
|
||||
offset: query.offset || 0
|
||||
}
|
||||
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}
|
||||
)
|
||||
}
|
@ -7,7 +7,7 @@ module.exports = (query, request) => {
|
||||
offset: query.offset || 0
|
||||
}
|
||||
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}
|
||||
)
|
||||
}
|
@ -7,7 +7,7 @@ module.exports = (query, request) => {
|
||||
offset: query.offset || 0
|
||||
}
|
||||
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}
|
||||
)
|
||||
}
|
@ -7,7 +7,7 @@ module.exports = (query, request) => {
|
||||
ids: '[' + query.ids.join(',') + ']'
|
||||
}
|
||||
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}
|
||||
)
|
||||
}
|
@ -5,11 +5,11 @@ const crypto = require('crypto')
|
||||
module.exports = (query, request) => {
|
||||
if(!('MUSIC_U' in query.cookie)) query.cookie._ntes_nuid = crypto.randomBytes(16).toString("hex")
|
||||
const data = {
|
||||
ids: '[' + parseInt(query.id) + ']',
|
||||
ids: '[' + query.id + ']',
|
||||
br: parseInt(query.br || 999000)
|
||||
}
|
||||
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}
|
||||
)
|
||||
}
|
@ -8,7 +8,7 @@ module.exports = (query, request) => {
|
||||
total: true
|
||||
}
|
||||
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}
|
||||
)
|
||||
}
|
@ -7,7 +7,7 @@ module.exports = (query, request) => {
|
||||
total: true
|
||||
}
|
||||
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}
|
||||
)
|
||||
}
|
@ -33,7 +33,7 @@ module.exports = (query, request) => {
|
||||
n: 10000
|
||||
}
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/v3/playlist/detail`, data,
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
'POST', `https://music.163.com/weapi/v3/playlist/detail`, data,
|
||||
{crypto: 'linuxapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
@ -7,7 +7,7 @@ module.exports = (query, request) => {
|
||||
total: true
|
||||
}
|
||||
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}
|
||||
)
|
||||
}
|
@ -9,7 +9,7 @@ module.exports = (query, request) => {
|
||||
total: true
|
||||
}
|
||||
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}
|
||||
)
|
||||
}
|
@ -8,7 +8,7 @@ module.exports = (query, request) => {
|
||||
total: true
|
||||
}
|
||||
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}
|
||||
)
|
||||
}
|
@ -3,13 +3,13 @@
|
||||
module.exports = (query, request) => {
|
||||
const data = {
|
||||
areaId: query.type || 0, // 全部:0 华语:7 欧美:96 日本:8 韩国:16
|
||||
limit: query.limit || 100,
|
||||
offset: query.offset || 0,
|
||||
// limit: query.limit || 100,
|
||||
// offset: query.offset || 0,
|
||||
total: true
|
||||
}
|
||||
return request(
|
||||
'POST',
|
||||
`http://music.163.com/weapi/v1/discovery/new/songs`,
|
||||
`https://music.163.com/weapi/v1/discovery/new/songs`,
|
||||
data,
|
||||
{ crypto: 'weapi', cookie: query.cookie, proxy: query.proxy }
|
||||
)
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
module.exports = (query, request) => {
|
||||
return request(
|
||||
'POST', `http://music.163.com/weapi/toplist`, {},
|
||||
{crypto: 'weapi', cookie: query.cookie, proxy: query.proxy}
|
||||
'POST', `https://music.163.com/weapi/toplist`, {},
|
||||
{crypto: 'linuxapi', cookie: query.cookie, proxy: query.proxy}
|
||||
)
|
||||
}
|
@ -8,7 +8,7 @@ module.exports = (query, request) => {
|
||||
total: true
|
||||
}
|
||||
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}
|
||||
)
|
||||
}
|
@ -2,7 +2,7 @@
|
||||
|
||||
module.exports = (query, 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}
|
||||
)
|
||||
}
|
@ -5,7 +5,7 @@ module.exports = (query, request) => {
|
||||
userId: query.uid
|
||||
}
|
||||
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}
|
||||
)
|
||||
}
|
@ -6,7 +6,7 @@ module.exports = (query, request) => {
|
||||
offset: query.offset || 0
|
||||
}
|
||||
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}
|
||||
)
|
||||
}
|
@ -6,7 +6,7 @@ module.exports = (query, request) => {
|
||||
id: query.id
|
||||
}
|
||||
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}
|
||||
)
|
||||
}
|
@ -2,7 +2,7 @@
|
||||
|
||||
module.exports = (query, 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}
|
||||
)
|
||||
}
|
@ -6,7 +6,7 @@ module.exports = (query, request) => {
|
||||
offset: query.offset || 0
|
||||
}
|
||||
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}
|
||||
)
|
||||
}
|
@ -6,7 +6,7 @@ module.exports = (query, request) => {
|
||||
getcounts: true
|
||||
}
|
||||
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}
|
||||
)
|
||||
}
|
@ -7,7 +7,7 @@ module.exports = (query, request) => {
|
||||
offset: query.offset || 0
|
||||
}
|
||||
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}
|
||||
)
|
||||
}
|
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