From c20e25b22f2cb540d60c801cabc1c7232fdc42e5 Mon Sep 17 00:00:00 2001 From: wbt5 Date: Sat, 9 Nov 2019 14:33:10 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=93=94=E5=93=A9=E5=93=94?= =?UTF-8?q?=E5=93=A9=E7=9B=B4=E6=92=AD=E6=BA=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- get_bilibili_real_url.py | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 get_bilibili_real_url.py diff --git a/get_bilibili_real_url.py b/get_bilibili_real_url.py new file mode 100644 index 0000000..21a6599 --- /dev/null +++ b/get_bilibili_real_url.py @@ -0,0 +1,35 @@ +# 获取哔哩哔哩直播的真实流媒体地址。 +# quality=4默认画质为原画 + + +import requests +import re + + +def get_real_rid(rid): + room_url = 'https://api.live.bilibili.com/room/v1/Room/room_init?id=' + str(rid) + response = requests.get(url=room_url).json() + live_status = response.get('data').get('live_status') + room_id = response.get('data').get('room_id') + return live_status, room_id + + +def get_real_url(rid): + room = get_real_rid(rid) + live_status = room[0] + room_id = room[1] + if live_status: + room_url = 'https://api.live.bilibili.com/room/v1/Room/playUrl?cid=' +str(room_id) + '&platform=h5&otype=json&quality=4' + response = requests.get(url=room_url).json() + result = response.get('data').get('durl')[0].get('url') + pattern = r'.com/live-[\S]*/([\s\S]*.m3u8)' + pattern_result = re.findall(pattern, result, re.I)[0] + real_url = 'https://cn-hbxy-cmcc-live-01.live-play.acgvideo.com/live-bvc/' + pattern_result + else: + real_url = '未开播或直播间不存在' + return real_url + + +rid = input('请输入bilibili房间号:\n') +real_url = get_real_url(rid) +print('该直播间源地址为:\n' + real_url)