From 62b805e15cdcfc94229876648befc5a7184b3724 Mon Sep 17 00:00:00 2001 From: wbt5 Date: Sun, 9 Aug 2020 11:06:12 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E8=99=8E=E7=89=99=E7=9B=B4?= =?UTF-8?q?=E6=92=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- huya.py | 39 ++++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/huya.py b/huya.py index 5e4f71b..73c204d 100644 --- a/huya.py +++ b/huya.py @@ -1,7 +1,5 @@ # 获取虎牙直播的真实流媒体地址。 -# 现在虎牙直播链接需要密钥和时间戳了 - - +# 虎牙"一起看"频道的直播间可能会卡顿 import requests import re import base64 @@ -21,31 +19,35 @@ def live(e): u = base64.b64decode(fm).decode('utf-8') p = u.split('_')[0] f = str(int(time.time() * 1e7)) - l = n['wsTime'] + ll = n['wsTime'] t = '0' - h = '_'.join([p, t, s, f, l]) + h = '_'.join([p, t, s, f, ll]) m = hashlib.md5(h.encode('utf-8')).hexdigest() y = c[-1] - url = "{}?wsSecret={}&wsTime={}&u={}&seqid={}&{}".format(i, m, l, t, f, y) + url = "{}?wsSecret={}&wsTime={}&u={}&seqid={}&{}".format(i, m, ll, t, f, y) return url -def get_real_url(room_id): +def huya(room_id): try: room_url = 'https://m.huya.com/' + str(room_id) header = { 'Content-Type': 'application/x-www-form-urlencoded', - 'User-Agent': 'Mozilla/5.0 (Linux; Android 5.0; SM-G900P Build/LRX21T) AppleWebKit/537.36 (KHTML, like Gecko) ' - 'Chrome/75.0.3770.100 Mobile Safari/537.36 ' + 'User-Agent': 'Mozilla/5.0 (Linux; Android 5.0; SM-G900P Build/LRX21T) AppleWebKit/537.36 ' + '(KHTML, like Gecko) Chrome/75.0.3770.100 Mobile Safari/537.36 ' } response = requests.get(url=room_url, headers=header).text - liveLineUrl = re.findall(r'liveLineUrl = "([\s\S]*?)";', response)[0] - if liveLineUrl: - if 'replay' in liveLineUrl: - return '直播录像:https:' + liveLineUrl + livelineurl = re.findall(r'liveLineUrl = "([\s\S]*?)";', response)[0] + if livelineurl: + if 'replay' in livelineurl: + return '直播录像:https:' + livelineurl else: - liveLineUrl = live(liveLineUrl) - real_url = ["https:" + liveLineUrl, "https:" + re.sub(r'_\d{4}.m3u8', '.m3u8', liveLineUrl)] + s_url = live(livelineurl) + b_url = live(livelineurl.replace('_2000', '')) + real_url = { + '2000p': s_url, + 'BD': b_url + } else: real_url = '未开播或直播间不存在' except: @@ -53,7 +55,6 @@ def get_real_url(room_id): return real_url -rid = input('请输入虎牙房间号:\n') -real_url = get_real_url(rid) -print('该直播间源地址为:') -print(real_url) +if __name__ == '__main__': + rid = input('输入虎牙直播间号:\n') + print(huya(rid))