Skip to content

Instantly share code, notes, and snippets.

@loony175
Created October 9, 2018 17:25
Show Gist options
  • Save loony175/71dac6e457aaa698b941b8132028891e to your computer and use it in GitHub Desktop.
Save loony175/71dac6e457aaa698b941b8132028891e to your computer and use it in GitHub Desktop.
MiguVideo extractor
#!/usr/bin/env python3
import argparse
import arrow
import hashlib
import json
import random
import requests
OTK = '524832,975920,386494,9643'
NUMBER = 45240
def random_num(num):
return str(random.choice(range(num)))
def t(xor, raw):
processed = ''
for n in range(len(xor)):
processed += raw[int(xor[n])]
return processed
def md5(string):
return hashlib.md5(str.encode(string)).hexdigest()
def main():
parser = argparse.ArgumentParser()
add = parser.add_argument
add('id')
args = parser.parse_args()
otk_array = OTK.split(',')
resp = requests.get('https://tv.miguvideo.com/app/h5/createUUID').json()
uid = resp['uid']
cid = 'H_' + random_num(100000)
timestamp = arrow.now('Asia/Shanghai').strftime('%Y%m%d%H%M%S')
resp = requests.get('https://tv.miguvideo.com/apph/clientLogin', params={'cid': cid, 'time': timestamp}).json()
token = resp['body']['token']
salt = random_num(1000000)
tc = t(str(int(otk_array[2]) ^ int(otk_array[1])), uid)
tt = t(str(int(otk_array[0]) ^ int(otk_array[1])), timestamp)
tk = t(salt, token)
mgid = md5(md5(tt + tk + tc + str(int(NUMBER / 2))))
params = {}
params['id'] = args.id
params['plat'] = 'h'
params['salt'] = salt
params['clientId'] = uid
params['appVersion'] = '3.4.8'
params['mgid'] = mgid
params['pageType'] = '1'
params['mth'] = 'miguTvH5-' + uid
params['channel'] = ''
headers = {}
headers['Referer'] = 'https://tv.miguvideo.com/'
headers['x-migutv-cid'] = cid
headers['x-migutv-logintime'] = timestamp
headers['x-migutv-token'] = token
resp = requests.get('https://tv.miguvideo.com/apph/newrlive/rlive/getUrl_h', params=params, headers=headers).json()
print(json.dumps(resp, indent=2, ensure_ascii=False))
if __name__ == '__main__':
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment