提交 d8043ecd 编写于 作者: N Nzix 提交者: GitHub

Merge pull request #6 from Binaryify/master

sync
- repo: https://github.com/Binaryify/NeteaseCloudMusicApi
sha: '' # Use the sha or tag you want to point at
hooks:
- id: prettier
\ No newline at end of file
# 更新日志
### 2.14.0 | 2018.07.03
修复无法使用邮箱问题
### 2.13.0 | 2018.06.05
增加自动注册路由的功能,简化路由注册逻辑
### 2.12.0 | 2018.05.27
更新文档,优化歌单详情接口
### 2.11.1 | 2018.05.24
更新文档,优化`/dj/program`接口
......
......@@ -18,43 +18,6 @@
[sqaiyan/netmusic-node](https://github.com/sqaiyan/netmusic-node)
## 版本新特性
### 2.11.0 | 2018.05.21
增加收藏歌手列表&订阅电台列表
### 2.10.0 | 2018.05.17
歌单操作调整为批量操作
### 2.9.8 | 2018.05.10
新增歌手分类列表,收藏/取消收藏歌手接口,新增更新用户信息,更新歌单接口
### 2.9.6 | 2018.05.08
新增发送私信相关接口,新增新建歌单,收藏/取消收藏歌单接口
### 2.9.4 | 2018.05.04
新增热搜接口,更新 banner 接口
### 2.9.0 | 2018.01.26
docker 构建文件的一些增强以及增加访问日志和调试输出
### 2.8.1 | 2018.01.04
添加了 proxy 功能
### 2.6.4 | 2017.7.16
添加缓存机制和随机 UA 机制 感谢[@u3u](https://github.com/u3u)
[issue:77](https://github.com/Binaryify/NeteaseCloudMusicApi/issues/77) 优化请求
代码 感谢 [@huhuime](https://github.com/huhuime)
[issue:83](https://github.com/Binaryify/NeteaseCloudMusicApi/issues/83)
### 2.5.0 | 2017.4.29
增加 mv/ 专辑 / 歌单评论接口 , 增加云盘相关接口 , 增加获取用户动态 / 信息接口 ,
增加关注 / 粉丝列表接口 , 增加收藏歌单接口 , 增加相似 mv/ 歌曲 / 用户接口 , 增加
banner 接口 , 增加刷新登录接口 , 增加电台相关接口 , 补充评论接口 , 更新文档
## 功能特性
1. 登录
......
const express = require("express");
const apicache = require("apicache");
const path = require("path");
const fs = require("fs");
const app = express();
let cache = apicache.middleware;
......@@ -32,263 +32,41 @@ app.use(function(req, res, next) {
next();
});
// 获取专辑内容
app.use("/album", require("./router/album"));
// 获取歌手单曲
app.use("/artists", require("./router/artists"));
// 获取歌手专辑列表
app.use("/artist/album", require("./router/artist_album"));
//艺术家-信息
app.use("/artist/desc", require("./router/artists_desc"));
//艺术家-mv
app.use("/artist/mv", require("./router/artists_mv"));
// 收藏歌手
app.use("/artist/sub", require("./router/artist_sub"));
// 取消收藏歌手
app.use("/artist/unsub", require("./router/artist_unsub"));
// 已关注歌手
app.use("/artist/sublist", require("./router/artist_sublist"));
// 歌手分类
app.use("/artist/list", require("./router/artist_list"));
// 获取 banner
app.use("/banner", require("./router/banner"));
app.use("/check/music", require("./router/check_music"));
app.use("/comment/music", require("./router/comment_music"));
app.use("/comment/mv", require("./router/comment_mv"));
app.use("/comment/album", require("./router/comment_album"));
app.use("/comment/playlist", require("./router/comment_playlist"));
//未知 api
app.use("/comment/like", require("./router/comment_like"));
app.use("/comment/dj", require("./router/comment_dj"));
//签到
app.use("/daily_signin", require("./router/daily_signin"));
//djradio detail
app.use("/dj/detail", require("./router/dj_detail"));
//dj主播 radio
app.use("/dj/program", require("./router/dj_program"));
app.use("/dj/program/detail", require("./router/dj_program_detail"));
app.use("/dj/sub", require("./router/dj_sub"));
app.use("/dj/catelist", require("./router/dj_catelist"));
app.use("/dj/hot", require("./router/dj_hot"));
app.use("/dj/sublist", require("./router/dj_sublist"));
// 精选电台
app.use("/dj/recommend", require("./router/dj_recommend"));
//精选电台-分类电台
app.use("/dj/recommend/type", require("./router/dj_recommend_type"));
//获取动态
app.use("/event", require("./router/event"));
//垃圾桶
app.use("/fm_trash", require("./router/fm_trash"));
app.use("/follow", require("./router/follow"));
// 喜欢歌曲
app.use("/like", require("./router/like"));
app.use("/likelist", require("./router/likelist"));
//手机登录
app.use("/login/cellphone", require("./router/loginCellphone"));
//邮箱登录
app.use("/login", require("./router/login"));
//登录刷新
app.use("/login/refresh", require("./router/login_refresh"));
// 不明 api
app.use("/log/web", require("./router/logWeb"));
// 获取歌词
app.use("/lyric", require("./router/lyric"));
// 获取音乐 url
app.use("/music/url", require("./router/musicUrl"));
//最新 mv
app.use("/mv/first", require("./router/mv_first"));
//播放 mv
app.use("/mv/url", require("./router/mv_url"));
//mv
app.use("/mv", require("./router/mv"));
// 私人 FM
app.use("/personal_fm", require("./router/personal_fm"));
//推荐歌单
app.use("/personalized", require("./router/personalized"));
//推荐dj
app.use("/personalized/djprogram", require("./router/personalized_djprogram"));
//推荐新音乐
app.use("/personalized/newsong", require("./router/personalized_newsong"));
//独家放送
app.use(
"/personalized/privatecontent",
require("./router/personalized_privatecontent")
);
//推荐mv
app.use("/personalized/mv", require("./router/personalized_mv"));
// 获取歌单内列表
app.use("/playlist/detail", require("./router/playlist_detail"));
//收藏单曲到歌单,从歌单删除歌曲 op=del,add;pid=歌单id,tracks=歌曲id
app.use("/playlist/tracks", require("./router/playlist_tracks"));
// 热门歌单分类
app.use("/playlist/hot", require("./router/playlist_hot"));
// 全部歌单分类
app.use("/playlist/catlist", require("./router/playlist_catlist"));
// 新建歌单
app.use("/playlist/create", require("./router/playlist_create"));
// 收藏/取消收藏歌单
app.use("/playlist/subscribe", require("./router/playlist_subscribe"));
//推荐节目
app.use("/program/recommend", require("./router/program_recommend"));
// 获取每日推荐歌曲
app.use("/recommend/songs", require("./router/recommend_songs"));
// 获取每日推荐歌单
app.use("/recommend/resource", require("./router/recommend_resource"));
//取消推荐
app.use("/recommend/dislike", require("./router/recommend_dislike"));
app.use("/resource/like", require("./router/resource_like"));
// 搜索
app.use("/search", require("./router/search"));
// 热搜
app.use("/search/hot", require("./router/search_hot.js"));
//搜索 multimatch
app.use("/search/multimatch", require("./router/search_multimatch"));
// 搜索 suggest,搜索结果包含单曲,歌手,歌单,mv信息
app.use("/search/suggest", require("./router/search_suggest"));
//simi ,相似歌单
app.use("/simi/playlist", require("./router/simi_playlist"));
//simi ,相似歌曲
app.use("/simi/song", require("./router/simi_song"));
//相似 mv
app.use("/simi/mv", require("./router/simi_mv"));
//simi ,相似关注的用户
app.use("/simi/user", require("./router/simi_user"));
//相似歌手
app.use("/simi/artist", require("./router/simi_artists"));
// 获取音乐详情
app.use("/song/detail", require("./router/song_detail"));
// 新碟上架 http://music.163.com/#/discover/album/
app.use("/top/album", require("./router/top_album"));
// 热门歌手 http://music.163.com/#/discover/artist/
app.use("/top/artists", require("./router/top_artists"));
app.use("/top/list", require("./router/top_list"));
app.use("/top/mv", require("./router/top_mv"));
//分类歌单
app.use("/top/playlist", require("./router/top_playlist"));
//精品歌单
app.use(
"/top/playlist/highquality",
require("./router/top_playlist_highquality")
);
app.use("/top/song", require("./router/top_songs"));
app.use("/toplist", require("./router/toplist"));
app.use("/toplist/artist", require("./router/toplist_artist"));
app.use("/toplist/detail", require("./router/toplist_detail"));
// 获取用户歌单
app.use("/user/playlist", require("./router/user_playlist"));
// 获取用户电台
app.use("/user/audio", require("./router/user_audio"));
//云盘数据
app.use("/user/cloud", require("./router/user_cloud"));
//云盘数据详情? 暂时不要使用
app.use("/user/cloud/search", require("./router/user_cloud_search"));
//用户动态
app.use("/user/event", require("./router/user_event"));
app.use("/user/detail", require("./router/user_detail"));
app.use("/user/dj", require("./router/user_dj"));
app.use("/user/followeds", require("./router/user_followeds"));
app.use("/user/follows", require("./router/user_follows"));
app.use("/user/subcount", require("./router/user_subcount"));
app.use("/user/record", require("./router/user_playrecord"));
app.use("/user/update", require("./router/user_update"));
app.use("/send/text", require("./router/send_text"));
app.use("/send/playlist", require("./router/send_playlist"));
app.use("/playlist/create", require("./router/playlist_create"));
// 因为这几个文件对外所注册的路由 和 其他文件对外注册的路由规则不一样, 所以专门写个MAP对这些文件做特殊处理
const UnusualRouteFileMap = {
// key 为文件名, value 为对外注册的路由
"daily_signin.js": "/daily_signin",
"fm_trash.js": "/fm_trash",
"personal_fm.js": "/personal_fm"
};
// 简化 路由 导出方式, 由这里统一对 router 目录中导出的路由做包装, 路由实际对应的文件只专注做它该做的事情, 不用重复写样板代码
const { createWebAPIRequest, request } = require("./util/util");
const Wrap = fn => (req, res) => fn(req, res, createWebAPIRequest, request);
// 同步读取 router 目录中的js文件, 根据命名规则, 自动注册路由
fs.readdirSync("./router/").reverse().forEach(file => {
if (/\.js$/i.test(file) === false) {
return;
}
app.use("/playlist/subscribe", require("./router/playlist_subscribe"));
let route;
if (typeof UnusualRouteFileMap[file] !== "undefined") {
route = UnusualRouteFileMap[file];
} else {
route =
"/" +
file
.replace(/\.js$/i, "")
.replace(/_/g, "/")
.replace(/[A-Z]/g, a => {
return "/" + a.toLowerCase();
});
}
app.use("/playlist/update", require("./router/playlist_update"));
app.use(route, Wrap(require("./router/" + file)));
});
const port = process.env.PORT || 3000;
......
......@@ -15,6 +15,9 @@
跨站请求伪造 (CSRF), 伪造请求头 , 调用官方 API
## 版本新特性
### 2.14.0 | 2018.07.03
修复无法使用邮箱问题
### 2.11.0 | 2018.05.21
增加收藏歌手列表&订阅电台列表
......@@ -235,7 +238,10 @@ $ sudo docker run -d -p 3000:3000 netease-music-api
#### 2. 邮箱登录
> 注意 : 此接口被网易和谐了 , 待修复 , 暂时使用手机登录 (2017.05.20)
~~ 注意 : 此接口被网易和谐了 , 待修复 , 暂时使用手机登录 (2017.05.20)~~
> 更新 : 此接口已经可以正常使用(2018.07.03)
**必选参数 :** `email`: 163 网易邮箱 `password`: 密码
......@@ -545,6 +551,8 @@ category Code 取值:
**必选参数 :** `id` : 歌单 id
**可选参数 :** `s` : 歌单最近的s个收藏者
**接口地址 :** `/playlist/detail`
**调用例子 :** `/playlist/detail?id=24381616`
......
### 环境
系统:
系统:
nodejs 版本:
......@@ -7,4 +7,8 @@ nodejs 版本:
### 重现步骤
### 期待效果
\ No newline at end of file
### 期待效果
>重现步骤尽量详细,不能含糊不清
>如果不是提建议,提 issues 如果不照着模版来将不会优先处理或直接关闭
\ No newline at end of file
{
"name": "NeteaseCloudMusicApi",
"version": "2.11.1",
"version": "2.14.0",
"description": "网易云音乐 NodeJS 版 API",
"scripts": {
"start": "node app.js",
"test": "mocha -r intelli-espower-loader -t 20000 test",
"precommit": "lint-staged"
"test": "mocha -r intelli-espower-loader -t 20000 test"
},
"lint-staged": {
"*.js": ["prettier --write", "git add"]
},
"keywords": ["网易云音乐", "网易云", "音乐", "网易云音乐nodejs"],
"keywords": [
"网易云音乐",
"网易云",
"音乐",
"网易云音乐nodejs"
],
"author": "",
"license": "MIT",
"dependencies": {
......@@ -20,11 +21,8 @@
"request": "^2.85.0"
},
"devDependencies": {
"husky": "^0.14.3",
"intelli-espower-loader": "^1.0.1",
"lint-staged": "^7.1.0",
"mocha": "^5.1.1",
"power-assert": "^1.5.0",
"prettier": "^1.12.1"
"power-assert": "^1.5.0"
}
}
const express = require('express')
const router = express()
const { createWebAPIRequest } = require('../util/util')
router.get('/', (req, res) => {
const cookie = req.get('Cookie') ? req.get('Cookie') : ''
// 获取专辑内容
module.exports = (req, res, createWebAPIRequest, request) => {
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
const data = {
csrf_token: ''
}
const id = req.query.id
csrf_token: ""
};
const id = req.query.id;
createWebAPIRequest(
'music.163.com',
"music.163.com",
`/weapi/v1/album/${id}`,
'POST',
"POST",
data,
cookie,
music_req => {
res.send(music_req)
res.send(music_req);
},
err => res.status(502).send('fetch error')
)
})
module.exports = router
err => res.status(502).send("fetch error")
);
};
const express = require('express')
const router = express()
const { createWebAPIRequest } = require('../util/util')
router.get('/', (req, res) => {
const cookie = req.get('Cookie') ? req.get('Cookie') : ''
const id = req.query.id
// 获取歌手专辑列表
module.exports = (req, res, createWebAPIRequest, request) => {
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
const id = req.query.id;
const data = {
offset: req.query.offset || 0,
total: true,
limit: req.query.limit || 30,
csrf_token: ''
}
csrf_token: ""
};
createWebAPIRequest(
'music.163.com',
"music.163.com",
`/weapi/artist/albums/${id}`,
'POST',
"POST",
data,
cookie,
music_req => res.send(music_req),
err => res.status(502).send('fetch error')
)
})
module.exports = router
err => res.status(502).send("fetch error")
);
};
module.exports = (req, res, createWebAPIRequest, request) => {
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
const id = req.query.id;
const data = {
id,
csrf_token: ""
};
createWebAPIRequest(
"music.163.com",
`/weapi/artist/introduction`,
"POST",
data,
cookie,
music_req => res.send(music_req),
err => res.status(502).send("fetch error")
);
};
//分类歌单
const express = require("express");
const router = express();
const { createWebAPIRequest } = require("../util/util");
router.get("/", (req, res) => {
// 歌手分类
module.exports = (req, res, createWebAPIRequest, request) => {
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
// categoryCode 取值
......@@ -42,6 +39,4 @@ router.get("/", (req, res) => {
},
err => res.status(502).send("fetch error")
);
});
module.exports = router;
};
const express = require('express')
const router = express()
const { createWebAPIRequest } = require('../util/util')
router.get('/', (req, res) => {
const cookie = req.get('Cookie') ? req.get('Cookie') : ''
const id = req.query.id
module.exports = (req, res, createWebAPIRequest, request) => {
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
const id = req.query.id;
const data = {
artistId: id,
total: true,
offset: req.query.offset,
limit: req.query.limit,
csrf_token: ''
}
csrf_token: ""
};
createWebAPIRequest(
'music.163.com',
"music.163.com",
`/weapi/artist/mvs`,
'POST',
"POST",
data,
cookie,
music_req => res.send(music_req),
err => res.status(502).send('fetch error')
)
})
module.exports = router
err => res.status(502).send("fetch error")
);
};
const express = require("express");
const router = express();
const { createWebAPIRequest } = require("../util/util");
router.get("/", (req, res) => {
// 收藏歌手
module.exports = (req, res, createWebAPIRequest, request) => {
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
const data = {
artistId: `${req.query.id}`
......@@ -18,6 +15,4 @@ router.get("/", (req, res) => {
},
err => res.status(502).send("fetch error")
);
});
module.exports = router;
};
const express = require("express");
const router = express();
const { createWebAPIRequest } = require("../util/util");
router.get("/", (req, res) => {
// 已关注歌手
module.exports = (req, res, createWebAPIRequest, request) => {
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
const data = {
......@@ -21,6 +18,4 @@ router.get("/", (req, res) => {
},
err => res.status(502).send("fetch error")
);
});
module.exports = router;
};
const express = require("express");
const router = express();
const { createWebAPIRequest } = require("../util/util");
router.get("/", (req, res) => {
// 取消收藏歌手
module.exports = (req, res, createWebAPIRequest, request) => {
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
const data = {
artistId: `${req.query.id}`,
......@@ -19,6 +16,4 @@ router.get("/", (req, res) => {
},
err => res.status(502).send("fetch error")
);
});
module.exports = router;
};
const express = require("express");
const router = express();
const { createWebAPIRequest } = require("../util/util");
router.get("/", (req, res) => {
// 获取歌手单曲
module.exports = (req, res, createWebAPIRequest, request) => {
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
const id = req.query.id;
......@@ -21,6 +18,4 @@ router.get("/", (req, res) => {
},
err => res.status(502).send("fetch error")
);
});
module.exports = router;
};
const express = require('express')
const router = express()
const { createWebAPIRequest } = require('../util/util')
router.get('/', (req, res) => {
const cookie = req.get('Cookie') ? req.get('Cookie') : ''
const id = req.query.id
const data = {
id,
csrf_token: ''
}
createWebAPIRequest(
'music.163.com',
`/weapi/artist/introduction`,
'POST',
data,
cookie,
music_req => res.send(music_req),
err => res.status(502).send('fetch error')
)
})
module.exports = router
const express = require("express");
const router = express();
const request = require("request");
router.get("/", (req, res) => {
module.exports = (req, res, createWebAPIRequest, request) => {
const options = {
url: "http://music.163.com/discover",
method: "GET",
......@@ -25,6 +21,4 @@ router.get("/", (req, res) => {
}
}
});
});
module.exports = router;
};
const express = require('express')
const router = express()
const request = require('request')
const { createWebAPIRequest } = require('../util/util')
router.get('/', (req, res) => {
const id = parseInt(req.query.id)
const br = parseInt(req.query.br || 999000)
module.exports = (req, res, createWebAPIRequest, request) => {
const id = parseInt(req.query.id);
const br = parseInt(req.query.br || 999000);
const data = {
ids: [id],
br: br,
csrf_token: ''
}
const cookie = req.get('Cookie') ? req.get('Cookie') : ''
csrf_token: ""
};
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
createWebAPIRequest(
'music.163.com',
'/weapi/song/enhance/player/url',
'POST',
"music.163.com",
"/weapi/song/enhance/player/url",
"POST",
data,
cookie,
music_req => {
if (JSON.parse(music_req).code == 200) {
return res.send({ success: true, message: 'ok' })
return res.send({ success: true, message: "ok" });
}
return res.send({ success: false, message: '亲爱的,暂无版权' })
return res.send({ success: false, message: "亲爱的,暂无版权" });
},
err => {
res.status(502).send('fetch error')
res.status(502).send("fetch error");
}
)
})
module.exports = router
);
};
const express = require('express')
const router = express()
const { createWebAPIRequest } = require('../util/util')
router.get('/', (req, res) => {
const rid = req.query.id
const cookie = req.get('Cookie') ? req.get('Cookie') : ''
module.exports = (req, res, createWebAPIRequest, request) => {
const rid = req.query.id;
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
const data = {
offset: req.query.offset || 0,
rid: rid,
limit: req.query.limit || 20,
csrf_token: ''
}
csrf_token: ""
};
createWebAPIRequest(
'music.163.com',
"music.163.com",
`/weapi/v1/resource/comments/R_AL_3_${rid}/?csrf_token=`,
'POST',
"POST",
data,
cookie,
music_req => {
res.send(music_req)
res.send(music_req);
},
err => res.status(502).send('fetch error')
)
})
module.exports = router
err => res.status(502).send("fetch error")
);
};
const express = require('express')
const router = express()
const { createWebAPIRequest } = require('../util/util')
router.get('/', (req, res) => {
const rid = req.query.id
const cookie = req.get('Cookie') ? req.get('Cookie') : ''
module.exports = (req, res, createWebAPIRequest, request) => {
const rid = req.query.id;
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
const data = {
offset: req.query.offset || 0,
rid: rid,
limit: req.query.limit || 20,
csrf_token: ''
}
csrf_token: ""
};
createWebAPIRequest(
'music.163.com',
"music.163.com",
`/weapi/v1/resource/comments/A_DJ_1_${rid}/?csrf_token=`,
'POST',
"POST",
data,
cookie,
music_req => {
res.send(music_req)
res.send(music_req);
},
err => res.status(502).send('fetch error')
)
})
module.exports = router
err => res.status(502).send("fetch error")
);
};
//comment like
const express = require('express')
const router = express()
const { createWebAPIRequest } = require('../util/util')
router.get('/', (req, res) => {
const cookie = req.get('Cookie') ? req.get('Cookie') : ''
const cid = req.query.cid //评论 id
const id = req.query.id // 歌曲 id
//未知 api
module.exports = (req, res, createWebAPIRequest, request) => {
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
const cid = req.query.cid; //评论 id
const id = req.query.id; // 歌曲 id
const typeMap = {
0: 'R_SO_4_', //歌曲
1: 'R_MV_5_', //mv
2: 'A_PL_0_', //歌单
3: 'R_AL_3_', //专辑
4: 'A_DJ_1_' //电台
}
const type = typeMap[req.query.type]
0: "R_SO_4_", //歌曲
1: "R_MV_5_", //mv
2: "A_PL_0_", //歌单
3: "R_AL_3_", //专辑
4: "A_DJ_1_" //电台
};
const type = typeMap[req.query.type];
const data = {
threadId: `${type}${id}`,
commentId: cid,
csrf_token: ''
}
const action = req.query.t == 1 ? 'like' : 'unlike'
csrf_token: ""
};
const action = req.query.t == 1 ? "like" : "unlike";
const url = `/weapi/v1/comment/${action}`
const url = `/weapi/v1/comment/${action}`;
createWebAPIRequest(
'music.163.com',
"music.163.com",
url,
'POST',
"POST",
data,
cookie,
music_req => res.send(music_req),
err => res.status(502).send('fetch error')
)
})
module.exports = router
err => res.status(502).send("fetch error")
);
};
const express = require("express");
const router = express();
const { createWebAPIRequest } = require("../util/util");
router.get("/", (req, res) => {
module.exports = (req, res, createWebAPIRequest, request) => {
const rid = req.query.id;
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
const data = {
......@@ -22,6 +18,4 @@ router.get("/", (req, res) => {
},
err => res.status(502).send(err.message)
);
});
module.exports = router;
};
const express = require('express')
const router = express()
const { createWebAPIRequest } = require('../util/util')
router.get('/', (req, res) => {
const rid = req.query.id
const cookie = req.get('Cookie') ? req.get('Cookie') : ''
module.exports = (req, res, createWebAPIRequest, request) => {
const rid = req.query.id;
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
const data = {
offset: req.query.offset || 0,
rid: rid,
limit: req.query.limit || 20,
csrf_token: ''
}
csrf_token: ""
};
createWebAPIRequest(
'music.163.com',
"music.163.com",
`/weapi/v1/resource/comments/R_MV_5_${rid}/?csrf_token=`,
'POST',
"POST",
data,
cookie,
music_req => {
res.send(music_req)
res.send(music_req);
},
err => res.status(502).send('fetch error')
)
})
module.exports = router
err => res.status(502).send("fetch error")
);
};
const express = require('express')
const router = express()
const { createWebAPIRequest } = require('../util/util')
router.get('/', (req, res) => {
const rid = req.query.id
const cookie = req.get('Cookie') ? req.get('Cookie') : ''
module.exports = (req, res, createWebAPIRequest, request) => {
const rid = req.query.id;
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
const data = {
offset: req.query.offset || 0,
rid: rid,
limit: req.query.limit || 20,
csrf_token: ''
}
csrf_token: ""
};
createWebAPIRequest(
'music.163.com',
"music.163.com",
`/weapi/v1/resource/comments/A_PL_0_${rid}/?csrf_token=`,
'POST',
"POST",
data,
cookie,
music_req => {
res.send(music_req)
res.send(music_req);
},
err => res.status(502).send('fetch error')
)
})
module.exports = router
err => res.status(502).send("fetch error")
);
};
// 签到
const express = require('express')
const router = express()
const { createWebAPIRequest } = require('../util/util')
router.get('/', (req, res) => {
const cookie = req.get('Cookie') ? req.get('Cookie') : ''
let type = req.query.type || 0 //0为安卓端签到 3点经验,1为网页签到,2点经验
module.exports = (req, res, createWebAPIRequest, request) => {
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
let type = req.query.type || 0; //0为安卓端签到 3点经验,1为网页签到,2点经验
const data = {
csrf_token: '',
csrf_token: "",
type
}
};
// {'android': {'point': 3, 'code': 200}, 'web': {'point': 2, 'code': 200}}
// {'android': {'code': -2, 'msg': '重复签到'}, 'web': {'code': -2, 'msg': '重复签到'}}
// 'android': {'code': 301}, 'web': {'code': 301}}
createWebAPIRequest(
'music.163.com',
'/weapi/point/dailyTask',
'POST',
"music.163.com",
"/weapi/point/dailyTask",
"POST",
data,
cookie,
music_req => res.send(music_req),
err => res.status(502).send('fetch error')
)
})
module.exports = router
err => res.status(502).send("fetch error")
);
};
const express = require('express')
const router = express()
const { createWebAPIRequest } = require('../util/util')
router.get('/', (req, res) => {
const cookie = req.get('Cookie') ? req.get('Cookie') : ''
module.exports = (req, res, createWebAPIRequest, request) => {
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
const data = {
csrf_token: ''
}
csrf_token: ""
};
createWebAPIRequest(
'music.163.com',
'/weapi/djradio/category/get',
'POST',
"music.163.com",
"/weapi/djradio/category/get",
"POST",
data,
cookie,
music_req => {
res.send(music_req)
res.send(music_req);
},
err => res.status(502).send('fetch error')
)
})
module.exports = router
err => res.status(502).send("fetch error")
);
};
const express = require('express')
const router = express()
const { createWebAPIRequest } = require('../util/util')
router.get('/', (req, res) => {
const rid = req.query.rid
const cookie = req.get('Cookie') ? req.get('Cookie') : ''
//djradio detail
module.exports = (req, res, createWebAPIRequest, request) => {
const rid = req.query.rid;
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
const data = {
id: rid,
csrf_token: ''
}
csrf_token: ""
};
createWebAPIRequest(
'music.163.com',
'/weapi/djradio/get',
'POST',
"music.163.com",
"/weapi/djradio/get",
"POST",
data,
cookie,
music_req => {
res.send(music_req)
res.send(music_req);
},
err => res.status(502).send('fetch error')
)
})
module.exports = router
err => res.status(502).send("fetch error")
);
};
const express = require('express')
const router = express()
const { createWebAPIRequest } = require('../util/util')
router.get('/', (req, res) => {
const cookie = req.get('Cookie') ? req.get('Cookie') : ''
module.exports = (req, res, createWebAPIRequest, request) => {
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
const data = {
cat: req.query.type,
cateId: req.query.type,
......@@ -12,19 +8,17 @@ router.get('/', (req, res) => {
category: req.query.type,
limit: req.query.limit,
offset: req.query.offset,
csrf_token: ''
}
csrf_token: ""
};
createWebAPIRequest(
'music.163.com',
'/weapi/djradio/hot/v1',
'POST',
"music.163.com",
"/weapi/djradio/hot/v1",
"POST",
data,
cookie,
music_req => {
res.send(music_req)
res.send(music_req);
},
err => res.status(502).send('fetch error')
)
})
module.exports = router
err => res.status(502).send("fetch error")
);
};
const express = require("express");
const router = express();
const { createWebAPIRequest } = require("../util/util");
router.get("/", (req, res) => {
//dj主播 radio
module.exports = (req, res, createWebAPIRequest, request) => {
const rid = req.query.rid;
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
const data = {
......@@ -23,6 +20,4 @@ router.get("/", (req, res) => {
},
err => res.status(502).send("fetch error")
);
});
module.exports = router;
};
const express = require('express')
const router = express()
const { createWebAPIRequest } = require('../util/util')
router.get('/', (req, res) => {
const cookie = req.get('Cookie') ? req.get('Cookie') : ''
module.exports = (req, res, createWebAPIRequest, request) => {
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
const data = {
id: req.query.id,
csrf_token: ''
}
csrf_token: ""
};
createWebAPIRequest(
'music.163.com',
'/weapi/dj/program/detail',
'POST',
"music.163.com",
"/weapi/dj/program/detail",
"POST",
data,
cookie,
music_req => {
res.send(music_req)
res.send(music_req);
},
err => res.status(502).send('fetch error')
)
})
module.exports = router
err => res.status(502).send("fetch error")
);
};
const express = require('express')
const router = express()
const { createWebAPIRequest } = require('../util/util')
router.get('/', (req, res) => {
const cookie = req.get('Cookie') ? req.get('Cookie') : ''
// 精选电台
module.exports = (req, res, createWebAPIRequest, request) => {
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
const data = {
csrf_token: ''
}
csrf_token: ""
};
createWebAPIRequest(
'music.163.com',
'/weapi/djradio/recommend/v1',
'POST',
"music.163.com",
"/weapi/djradio/recommend/v1",
"POST",
data,
cookie,
music_req => {
res.send(music_req)
res.send(music_req);
},
err => res.status(502).send('fetch error')
)
})
module.exports = router
err => res.status(502).send("fetch error")
);
};
const express = require('express')
const router = express()
const { createWebAPIRequest } = require('../util/util')
router.get('/', (req, res) => {
const cookie = req.get('Cookie') ? req.get('Cookie') : ''
//精选电台-分类电台
module.exports = (req, res, createWebAPIRequest, request) => {
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
const data = {
cateId: req.query.type,
csrf_token: ''
}
csrf_token: ""
};
createWebAPIRequest(
'music.163.com',
'/weapi/djradio/recommend',
'POST',
"music.163.com",
"/weapi/djradio/recommend",
"POST",
data,
cookie,
music_req => {
res.send(music_req)
res.send(music_req);
},
err => res.status(502).send('fetch error')
)
})
module.exports = router
err => res.status(502).send("fetch error")
);
};
const express = require('express')
const router = express()
const { createWebAPIRequest } = require('../util/util')
router.get('/', (req, res) => {
const cookie = req.get('Cookie') ? req.get('Cookie') : ''
module.exports = (req, res, createWebAPIRequest, request) => {
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
const data = {
id: req.query.rid,
csrf_token: ''
}
const action = req.query.t == 1 ? 'sub' : 'unsub'
csrf_token: ""
};
const action = req.query.t == 1 ? "sub" : "unsub";
createWebAPIRequest(
'music.163.com',
"music.163.com",
`/weapi/djradio/${action}`,
'POST',
"POST",
data,
cookie,
music_req => {
res.send(music_req)
res.send(music_req);
},
err => res.status(502).send('fetch error')
)
})
module.exports = router
err => res.status(502).send("fetch error")
);
};
const express = require("express");
const router = express();
const { createWebAPIRequest } = require("../util/util");
router.get("/", (req, res) => {
module.exports = (req, res, createWebAPIRequest, request) => {
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
const data = {
......@@ -21,6 +17,4 @@ router.get("/", (req, res) => {
},
err => res.status(502).send("fetch error")
);
});
module.exports = router;
};
const express = require('express')
const router = express()
const { createWebAPIRequest } = require('../util/util')
router.get('/', (req, res) => {
const cookie = req.get('Cookie') ? req.get('Cookie') : ''
//获取动态
module.exports = (req, res, createWebAPIRequest, request) => {
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
const data = {
csrf_token: ''
}
csrf_token: ""
};
createWebAPIRequest(
'music.163.com',
'/weapi/v1/event/get',
'POST',
"music.163.com",
"/weapi/v1/event/get",
"POST",
data,
cookie,
music_req => res.send(music_req),
err => res.status(502).send('fetch error')
)
})
module.exports = router
err => res.status(502).send("fetch error")
);
};
const express = require('express')
const router = express()
const { createWebAPIRequest } = require('../util/util')
router.get('/', (req, res) => {
const cookie = req.get('Cookie') ? req.get('Cookie') : ''
const songId = req.query.id
const alg = 'RT'
const time = req.query.time || 25
//垃圾桶
module.exports = (req, res, createWebAPIRequest, request) => {
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
const songId = req.query.id;
const alg = "RT";
const time = req.query.time || 25;
const data = {
csrf_token: '',
csrf_token: "",
songId
}
};
createWebAPIRequest(
'music.163.com',
"music.163.com",
`/weapi/radio/trash/add?alg=${alg}&songId=${songId}&time=${time}`,
'POST',
"POST",
data,
cookie,
music_req => res.send(music_req),
err => res.status(502).send('fetch error')
)
})
module.exports = router
err => res.status(502).send("fetch error")
);
};
const express = require('express')
const router = express()
const { createWebAPIRequest } = require('../util/util')
router.get('/', (req, res) => {
const cookie = req.get('Cookie') ? req.get('Cookie') : ''
module.exports = (req, res, createWebAPIRequest, request) => {
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
const data = {
csrf_token: ''
}
const url = req.query.type == 'add' ? 'follow' : 'delfollow'
const id = req.query.id
csrf_token: ""
};
const url = req.query.type == "add" ? "follow" : "delfollow";
const id = req.query.id;
createWebAPIRequest(
'music.163.com',
"music.163.com",
`/weapi/user/${url}/${id}`,
'POST',
"POST",
data,
cookie,
music_req => {
res.send(music_req)
res.send(music_req);
},
err => res.status(502).send('fetch error')
)
})
module.exports = router
err => res.status(502).send("fetch error")
);
};
const express = require('express')
const router = express()
const { createWebAPIRequest } = require('../util/util')
router.get('/', (req, res) => {
const cookie = req.get('Cookie') ? req.get('Cookie') : ''
const trackId = req.query.id
const like = req.query.like || true
const alg = req.query.alg || 'itembased'
const time = req.query.time || 25
// 喜欢歌曲
module.exports = (req, res, createWebAPIRequest, request) => {
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
const trackId = req.query.id;
const like = req.query.like || true;
const alg = req.query.alg || "itembased";
const time = req.query.time || 25;
const data = {
csrf_token: '',
csrf_token: "",
trackId,
like
}
};
createWebAPIRequest(
'music.163.com',
"music.163.com",
`/weapi/radio/like?alg=${alg}&trackId=${trackId}&like=${like}&time=${time}`,
'POST',
"POST",
data,
cookie,
music_req => res.send(music_req),
err => res.status(502).send('fetch error')
)
})
module.exports = router
err => res.status(502).send("fetch error")
);
};
const express = require('express')
const router = express()
const { createWebAPIRequest } = require('../util/util')
router.get('/', (req, res) => {
const cookie = req.get('Cookie') ? req.get('Cookie') : ''
module.exports = (req, res, createWebAPIRequest, request) => {
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
const data = {
uid: req.query.uid,
csrf_token: ''
}
csrf_token: ""
};
createWebAPIRequest(
'music.163.com',
"music.163.com",
`/weapi/song/like/get`,
'POST',
"POST",
data,
cookie,
music_req => {
res.send(music_req)
res.send(music_req);
},
err => res.status(502).send('fetch error')
)
})
module.exports = router
err => res.status(502).send("fetch error")
);
};
const express = require('express')
const router = express()
const { createWebAPIRequest } = require('../util/util')
router.get('/', (req, res) => {
const cookie = req.get('Cookie') ? req.get('Cookie') : ''
// 不明 api
module.exports = (req, res, createWebAPIRequest, request) => {
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
const data = {
csrf_token: ''
}
csrf_token: ""
};
createWebAPIRequest(
'music.163.com',
'/weapi/feedback/weblog',
'POST',
"music.163.com",
"/weapi/feedback/weblog",
"POST",
data,
cookie,
music_req => res.send(music_req),
err => res.status(502).send('fetch error')
)
})
module.exports = router
err => res.status(502).send("fetch error")
);
};
const express = require('express')
const crypto = require('crypto')
const router = express()
const { createWebAPIRequest } = require('../util/util')
router.get('/', (req, res) => {
//邮箱登录
module.exports = (req, res, createWebAPIRequest, request) => {
const email = req.query.email
const cookie = req.get('Cookie') ? req.get('Cookie') : ''
const md5sum = crypto.createHash('md5')
......@@ -11,21 +9,19 @@ router.get('/', (req, res) => {
const data = {
username: email,
password: md5sum.digest('hex'),
rememberLogin: 'true',
clientToken:
'1_jVUMqWEPke0/1/Vu56xCmJpo5vP1grjn_SOVVDzOc78w8OKLVZ2JH7IfkjSXqgfmh'
rememberLogin: 'true'
}
console.log(email, req.query.password)
createWebAPIRequest(
'music.163.com',
'/weapi/login?csrf_token=',
'/weapi/login',
'POST',
data,
cookie,
(music_req, cookie) => {
// console.log(music_req)
cookie = cookie&&cookie.map(x => x.replace("Domain=.music.163.com", ""))
cookie = cookie && cookie.map(x => x.replace('Domain=.music.163.com', ''))
res.set({
'Set-Cookie': cookie
})
......@@ -33,6 +29,4 @@ router.get('/', (req, res) => {
},
err => res.status(502).send('fetch error')
)
})
module.exports = router
}
const express = require("express");
const crypto = require("crypto");
const router = express();
const { createWebAPIRequest } = require("../util/util");
router.get("/", (req, res) => {
//手机登录
module.exports = (req, res, createWebAPIRequest, request) => {
const phone = req.query.phone;
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
const md5sum = crypto.createHash("md5");
......@@ -32,6 +30,4 @@ router.get("/", (req, res) => {
},
err => res.status(502).send("fetch error")
);
});
module.exports = router;
};
const express = require('express')
const router = express()
const { createWebAPIRequest } = require('../util/util')
router.get('/', (req, res) => {
const cookie = req.get('Cookie') ? req.get('Cookie') : ''
//登录刷新
module.exports = (req, res, createWebAPIRequest, request) => {
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
const data = {
csrf_token: ''
}
csrf_token: ""
};
createWebAPIRequest(
'music.163.com',
"music.163.com",
`/weapi/login/token/refresh`,
'POST',
"POST",
data,
cookie,
(music_req, cookie) => {
res.set({
'Set-Cookie': cookie
})
res.send(music_req)
"Set-Cookie": cookie
});
res.send(music_req);
},
err => res.status(502).send('fetch error')
)
})
module.exports = router
err => res.status(502).send("fetch error")
);
};
const express = require('express')
const router = express()
const { createWebAPIRequest } = require('../util/util')
router.get('/', (req, res) => {
const cookie = req.get('Cookie') ? req.get('Cookie') : ''
const data = {}
const id = req.query.id
// 获取歌词
module.exports = (req, res, createWebAPIRequest, request) => {
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
const data = {};
const id = req.query.id;
createWebAPIRequest(
'music.163.com',
'/weapi/song/lyric?os=osx&id=' + id + '&lv=-1&kv=-1&tv=-1',
'POST',
"music.163.com",
"/weapi/song/lyric?os=osx&id=" + id + "&lv=-1&kv=-1&tv=-1",
"POST",
data,
cookie,
music_req => {
res.send(music_req)
res.send(music_req);
},
err => res.status(502).send('fetch error')
)
})
module.exports = router
err => res.status(502).send("fetch error")
);
};
const express = require('express')
const router = express()
const { createWebAPIRequest } = require('../util/util')
router.get('/', (req, res) => {
const id = req.query.id
const br = req.query.br || 999000
// 获取音乐 url
module.exports = (req, res, createWebAPIRequest, request) => {
const id = req.query.id;
const br = req.query.br || 999000;
const data = {
ids: [id],
br: br,
csrf_token: ''
}
const cookie = req.get('Cookie') ? req.get('Cookie') : ''
csrf_token: ""
};
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
createWebAPIRequest(
'music.163.com',
'/weapi/song/enhance/player/url',
'POST',
"music.163.com",
"/weapi/song/enhance/player/url",
"POST",
data,
cookie,
music_req => {
res.setHeader('Content-Type', 'application/json')
res.send(music_req)
res.setHeader("Content-Type", "application/json");
res.send(music_req);
},
err => {
res.status(502).send('fetch error')
res.status(502).send("fetch error");
}
)
})
module.exports = router
);
};
const express = require('express')
const router = express()
const { createWebAPIRequest } = require('../util/util')
router.get('/', (req, res) => {
const cookie = req.get('Cookie') ? req.get('Cookie') : ''
const mvid = req.query.mvid
//mv
module.exports = (req, res, createWebAPIRequest, request) => {
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
const mvid = req.query.mvid;
const data = {
id: mvid
}
};
createWebAPIRequest(
'music.163.com',
"music.163.com",
`/weapi/mv/detail`,
'POST',
"POST",
data,
cookie,
music_req => {
res.send(music_req)
res.send(music_req);
},
err => res.status(502).send('fetch error')
)
})
module.exports = router
err => res.status(502).send("fetch error")
);
};
//最新mv
const express = require('express')
const router = express()
const { createWebAPIRequest } = require('../util/util')
// type ALL, ZH,EA,KR,JP
router.get('/', (req, res) => {
const cookie = req.get('Cookie') ? req.get('Cookie') : ''
module.exports = (req, res, createWebAPIRequest, request) => {
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
const data = {
// 'offset': req.query.offset || 0,
total: true,
limit: req.query.limit || 30,
csrf_token: ''
}
csrf_token: ""
};
createWebAPIRequest(
'music.163.com',
'/weapi/mv/first',
'POST',
"music.163.com",
"/weapi/mv/first",
"POST",
data,
cookie,
music_req => res.send(music_req),
err => res.status(502).send('fetch error')
)
})
module.exports = router
err => res.status(502).send("fetch error")
);
};
const express = require('express')
const router = express()
const request = require('request')
router.get('/', (req, res) => {
const url = req.query.url
module.exports = (req, res, createWebAPIRequest, request) => {
const url = req.query.url;
const headers = {
Referer: 'http://music.163.com/',
Cookie: 'appver=1.5.0.75771;',
'Content-Type': 'video/mp4',
Referer: "http://music.163.com/",
Cookie: "appver=1.5.0.75771;",
"Content-Type": "video/mp4",
Location: url
}
};
const options = {
header: headers,
url: url
}
};
request(options)
.on('error', err => {
res.send({ err })
.on("error", err => {
res.send({ err });
})
.pipe(res)
})
module.exports = router
.pipe(res);
};
const express = require('express')
const router = express()
const { createWebAPIRequest } = require('../util/util')
router.get('/', (req, res) => {
const cookie = req.get('Cookie') ? req.get('Cookie') : ''
// 私人 FM
module.exports = (req, res, createWebAPIRequest, request) => {
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
const data = {
csrf_token: ''
}
csrf_token: ""
};
createWebAPIRequest(
'music.163.com',
'/weapi/v1/radio/get',
'POST',
"music.163.com",
"/weapi/v1/radio/get",
"POST",
data,
cookie,
music_req => res.send(music_req),
err => res.status(502).send('fetch error')
)
})
module.exports = router
err => res.status(502).send("fetch error")
);
};
const express = require("express");
const router = express();
const { createWebAPIRequest } = require("../util/util");
router.get("/", (req, res) => {
//推荐歌单
module.exports = (req, res, createWebAPIRequest, request) => {
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
const data = {
limit: req.query.limit || 30,
......@@ -22,6 +19,4 @@ router.get("/", (req, res) => {
},
err => res.status(502).send("fetch error")
);
});
module.exports = router;
};
const express = require('express')
const router = express()
const { createWebAPIRequest } = require('../util/util')
router.get('/', (req, res) => {
const cookie = req.get('Cookie') ? req.get('Cookie') : ''
const data = {}
//推荐dj
module.exports = (req, res, createWebAPIRequest, request) => {
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
const data = {};
createWebAPIRequest(
'music.163.com',
'/weapi/personalized/djprogram',
'POST',
"music.163.com",
"/weapi/personalized/djprogram",
"POST",
data,
cookie,
music_req => {
res.send(music_req)
res.send(music_req);
},
err => res.status(502).send('fetch error')
)
})
module.exports = router
err => res.status(502).send("fetch error")
);
};
const express = require('express')
const router = express()
const { createWebAPIRequest } = require('../util/util')
router.get('/', (req, res) => {
const cookie = req.get('Cookie') ? req.get('Cookie') : ''
const data = {}
//推荐mv
module.exports = (req, res, createWebAPIRequest, request) => {
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
const data = {};
createWebAPIRequest(
'music.163.com',
'/weapi/personalized/mv',
'POST',
"music.163.com",
"/weapi/personalized/mv",
"POST",
data,
cookie,
music_req => {
res.send(music_req)
res.send(music_req);
},
err => res.status(502).send('fetch error')
)
})
module.exports = router
err => res.status(502).send("fetch error")
);
};
const express = require('express')
const router = express()
const { createWebAPIRequest } = require('../util/util')
router.get('/', (req, res) => {
const cookie = req.get('Cookie') ? req.get('Cookie') : ''
//推荐新音乐
module.exports = (req, res, createWebAPIRequest, request) => {
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
const data = {
type: 'recommend'
}
type: "recommend"
};
createWebAPIRequest(
'music.163.com',
'/weapi/personalized/newsong',
'POST',
"music.163.com",
"/weapi/personalized/newsong",
"POST",
data,
cookie,
music_req => {
res.send(music_req)
res.send(music_req);
},
err => res.status(502).send('fetch error')
)
})
module.exports = router
err => res.status(502).send("fetch error")
);
};
const express = require('express')
const router = express()
const { createWebAPIRequest } = require('../util/util')
router.get('/', (req, res) => {
const cookie = req.get('Cookie') ? req.get('Cookie') : ''
const data = {}
//独家放送
module.exports = (req, res, createWebAPIRequest, request) => {
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
const data = {};
createWebAPIRequest(
'music.163.com',
'/weapi/personalized/privatecontent',
'POST',
"music.163.com",
"/weapi/personalized/privatecontent",
"POST",
data,
cookie,
music_req => {
res.send(music_req)
res.send(music_req);
},
err => res.status(502).send('fetch error')
)
})
module.exports = router
err => res.status(502).send("fetch error")
);
};
const express = require('express')
const router = express()
const { createWebAPIRequest } = require('../util/util')
router.get('/', (req, res) => {
const cookie = req.get('Cookie') ? req.get('Cookie') : ''
// 全部歌单分类
module.exports = (req, res, createWebAPIRequest, request) => {
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
const data = {
csrf_token: ''
}
csrf_token: ""
};
createWebAPIRequest(
'music.163.com',
'/weapi/playlist/catalogue',
'POST',
"music.163.com",
"/weapi/playlist/catalogue",
"POST",
data,
cookie,
music_req => {
res.send(music_req)
res.send(music_req);
},
err => res.status(502).send('fetch error')
)
})
module.exports = router
err => res.status(502).send("fetch error")
);
};
const express = require("express");
const router = express();
const { createWebAPIRequest } = require("../util/util");
router.get("/", (req, res) => {
module.exports = (req, res, createWebAPIRequest, request) => {
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
const data = {
name: req.query.name,
......@@ -19,6 +15,4 @@ router.get("/", (req, res) => {
},
err => res.status(502).send("fetch error")
);
});
module.exports = router;
};
const http = require("http");
const express = require("express");
const router = express();
const { createWebAPIRequest } = require("../util/util");
router.get("/", (req, res) => {
// 获取歌单内列表
module.exports = (req, res, createWebAPIRequest, request) => {
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
const data = {
id: req.query.id,
......@@ -27,6 +23,4 @@ router.get("/", (req, res) => {
res.status(502).send("fetch error");
}
);
});
module.exports = router;
};
const express = require('express')
const router = express()
const { createWebAPIRequest } = require('../util/util')
router.get('/', (req, res) => {
const cookie = req.get('Cookie') ? req.get('Cookie') : ''
const data = {}
// 热门歌单分类
module.exports = (req, res, createWebAPIRequest, request) => {
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
const data = {};
createWebAPIRequest(
'music.163.com',
'/weapi/playlist/hottags',
'POST',
"music.163.com",
"/weapi/playlist/hottags",
"POST",
data,
cookie,
music_req => {
res.send(music_req)
res.send(music_req);
},
err => res.status(502).send('fetch error')
)
})
module.exports = router
err => res.status(502).send("fetch error")
);
};
const express = require("express");
const router = express();
const { createWebAPIRequest } = require("../util/util");
router.get("/", (req, res) => {
module.exports = (req, res, createWebAPIRequest, request) => {
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
const data = {
id: req.query.id,
......@@ -20,6 +16,4 @@ router.get("/", (req, res) => {
},
err => res.status(502).send("fetch error")
);
});
module.exports = router;
};
const express = require("express");
const router = express();
const { createWebAPIRequest } = require("../util/util");
//收藏单曲到歌单,从歌单删除歌曲 op=del,add;pid=歌单id,tracks=歌曲id
router.get("/", (req, res) => {
module.exports = (req, res, createWebAPIRequest, request) => {
const op = req.query.op;
const pid = req.query.pid;
// const tracks = req.query.tracks.split(',')
......@@ -27,6 +24,4 @@ router.get("/", (req, res) => {
music_req => res.send(music_req),
err => res.status(502).send("fetch error")
);
});
module.exports = router;
};
const express = require("express");
const router = express();
const { createWebAPIRequest } = require("../util/util");
router.get("/", (req, res) => {
module.exports = (req, res, createWebAPIRequest, request) => {
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
const playlist_id = req.query.id;
const desc_detail = req.query.desc || "";
......@@ -28,6 +24,4 @@ router.get("/", (req, res) => {
},
err => res.status(502).send("fetch error")
);
});
module.exports = router;
};
const express = require('express')
const router = express()
const { createWebAPIRequest } = require('../util/util')
router.get('/', (req, res) => {
const cookie = req.get('Cookie') ? req.get('Cookie') : ''
//推荐节目
module.exports = (req, res, createWebAPIRequest, request) => {
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
const data = {
cateId: req.query.type,
csrf_token: ''
}
csrf_token: ""
};
createWebAPIRequest(
'music.163.com',
'/weapi/program/recommend/v1',
'POST',
"music.163.com",
"/weapi/program/recommend/v1",
"POST",
data,
cookie,
music_req => {
res.send(music_req)
res.send(music_req);
},
err => res.status(502).send('fetch error')
)
})
module.exports = router
err => res.status(502).send("fetch error")
);
};
const express = require('express')
const router = express()
const { createWebAPIRequest } = require('../util/util')
router.get('/', (req, res) => {
const cookie = req.get('Cookie') ? req.get('Cookie') : ''
//取消推荐
module.exports = (req, res, createWebAPIRequest, request) => {
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
const data = {
csrf_token: ''
}
csrf_token: ""
};
createWebAPIRequest(
'music.163.com',
'/weapi/v1/radio/get',
'POST',
"music.163.com",
"/weapi/v1/radio/get",
"POST",
data,
cookie,
music_req => res.send(music_req),
err => res.status(502).send('fetch error')
)
})
module.exports = router
err => res.status(502).send("fetch error")
);
};
const express = require('express')
const router = express()
const { createWebAPIRequest } = require('../util/util')
router.get('/', (req, res) => {
const cookie = req.get('Cookie') ? req.get('Cookie') : ''
// 获取每日推荐歌单
module.exports = (req, res, createWebAPIRequest, request) => {
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
const data = {
csrf_token: ''
}
csrf_token: ""
};
createWebAPIRequest(
'music.163.com',
'/weapi/v1/discovery/recommend/resource',
'POST',
"music.163.com",
"/weapi/v1/discovery/recommend/resource",
"POST",
data,
cookie,
music_req => res.send(music_req),
err => res.status(502).send('fetch error')
)
})
module.exports = router
err => res.status(502).send("fetch error")
);
};
const express = require('express')
const router = express()
const { createWebAPIRequest } = require('../util/util')
router.get('/', (req, res) => {
const cookie = req.get('Cookie') ? req.get('Cookie') : ''
// 获取每日推荐歌曲
module.exports = (req, res, createWebAPIRequest, request) => {
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
const data = {
offset: 0,
total: true,
limit: 20,
csrf_token: ''
}
csrf_token: ""
};
createWebAPIRequest(
'music.163.com',
'/weapi/v1/discovery/recommend/songs',
'POST',
"music.163.com",
"/weapi/v1/discovery/recommend/songs",
"POST",
data,
cookie,
music_req => res.send(music_req),
err => res.status(502).send('fetch error')
)
})
module.exports = router
err => res.status(502).send("fetch error")
);
};
const express = require('express')
const router = express()
const { createWebAPIRequest } = require('../util/util')
router.get('/', (req, res) => {
const cookie = req.get('Cookie') ? req.get('Cookie') : ''
module.exports = (req, res, createWebAPIRequest, request) => {
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
const data = {
threadId: req.query.id,
csrf_token: ''
}
const action = req.query.t == 1 ? 'like' : 'unlike'
csrf_token: ""
};
const action = req.query.t == 1 ? "like" : "unlike";
createWebAPIRequest(
'music.163.com',
"music.163.com",
`/weapi/resource/${action}`,
'POST',
"POST",
data,
cookie,
music_req => {
res.send(music_req)
res.send(music_req);
},
err => res.status(502).send('fetch error')
)
})
module.exports = router
err => res.status(502).send("fetch error")
);
};
const express = require("express");
const router = express();
const { createWebAPIRequest } = require("../util/util");
router.get("/", (req, res) => {
// 搜索
module.exports = (req, res, createWebAPIRequest, request) => {
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
const keywords = req.query.keywords;
const type = req.query.type || 1;
......@@ -26,6 +23,4 @@ router.get("/", (req, res) => {
music_req => res.send(music_req),
err => res.status(502).send("fetch error")
);
});
module.exports = router;
};
const express = require("express");
const router = express();
const { createWebAPIRequest } = require("../util/util");
router.get("/", (req, res) => {
// 热搜
module.exports = (req, res, createWebAPIRequest, request) => {
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
const data = {
type: 1111
......@@ -19,6 +16,4 @@ router.get("/", (req, res) => {
},
err => res.status(502).send("fetch error")
);
});
module.exports = router;
};
const express = require('express')
const router = express()
const { createWebAPIRequest } = require('../util/util')
router.get('/', (req, res) => {
const cookie = req.get('Cookie') ? req.get('Cookie') : ''
//搜索 multimatch
module.exports = (req, res, createWebAPIRequest, request) => {
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
const data = {
csrf_token: '',
csrf_token: "",
type: req.query.type || 1,
s: req.query.keywords || ''
}
s: req.query.keywords || ""
};
createWebAPIRequest(
'music.163.com',
'/weapi/search/suggest/multimatch',
'POST',
"music.163.com",
"/weapi/search/suggest/multimatch",
"POST",
data,
cookie,
music_req => {
res.send(music_req)
res.send(music_req);
},
err => res.status(502).send('fetch error')
)
})
module.exports = router
err => res.status(502).send("fetch error")
);
};
const express = require('express')
const router = express()
const { createWebAPIRequest } = require('../util/util')
router.get('/', (req, res) => {
const cookie = req.get('Cookie') ? req.get('Cookie') : ''
// 搜索 suggest,搜索结果包含单曲,歌手,歌单,mv信息
module.exports = (req, res, createWebAPIRequest, request) => {
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
const data = {
csrf_token: '',
s: req.query.keywords || ''
}
csrf_token: "",
s: req.query.keywords || ""
};
createWebAPIRequest(
'music.163.com',
'/weapi/search/suggest/web',
'POST',
"music.163.com",
"/weapi/search/suggest/web",
"POST",
data,
cookie,
music_req => {
res.send(music_req)
res.send(music_req);
},
err => res.status(502).send('fetch error')
)
})
module.exports = router
err => res.status(502).send("fetch error")
);
};
const express = require("express");
const router = express();
const { createWebAPIRequest } = require("../util/util");
router.get("/", (req, res) => {
module.exports = (req, res, createWebAPIRequest, request) => {
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
const user_ids = req.query.user_ids;
const data = {
......@@ -21,6 +17,4 @@ router.get("/", (req, res) => {
music_req => res.send(music_req),
err => res.status(502).send("fetch error")
);
});
module.exports = router;
};
const express = require("express");
const router = express();
const { createWebAPIRequest } = require("../util/util");
router.get("/", (req, res) => {
module.exports = (req, res, createWebAPIRequest, request) => {
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
// user_id must be [id]
const user_ids = req.query.user_ids;
......@@ -22,6 +18,4 @@ router.get("/", (req, res) => {
music_req => res.send(music_req),
err => res.status(502).send("fetch error")
);
});
module.exports = router;
};
module.exports = (req, res, createWebAPIRequest, request) => {
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
const id = req.query.id;
const data = {
artistid: id,
csrf_token: ""
};
createWebAPIRequest(
"music.163.com",
`/weapi/discovery/simiArtist`,
"POST",
data,
cookie,
music_req => res.send(music_req),
err => res.status(502).send("fetch error")
);
};
const express = require('express')
const router = express()
const { createWebAPIRequest } = require('../util/util')
router.get('/', (req, res) => {
const cookie = req.get('Cookie') ? req.get('Cookie') : ''
const id = req.query.id
const data = {
artistid: id,
csrf_token: ''
}
createWebAPIRequest(
'music.163.com',
`/weapi/discovery/simiArtist`,
'POST',
data,
cookie,
music_req => res.send(music_req),
err => res.status(502).send('fetch error')
)
})
module.exports = router
const express = require('express')
const router = express()
const { createWebAPIRequest } = require('../util/util')
router.get('/', (req, res) => {
const cookie = req.get('Cookie') ? req.get('Cookie') : ''
//相似 mv
module.exports = (req, res, createWebAPIRequest, request) => {
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
const data = {
mvid: req.query.mvid
}
};
createWebAPIRequest(
'music.163.com',
'/weapi/discovery/simiMV',
'POST',
"music.163.com",
"/weapi/discovery/simiMV",
"POST",
data,
cookie,
music_req => res.send(music_req),
err => res.status(502).send('fetch error')
)
})
module.exports = router
err => res.status(502).send("fetch error")
);
};
const express = require("express");
const router = express();
const { createWebAPIRequest } = require("../util/util");
router.get("/", (req, res) => {
//simi ,相似歌单
module.exports = (req, res, createWebAPIRequest, request) => {
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
const data = {
songid: req.query.id
......@@ -18,6 +15,4 @@ router.get("/", (req, res) => {
},
err => res.status(502).send("fetch error")
);
});
module.exports = router;
};
const express = require("express");
const router = express();
const { createWebAPIRequest } = require("../util/util");
router.get("/", (req, res) => {
//simi ,相似歌曲
module.exports = (req, res, createWebAPIRequest, request) => {
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
const data = {
songid: req.query.id
......@@ -18,6 +15,4 @@ router.get("/", (req, res) => {
},
err => res.status(502).send("fetch error")
);
});
module.exports = router;
};
const express = require("express");
const router = express();
const { createWebAPIRequest } = require("../util/util");
router.get("/", (req, res) => {
//simi ,相似关注的用户
module.exports = (req, res, createWebAPIRequest, request) => {
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
const data = {
songid: req.query.id
......@@ -18,6 +15,4 @@ router.get("/", (req, res) => {
},
err => res.status(502).send("fetch error")
);
});
module.exports = router;
};
const express = require('express')
const router = express()
const { createWebAPIRequest } = require('../util/util')
router.get('/', (req, res) => {
const cookie = req.get('Cookie') ? req.get('Cookie') : ''
const id = parseInt(req.query.ids)
// 获取音乐详情
module.exports = (req, res, createWebAPIRequest, request) => {
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
const id = parseInt(req.query.ids);
const data = {
// "id": id,
c: JSON.stringify([{ id: id }]),
ids: '[' + id + ']',
csrf_token: ''
}
console.log(data)
ids: "[" + id + "]",
csrf_token: ""
};
console.log(data);
createWebAPIRequest(
'music.163.com',
'/weapi/v3/song/detail',
'POST',
"music.163.com",
"/weapi/v3/song/detail",
"POST",
data,
cookie,
music_req => {
res.send(music_req)
res.send(music_req);
},
err => res.status(502).send('fetch error')
)
})
module.exports = router
err => res.status(502).send("fetch error")
);
};
//最新mv
const express = require('express')
const router = express()
const { createWebAPIRequest } = require('../util/util')
// 新碟上架 http://music.163.com/#/discover/album/
// type ALL, ZH,EA,KR,JP
router.get('/', (req, res) => {
const cookie = req.get('Cookie') ? req.get('Cookie') : ''
module.exports = (req, res, createWebAPIRequest, request) => {
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
const data = {
offset: req.query.offset || 0,
total: true,
limit: req.query.limit || 50,
area: req.query.type,
csrf_token: ''
}
csrf_token: ""
};
createWebAPIRequest(
'music.163.com',
'/weapi/album/new',
'POST',
"music.163.com",
"/weapi/album/new",
"POST",
data,
cookie,
music_req => {
res.send(music_req)
res.send(music_req);
},
err => res.status(502).send('fetch error')
)
})
module.exports = router
err => res.status(502).send("fetch error")
);
};
const express = require('express')
const router = express()
const { createWebAPIRequest } = require('../util/util')
router.get('/', (req, res) => {
const cookie = req.get('Cookie') ? req.get('Cookie') : ''
// 热门歌手 http://music.163.com/#/discover/artist/
module.exports = (req, res, createWebAPIRequest, request) => {
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
const data = {
offset: req.query.offset || 0,
total: true,
limit: req.query.limit || 50,
csrf_token: ''
}
csrf_token: ""
};
createWebAPIRequest(
'music.163.com',
"music.163.com",
`/weapi/artist/top`,
'POST',
"POST",
data,
cookie,
music_req => {
res.send(music_req)
res.send(music_req);
},
err => res.status(502).send('fetch error')
)
})
module.exports = router
err => res.status(502).send("fetch error")
);
};
......@@ -24,11 +24,7 @@ const top_list_all = {
"22": ["云音乐ACG音乐榜", "71385702"],
"23": ["云音乐嘻哈榜", "991319590"]
};
const express = require("express");
const router = express();
const { createWebAPIRequest } = require("../util/util");
router.get("/", (req, res) => {
module.exports = (req, res, createWebAPIRequest, request) => {
const idx = req.query.idx;
const id = top_list_all[idx][1];
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
......@@ -52,6 +48,4 @@ router.get("/", (req, res) => {
},
err => res.status(502).send("fetch error")
);
});
module.exports = router;
};
const express = require('express')
const router = express()
const { createWebAPIRequest } = require('../util/util')
router.get('/', (req, res) => {
const cookie = req.get('Cookie') ? req.get('Cookie') : ''
module.exports = (req, res, createWebAPIRequest, request) => {
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
const data = {
offset: req.query.offset || 0,
total: true,
limit: req.query.limit || 30,
csrf_token: ''
}
csrf_token: ""
};
createWebAPIRequest(
'music.163.com',
'/weapi/mv/toplist',
'POST',
"music.163.com",
"/weapi/mv/toplist",
"POST",
data,
cookie,
music_req => {
res.setHeader('Content-Type', 'application/json')
res.send(music_req)
res.setHeader("Content-Type", "application/json");
res.send(music_req);
},
err => res.status(502).send('fetch error')
)
})
module.exports = router
err => res.status(502).send("fetch error")
);
};
//分类歌单
const express = require('express')
const router = express()
const { createWebAPIRequest } = require('../util/util')
router.get('/', (req, res) => {
const cookie = req.get('Cookie') ? req.get('Cookie') : ''
module.exports = (req, res, createWebAPIRequest, request) => {
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
// order可为 'hot' 可为 'new'
const data = {
cat: req.query.cat || '全部',
order: req.query.order || 'hot',
cat: req.query.cat || "全部",
order: req.query.order || "hot",
offset: req.query.offset || 0,
total: req.query.total ? 'true' : 'false',
total: req.query.total ? "true" : "false",
limit: req.query.limit || 50
}
};
createWebAPIRequest(
'music.163.com',
'/weapi/playlist/list',
'POST',
"music.163.com",
"/weapi/playlist/list",
"POST",
data,
cookie,
music_req => {
res.send(music_req)
res.send(music_req);
},
err => res.status(502).send('fetch error')
)
})
module.exports = router
err => res.status(502).send("fetch error")
);
};
const express = require("express");
const router = express();
const { createWebAPIRequest } = require("../util/util");
router.get("/", (req, res) => {
//精品歌单
module.exports = (req, res, createWebAPIRequest, request) => {
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
const data = {
cat: req.query.cat || "全部",
......@@ -21,6 +18,4 @@ router.get("/", (req, res) => {
},
err => res.status(502).send("fetch error")
);
});
module.exports = router;
};
//暂时废弃
const express = require("express");
const router = express();
const { createWebAPIRequest } = require("../util/util");
router.get("/", (req, res) => {
module.exports = (req, res, createWebAPIRequest, request) => {
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
const data = {
csrf_token: ""
......@@ -19,6 +15,4 @@ router.get("/", (req, res) => {
},
err => res.status(502).send("fetch error")
);
});
module.exports = router;
};
// 排行榜
const express = require('express')
const router = express()
const { createWebAPIRequest } = require('../util/util')
router.get('/', (req, res) => {
const cookie = req.get('Cookie') ? req.get('Cookie') : ''
module.exports = (req, res, createWebAPIRequest, request) => {
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
const data = {
csrf_token: ''
}
csrf_token: ""
};
createWebAPIRequest(
'music.163.com',
'/weapi/toplist',
'POST',
"music.163.com",
"/weapi/toplist",
"POST",
data,
cookie,
music_req => {
res.send(music_req)
res.send(music_req);
},
err => res.status(502).send('fetch error')
)
})
module.exports = router
err => res.status(502).send("fetch error")
);
};
//歌手榜
const express = require('express')
const router = express()
const { createWebAPIRequest } = require('../util/util')
router.get('/', (req, res) => {
const cookie = req.get('Cookie') ? req.get('Cookie') : ''
module.exports = (req, res, createWebAPIRequest, request) => {
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
const data = {
type: req.query.type,
csrf_token: ''
}
csrf_token: ""
};
createWebAPIRequest(
'music.163.com',
'/eapi/toplist/artist?params=B5CAE4715306477C2EFA74D383640F01BF227BF8E889F80E2E2A442958463A7E589CC99878CFCE88D165B64712332AF39EC61B7E68903B2F9F079E8D1AB99FC61049A6D5B97AF8E6FFE8DA16ED540D2CFA80205B889ACA39F8B05AE593FDF5A094F118FF4600C2025094ECF6EB58F6D424B7A97B21A8C1D7CF0609AF2FBE9FDD88826E1667C889757BA920684C5C425FF01B5514AF1EB08AB7D298DB4D65187829E315F9FFBBEB43C2AE3DC21222B31CEC6FF337957AC122FBCB3E793FC1960151B0BDEBB1565BFD835E7A7D6A2D034A5591070D42C32DA4B69E0061C46D61239221A1C64EF676D891B44D7B855E27C82A7EB376F0B0C27952F2006E302B47DA1DE86C3488D53FD98ED9FDC6AA341DF0ECF92BA2E8F77E41811BF9447973C5C34FFED13E28AC544347F9E6ADF4B0008C371FC41C4490D3C9E1A225791D2170326231C40662633AA93D5CEF9AABC777AF268A4B13C560157339478DFAD5D910C966B43E1F017410DBF06D189E2BD6D0CD2682F343A83994E66CA73B5E2A67A122842BF945F2B434CBDE4C5A589A3A90F70DF1A8B63E7BAFBEB624956C62CFB1114AB841379541E5BB4625F2C28CAEA6A67E77A7EEAA1149D9D0F7E190D3A3408DF88B62FBF27996ABC925A93E5A67B4B0D1D931214BB07064F2BA4DCBA2E548E5A110E9B992C21E3930EB488172929C02C06D76BB193EF923D1906E0A0C4D75F5EB909AE77B0A2E55539A182D0B2533C654F2C90A038406B8850BFC022639F2B3FB7EDF40FD74AEA0B9119E9987D2909C01C587794F53459DB8EE83AA8D15FBEAC71EB3A00D8E40E78FE9A9A4068495D9257B39D8F825086F391FD5E7A48AACA96BC261E334A1929C81633234A0B22C573AEAD05BC8B4216283ACFD9E022950AEC812F554B913B4457FDF68AA2CC5E476922C2670D49154BC1DEB6D464F60DBFAD2BB4144762CD3721F52D42FDAE56DB9C529EDB6FB946CD725B3E2EA2AFDCF3F759D384B4F7F75AAA6F01F8093C8A140B3B388FF57272A6A7E10274290A79CDCA69E37BC066CE8CCD5B4BB4E12DA841B',
'POST',
"music.163.com",
"/eapi/toplist/artist?params=B5CAE4715306477C2EFA74D383640F01BF227BF8E889F80E2E2A442958463A7E589CC99878CFCE88D165B64712332AF39EC61B7E68903B2F9F079E8D1AB99FC61049A6D5B97AF8E6FFE8DA16ED540D2CFA80205B889ACA39F8B05AE593FDF5A094F118FF4600C2025094ECF6EB58F6D424B7A97B21A8C1D7CF0609AF2FBE9FDD88826E1667C889757BA920684C5C425FF01B5514AF1EB08AB7D298DB4D65187829E315F9FFBBEB43C2AE3DC21222B31CEC6FF337957AC122FBCB3E793FC1960151B0BDEBB1565BFD835E7A7D6A2D034A5591070D42C32DA4B69E0061C46D61239221A1C64EF676D891B44D7B855E27C82A7EB376F0B0C27952F2006E302B47DA1DE86C3488D53FD98ED9FDC6AA341DF0ECF92BA2E8F77E41811BF9447973C5C34FFED13E28AC544347F9E6ADF4B0008C371FC41C4490D3C9E1A225791D2170326231C40662633AA93D5CEF9AABC777AF268A4B13C560157339478DFAD5D910C966B43E1F017410DBF06D189E2BD6D0CD2682F343A83994E66CA73B5E2A67A122842BF945F2B434CBDE4C5A589A3A90F70DF1A8B63E7BAFBEB624956C62CFB1114AB841379541E5BB4625F2C28CAEA6A67E77A7EEAA1149D9D0F7E190D3A3408DF88B62FBF27996ABC925A93E5A67B4B0D1D931214BB07064F2BA4DCBA2E548E5A110E9B992C21E3930EB488172929C02C06D76BB193EF923D1906E0A0C4D75F5EB909AE77B0A2E55539A182D0B2533C654F2C90A038406B8850BFC022639F2B3FB7EDF40FD74AEA0B9119E9987D2909C01C587794F53459DB8EE83AA8D15FBEAC71EB3A00D8E40E78FE9A9A4068495D9257B39D8F825086F391FD5E7A48AACA96BC261E334A1929C81633234A0B22C573AEAD05BC8B4216283ACFD9E022950AEC812F554B913B4457FDF68AA2CC5E476922C2670D49154BC1DEB6D464F60DBFAD2BB4144762CD3721F52D42FDAE56DB9C529EDB6FB946CD725B3E2EA2AFDCF3F759D384B4F7F75AAA6F01F8093C8A140B3B388FF57272A6A7E10274290A79CDCA69E37BC066CE8CCD5B4BB4E12DA841B",
"POST",
data,
cookie,
music_req => {
res.send(music_req)
res.send(music_req);
},
err => res.status(502).send('fetch error')
)
})
module.exports = router
err => res.status(502).send("fetch error")
);
};
// 排行榜详情
const express = require('express')
const router = express()
const { createWebAPIRequest } = require('../util/util')
router.get('/', (req, res) => {
const cookie = req.get('Cookie') ? req.get('Cookie') : ''
module.exports = (req, res, createWebAPIRequest, request) => {
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
const data = {
id: req.query.id,
limit: 20,
csrf_token: ''
}
csrf_token: ""
};
createWebAPIRequest(
'music.163.com',
'/weapi/toplist/detail',
'POST',
"music.163.com",
"/weapi/toplist/detail",
"POST",
data,
cookie,
music_req => {
res.send(music_req)
res.send(music_req);
},
err => res.status(502).send('fetch error')
)
})
module.exports = router
err => res.status(502).send("fetch error")
);
};
const express = require('express')
const router = express()
const { createWebAPIRequest } = require('../util/util')
router.get('/', (req, res) => {
// 获取用户电台
module.exports = (req, res, createWebAPIRequest, request) => {
const data = {
userId: req.query.uid,
csrf_token: ''
}
console.log(data)
const cookie = req.get('Cookie') ? req.get('Cookie') : ''
csrf_token: ""
};
console.log(data);
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
createWebAPIRequest(
'music.163.com',
'/weapi/djradio/get/byuser',
'POST',
"music.163.com",
"/weapi/djradio/get/byuser",
"POST",
data,
cookie,
music_req => {
res.setHeader('Content-Type', 'application/json')
res.send(music_req)
res.setHeader("Content-Type", "application/json");
res.send(music_req);
},
err => {
res.status(502).send('fetch error')
res.status(502).send("fetch error");
}
)
})
module.exports = router
);
};
const express = require('express')
const router = express()
const { createWebAPIRequest } = require('../util/util')
router.get('/', (req, res) => {
//云盘数据
module.exports = (req, res, createWebAPIRequest, request) => {
const data = {
limit: req.query.limit || 10,
offset: req.query.offset || 0,
csrf_token: ''
}
const cookie = req.get('Cookie') ? req.get('Cookie') : ''
csrf_token: ""
};
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
createWebAPIRequest(
'music.163.com',
'/weapi/v1/cloud/get',
'POST',
"music.163.com",
"/weapi/v1/cloud/get",
"POST",
data,
cookie,
music_req => {
res.setHeader('Content-Type', 'application/json')
res.send(music_req)
res.setHeader("Content-Type", "application/json");
res.send(music_req);
},
err => {
res.status(502).send('fetch error')
res.status(502).send("fetch error");
}
)
})
module.exports = router
);
};
const express = require('express')
const router = express()
const { createWebAPIRequest } = require('../util/util')
router.get('/', (req, res) => {
//云盘数据详情? 暂时不要使用
module.exports = (req, res, createWebAPIRequest, request) => {
const data = {
byids: req.query.id,
id: req.query.id,
csrf_token: ''
}
const cookie = req.get('Cookie') ? req.get('Cookie') : ''
csrf_token: ""
};
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
createWebAPIRequest(
'music.163.com',
'/weapi/v1/cloud/get/byids',
'POST',
"music.163.com",
"/weapi/v1/cloud/get/byids",
"POST",
data,
cookie,
music_req => {
res.setHeader('Content-Type', 'application/json')
res.send(music_req)
res.setHeader("Content-Type", "application/json");
res.send(music_req);
},
err => {
res.status(502).send('fetch error')
res.status(502).send("fetch error");
}
)
})
module.exports = router
);
};
// 用户详情
const express = require('express')
const router = express()
const { createWebAPIRequest } = require('../util/util')
router.get('/', (req, res) => {
const cookie = req.get('Cookie') ? req.get('Cookie') : ''
const id = req.query.uid
module.exports = (req, res, createWebAPIRequest, request) => {
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
const id = req.query.uid;
const data = {
csrf_token: ''
}
csrf_token: ""
};
createWebAPIRequest(
'music.163.com',
"music.163.com",
`/weapi/v1/user/detail/${id}`,
'POST',
"POST",
data,
cookie,
music_req => {
res.send(music_req)
res.send(music_req);
},
err => res.status(502).send('fetch error')
)
})
module.exports = router
err => res.status(502).send("fetch error")
);
};
// 用户电台
const express = require('express')
const router = express()
const { createWebAPIRequest } = require('../util/util')
router.get('/', (req, res) => {
const cookie = req.get('Cookie') ? req.get('Cookie') : ''
const id = req.query.uid
module.exports = (req, res, createWebAPIRequest, request) => {
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
const id = req.query.uid;
const data = {
offset: req.query.offset || '0',
offset: req.query.offset || "0",
limit: req.query.limit || 30,
csrf_token: ''
}
csrf_token: ""
};
createWebAPIRequest(
'music.163.com',
"music.163.com",
`/weapi/dj/program/${id}`,
'POST',
"POST",
data,
cookie,
music_req => {
res.send(music_req)
res.send(music_req);
},
err => res.status(502).send('fetch error')
)
})
module.exports = router
err => res.status(502).send("fetch error")
);
};
const express = require('express')
const router = express()
const { createWebAPIRequest } = require('../util/util')
router.get('/', (req, res) => {
const cookie = req.get('Cookie') ? req.get('Cookie') : ''
const id = req.query.uid
//用户动态
module.exports = (req, res, createWebAPIRequest, request) => {
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
const id = req.query.uid;
const data = {
time: -1,
getcounts: true,
csrf_token: ''
}
csrf_token: ""
};
createWebAPIRequest(
'music.163.com',
"music.163.com",
`/weapi/event/get/${id}`,
'POST',
"POST",
data,
cookie,
music_req => {
res.send(music_req)
res.send(music_req);
},
err => res.status(502).send('fetch error')
)
})
module.exports = router
err => res.status(502).send("fetch error")
);
};
const express = require('express')
const router = express()
const { createWebAPIRequest } = require('../util/util')
router.get('/', (req, res) => {
const cookie = req.get('Cookie') ? req.get('Cookie') : ''
module.exports = (req, res, createWebAPIRequest, request) => {
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
const data = {
userId: req.query.uid,
offset: req.query.offset || '0',
offset: req.query.offset || "0",
limit: req.query.limit || 30,
csrf_token: ''
}
csrf_token: ""
};
createWebAPIRequest(
'music.163.com',
"music.163.com",
`/weapi/user/getfolloweds/`,
'POST',
"POST",
data,
cookie,
music_req => {
res.send(music_req)
res.send(music_req);
},
err => res.status(502).send('fetch error')
)
})
module.exports = router
err => res.status(502).send("fetch error")
);
};
const express = require('express')
const router = express()
const { createWebAPIRequest } = require('../util/util')
router.get('/', (req, res) => {
const cookie = req.get('Cookie') ? req.get('Cookie') : ''
const id = req.query.uid
module.exports = (req, res, createWebAPIRequest, request) => {
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
const id = req.query.uid;
const data = {
offset: req.query.offset || '0',
offset: req.query.offset || "0",
limit: req.query.limit || 30,
order: true
}
};
createWebAPIRequest(
'music.163.com',
"music.163.com",
`/weapi/user/getfollows/${id}`,
'POST',
"POST",
data,
cookie,
music_req => {
res.send(music_req)
res.send(music_req);
},
err => res.status(502).send('fetch error')
)
})
module.exports = router
err => res.status(502).send("fetch error")
);
};
const express = require("express");
const router = express();
const { createWebAPIRequest } = require("../util/util");
router.get("/", (req, res) => {
// 获取用户歌单
module.exports = (req, res, createWebAPIRequest, request) => {
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
const data = {
offset: req.query.offset || 0,
......@@ -22,6 +19,4 @@ router.get("/", (req, res) => {
},
err => res.status(502).send("fetch error")
);
});
module.exports = router;
};
//播放记录
const express = require('express')
const router = express()
const { createWebAPIRequest } = require('../util/util')
router.get('/', (req, res) => {
const cookie = req.get('Cookie') ? req.get('Cookie') : ''
module.exports = (req, res, createWebAPIRequest, request) => {
const cookie = req.get("Cookie") ? req.get("Cookie") : "";
// type=1时只返回weekData, type=0时返回allData
const data = {
type: req.query.type || 0,
uid: req.query.uid, //用户 id,
csrf_token: ''
}
const action = `/weapi/v1/play/record`
csrf_token: ""
};
const action = `/weapi/v1/play/record`;
createWebAPIRequest(
'music.163.com',
"music.163.com",
action,
'POST',
"POST",
data,
cookie,
music_req => res.send(music_req),
err => res.status(502).send('fetch error')
)
})
module.exports = router
err => res.status(502).send("fetch error")
);
};
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册