dr_py/zhengban/MGTV.py
2023-04-23 21:04:12 +08:00

59 lines
1.7 KiB
Python

import base64
import requests
import uuid
import time
class MGTV:
def __init__(self, url):
self.url = url
def get_video_id(self):
return self.url.split("/", 5)[-1].split(".")[0]
def get_pm2(self):
did = "e6e13014-393b-43e7-b6be-2323e4960939"
suuid = uuid.uuid4()
pno = "1030"
# tk2 = self.encode_tk2(did, pno)
params = {
"did": did,
"suuid": suuid,
"cxid": "",
"tk2": self.encode_tk2(did, pno),
"type": "pch5",
"video_id": self.get_video_id(),
"_support": "10000000",
"auth_mode": "1",
"src": "",
"abroad": "",
}
res = requests.get("https://pcweb.api.mgtv.com/player/video", params=params).json()
return res['data']['atc']['pm2']
def encode_tk2(self, did="e6e13014-393b-43e7-b6be-2323e4960939", pno="1030"):
tk2 = bytes(f"did={did}|pno={pno}|ver=0.3.0301|clit={int(time.time())}".encode())
tk2 = base64.b64encode(tk2).decode().replace("/\+/g", "_").replace("/\//g", "~").replace("/=/g", "-")
tk2 = list(' '.join(tk2).split())
tk2.reverse()
return "".join(tk2)
def start(self):
params = {
"_support": "10000000",
"tk2": self.encode_tk2(),
"pm2": self.get_pm2(),
"video_id": self.get_video_id(),
"type": "pch5",
"auth_mode": "1",
"src": "",
"abroad": "",
}
res = requests.get("https://pcweb.api.mgtv.com/player/getSource", params=params).json()
print(res)
return res
if __name__ == '__main__':
MGTV().start()