mirror of
https://github.com/letian1650/N3RD.git
synced 2025-01-25 04:05:17 +08:00
47 lines
1.4 KiB
Python
47 lines
1.4 KiB
Python
import execjs
|
|
import requests
|
|
import re
|
|
import time
|
|
|
|
|
|
class DouYu:
|
|
def __init__(self, room_id):
|
|
self.room_id = room_id
|
|
self.int_time = int(time.time())
|
|
self.did = "3966acse00dd10qer895bdca00031601"
|
|
|
|
def get_ub98484234(self):
|
|
res = requests.get(f"https://www.douyu.com/{self.room_id}").text
|
|
ub98484234 = re.findall("(function ub98484234.*?})var", res)[0]
|
|
var = re.findall("var\sv\s=\s(.*?)[.]slice", ub98484234)[0]
|
|
var1 = re.findall(f"(var {var}=.*?);", res)[0]
|
|
return f"var CryptoJS = require('crypto-js');{var1};{ub98484234}"
|
|
|
|
def get_sign(self):
|
|
js = execjs.compile(self.get_ub98484234())
|
|
res = js.call("ub98484234", self.room_id, self.did, self.int_time)
|
|
return res.split("sign=")[-1]
|
|
|
|
def get_params(self):
|
|
return {
|
|
'v': f'2201{time.strftime("%Y%m%d", time.localtime())}',
|
|
'did': self.did,
|
|
'tt': self.int_time,
|
|
'sign': self.get_sign(),
|
|
'cdn': "tct-h5",
|
|
'rate': '0',
|
|
'ver': 'Douyu_221041305',
|
|
'iar': '0',
|
|
'ive': '1',
|
|
'hevc': '0',
|
|
'fa': '1',
|
|
}
|
|
|
|
def start(self):
|
|
res = requests.post(f"https://www.douyu.com/lapi/live/getH5Play/{self.room_id}", data=self.get_params()).json()
|
|
print(res)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
DouYu().start()
|