mirror of
https://github.com/letian1650/N3RD.git
synced 2025-01-25 04:05:17 +08:00
50 lines
1.7 KiB
JavaScript
50 lines
1.7 KiB
JavaScript
js:
|
|
//输入的input如:https://m.douyu.com/312212?dyshid=0-00000003333&dyshci=1
|
|
function getSign(script, rid, did, tt){
|
|
|
|
let result = script.match(/(function ub98484234.*)\s(var.*)/)[0];
|
|
let func_ub9 = result.replace(/eval.*;}/, 'strc;}', result);
|
|
eval(func_ub9);
|
|
|
|
let res = ub98484234();
|
|
let v = res.match(/v=(\d+)/)[0].replace("v=", '');
|
|
let rb = md5(rid + did + tt + v);
|
|
|
|
let func_sign = res.replace(/return rt;}\);?/, 'return rt;}');
|
|
func_sign = func_sign.replace('(function (', 'function sign(');
|
|
func_sign = func_sign.replace('CryptoJS.MD5(cb).toString()', '"' + rb + '"');
|
|
eval(func_sign);
|
|
|
|
let params = sign(rid, did, tt) + "&ver=219032101&rate=-1&rid="+rid;
|
|
return params
|
|
}
|
|
// log(env);
|
|
// fetch_params.headers.Referer = input;
|
|
var flag = [];
|
|
function lazy() {
|
|
try {
|
|
// realUrl = null;
|
|
let html = request(input);
|
|
// log(html);
|
|
let rid = html.match(/rid":(.*?),"vipId/)[1];
|
|
log(rid);
|
|
// let tt = Date.parse(new Date()).toString().substr(0, 10);
|
|
let tt = Math.round(new Date().getTime() / 1000).toString();
|
|
let did = '10000000000000000000000000001501';
|
|
let param_body = getSign(html, rid, did, tt);
|
|
log(param_body);
|
|
let stream_json = request('https://m.douyu.com/api/room/ratestream', {
|
|
headers: {
|
|
'Content-Type': 'application/x-www-form-urlencoded',
|
|
}, body: param_body, method: 'POST'
|
|
});
|
|
log(stream_json);
|
|
let stream = JSON.parse(stream_json).data;
|
|
realUrl = stream.url;
|
|
log('解析到真实播放地址:' + realUrl);
|
|
} catch (e) {
|
|
log('解析发生错误:' + e.message);
|
|
realUrl = input;
|
|
}
|
|
return realUrl
|
|
} |