dr_py/jiexi/斗鱼.js
晚风拂柳颜 7b4b5897ed lazy
2023-07-04 13:53:31 +08:00

44 lines
1.6 KiB
JavaScript

js:
//输入的vipUrl如: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 = vipUrl;
try {
// realUrl = null;
let html = request(vipUrl);
// 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 = vipUrl;
}