From 191b163de89bb18297ee8cc54e61fa1feb78be15 Mon Sep 17 00:00:00 2001 From: wbt5 Date: Tue, 31 Dec 2019 22:40:37 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=BF=AB=E6=89=8B=E7=9B=B4?= =?UTF-8?q?=E6=92=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 ++ kuaishou.py | 28 +++++++++++++++------------- 2 files changed, 17 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 3c67412..8a6b6c3 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,8 @@ 目前有16个直播平台:斗鱼直播、虎牙直播、哔哩哔哩直播、战旗直播、网易CC直播、火猫直播、企鹅电竞、YY直播、一直播、快手直播、花椒直播、映客直播、西瓜直播、触手直播、NOW直播、收米直播。 +> 2019.12.31:修复快手直播。 + > 2019.12.07:修复哔哩哔哩直播。 > 2019.12.04:更新斗鱼直播,新增一种获取方式。 diff --git a/kuaishou.py b/kuaishou.py index c16ac50..8228662 100644 --- a/kuaishou.py +++ b/kuaishou.py @@ -1,26 +1,28 @@ -# 获取快手直播的真实流媒体地址。 -# 输出是最高画质 +# 获取快手直播的真实流媒体地址,默认输出最高画质 +# 2019年12月31日更新,headers中需要添加cookie,失效更换 import requests +import json import re -def get_real_url(url): +def get_real_url(rid): try: - room_url = 'https://m.gifshow.com/fw/live/' + \ - re.findall(r'[u|live|profile]/([\w-]*)[\s\S]*?', url)[0] + url = 'https://live.kuaishou.com/u/' + str(rid) headers = { - 'user-agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1'} - response = requests.get(url=room_url, headers=headers).text - m3u8_url = re.findall( - r'type="video/mp4" src="([\s\S]*?.m3u8)', response)[0] - real_url = re.sub(r'_sd1000', '', m3u8_url) + 'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36', + 'cookie': 'did=web_8ad78a7e9b64441293b9f53788a41109' + } + response = requests.get(url, headers=headers).text + pattern = r'{"liveStream":{"type":"json","json":{"liveStreamId":.*"playUrls":(.*),"coverUrl":' + real_url = json.loads(re.findall(pattern, response)[0])[0] except: - real_url = '直播间不存在或未开播' + real_url = '该直播间不存在或未开播' return real_url -rid = input('请输入快手直播间地址:\n') +rid = input('请输入快手直播间ID:\n') real_url = get_real_url(rid) -print('该直播源地址为:\n' + real_url) +print('该直播源地址为:') +print(real_url)