1
0
mirror of https://github.com/wbt5/real-url.git synced 2025-07-27 19:10:32 +08:00

更新哔哩哔哩直播

This commit is contained in:
wbt5 2020-05-25 13:25:17 +08:00
parent cb3fc14883
commit ca70bf46a9
2 changed files with 34 additions and 8 deletions

View File

@ -10,7 +10,7 @@
1. 项目使用了很简单的 Python 代码,仅在 Python 3 环境运行测试。
2. 具体所需模块请查看代码中的 import。
3. 爱奇艺直播里有个参数是加盐的 MD5使用仓库中的 iqiyi.js。
3. 爱奇艺直播里有个参数是加盐的 MD5使用仓库中的 iqiyi.js 获取
## 反馈
@ -18,7 +18,12 @@
## 更新
### 2020.05.23更新17直播、虎牙直播
### 2020.05.25:更新哔哩哔哩直播。
- 默认获取最高画质,不同清晰度取决去请求参数中的 qn。
- 增加 .m3u8 格式播放链接的获取方法。
2020.05.23更新17直播、虎牙直播
2020.05.19更新火猫、快手、酷狗、PPS

View File

@ -1,6 +1,6 @@
# 获取哔哩哔哩直播的真实流媒体地址。
# 现在B站直播默认画质改为高清了更高画质需登陆才可获取
# PC网页和手机APP端的qn=1是最高画质;qn取值0~4
# 手机网页端的只找到一个值qn=0。
import requests
import re
@ -18,13 +18,14 @@ def get_real_rid(rid):
return live_status, room_id
def get_real_url(rid):
def get_real_url_flv(rid):
room = get_real_rid(rid)
live_status = room[0]
room_id = room[1]
qn = 1 # PC网页和手机APP端的qn=1是最高画质;qn取值0~4。
if live_status:
try:
room_url = 'https://api.live.bilibili.com/xlive/web-room/v1/index/getRoomPlayInfo?room_id={}&play_url=1&mask=1&qn=0&platform=web'.format(room_id)
room_url = 'https://api.live.bilibili.com/xlive/web-room/v1/index/getRoomPlayInfo?room_id={}&play_url=1&mask=1&qn={}&platform=web'.format(room_id, qn)
response = requests.get(url=room_url).json()
durl = response.get('data').get('play_url').get('durl', 0)
real_url = durl[-1].get('url')
@ -35,6 +36,26 @@ def get_real_url(rid):
return real_url
def get_real_url_hls(rid):
room = get_real_rid(rid)
live_status = room[0]
room_id = room[1]
qn = 0 # 手机网页端的只找到一个值qn=0。
if live_status:
try:
room_url = 'https://api.live.bilibili.com/xlive/web-room/v1/playUrl/playUrl?cid={}&platform=h5&otype=json&quality={}'.format(room_id, qn)
response = requests.get(url=room_url).json()
durl = response.get('data').get('durl', 0)
real_url = durl[-1].get('url')
except:
real_url = '疑似部分国外IP无法GET到正确数据待验证'
else:
real_url = '未开播或直播间不存在'
return real_url
rid = input('请输入bilibili房间号\n')
real_url = get_real_url(rid)
print('该直播间源地址为:\n' + real_url)
real_url_flv = get_real_url_flv(rid)
# real_url_hls = get_real_url_hls(rid)
print('该直播间源地址为:')
print(real_url_flv)
# print(real_url_hls)