real-url
real-url copied to clipboard
B站直播获取的链接无法播放了

好像dl-开头的链接可以播放,cn-开头的播放不了了,等大神来修复一下吧
这个目前可以获得能用的链接,我忘了是从哪位大佬的代码修改的了,对大佬说声抱歉,感谢大佬的贡献!
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# 获取哔哩哔哩直播的真实流媒体地址,默认获取直播间提供的最高画质
# qn=150高清
# qn=250超清
# qn=400蓝光
# qn=10000原画
# 另一个直链api
# http://api.live.bilibili.com/room/v1/Room/playUrl?cid=23585383&qn=400&platform=web
import re
import requests
class BiliBili:
def __init__(self, rid):
self.rid = rid
def get_real_url(self):
# 先获取直播状态和真实房间号
r_url = 'https://api.live.bilibili.com/room/v1/Room/room_init?id={}'.format(self.rid)
with requests.Session() as s:
res = s.get(r_url).json()
code = res['code']
if code == 0:
live_status = res['data']['live_status']
if live_status == 1:
room_id = res['data']['room_id']
def u():
f_url = 'https://api.live.bilibili.com/xlive/web-room/v1/playUrl/playUrl'
params = {
'cid': room_id,
'platform': 'mb',
'otype': 'json',
'qn': 10000
}
resp = s.get(f_url, params=params).json()
try:
durl = resp['data']['durl']
real_url = durl[0]['url']
# real_url = re.sub(r'live_(\d+)_(\d+)_\d+.m3u8', r'live_\1_\2.m3u8', real_url)
return real_url
except KeyError or IndexError:
raise Exception('获取失败')
return u()
else:
raise Exception('未开播')
else:
raise Exception('房间不存在')
def get_real_url(rid):
try:
bilibili = BiliBili(rid)
return bilibili.get_real_url()
except Exception as e:
print('Exception:', e)
return False
if __name__ == '__main__':
r = input('请输入bilibili直播房间号:\n')
print(get_real_url(r))
这个目前可以获得能用的链接,我忘了是从哪位大佬的代码修改的了,对大佬说声抱歉,感谢大佬的贡献!
#!/usr/bin/env python # -*- coding:utf-8 -*- # 获取哔哩哔哩直播的真实流媒体地址,默认获取直播间提供的最高画质 # qn=150高清 # qn=250超清 # qn=400蓝光 # qn=10000原画 # 另一个直链api # http://api.live.bilibili.com/room/v1/Room/playUrl?cid=23585383&qn=400&platform=web import re import requests class BiliBili: def __init__(self, rid): self.rid = rid def get_real_url(self): # 先获取直播状态和真实房间号 r_url = 'https://api.live.bilibili.com/room/v1/Room/room_init?id={}'.format(self.rid) with requests.Session() as s: res = s.get(r_url).json() code = res['code'] if code == 0: live_status = res['data']['live_status'] if live_status == 1: room_id = res['data']['room_id'] def u(): f_url = 'https://api.live.bilibili.com/xlive/web-room/v1/playUrl/playUrl' params = { 'cid': room_id, 'platform': 'mb', 'otype': 'json', 'qn': 10000 } resp = s.get(f_url, params=params).json() try: durl = resp['data']['durl'] real_url = durl[0]['url'] # real_url = re.sub(r'live_(\d+)_(\d+)_\d+.m3u8', r'live_\1_\2.m3u8', real_url) return real_url except KeyError or IndexError: raise Exception('获取失败') return u() else: raise Exception('未开播') else: raise Exception('房间不存在') def get_real_url(rid): try: bilibili = BiliBili(rid) return bilibili.get_real_url() except Exception as e: print('Exception:', e) return False if __name__ == '__main__': r = input('请输入bilibili直播房间号:\n') print(get_real_url(r))
谢谢,真的能用
这个目前可以获得能用的链接,我忘了是从哪位大佬的代码修改的了,对大佬说声抱歉,感谢大佬的贡献!
#!/usr/bin/env python # -*- coding:utf-8 -*- # 获取哔哩哔哩直播的真实流媒体地址,默认获取直播间提供的最高画质 # qn=150高清 # qn=250超清 # qn=400蓝光 # qn=10000原画 # 另一个直链api # http://api.live.bilibili.com/room/v1/Room/playUrl?cid=23585383&qn=400&platform=web import re import requests class BiliBili: def __init__(self, rid): self.rid = rid def get_real_url(self): # 先获取直播状态和真实房间号 r_url = 'https://api.live.bilibili.com/room/v1/Room/room_init?id={}'.format(self.rid) with requests.Session() as s: res = s.get(r_url).json() code = res['code'] if code == 0: live_status = res['data']['live_status'] if live_status == 1: room_id = res['data']['room_id'] def u(): f_url = 'https://api.live.bilibili.com/xlive/web-room/v1/playUrl/playUrl' params = { 'cid': room_id, 'platform': 'mb', 'otype': 'json', 'qn': 10000 } resp = s.get(f_url, params=params).json() try: durl = resp['data']['durl'] real_url = durl[0]['url'] # real_url = re.sub(r'live_(\d+)_(\d+)_\d+.m3u8', r'live_\1_\2.m3u8', real_url) return real_url except KeyError or IndexError: raise Exception('获取失败') return u() else: raise Exception('未开播') else: raise Exception('房间不存在') def get_real_url(rid): try: bilibili = BiliBili(rid) return bilibili.get_real_url() except Exception as e: print('Exception:', e) return False if __name__ == '__main__': r = input('请输入bilibili直播房间号:\n') print(get_real_url(r))
厉害啊
目前可以用的这个链接,我是从哪位大佬的代码修改的,对大佬说一声,谢谢大佬的贡献!
#!/usr/bin/env python # -*- coding:utf-8 -*- # 获取哔哩哔哩直播的真实流媒体地址,默认获取直播间提供的最高画质 # qn=150高清 # qn=250超清 # qn=400蓝光 # qn=10000原画 # 另一个直链api # http://api.live.bilibili.com/room/v1/Room/playUrl?cid=23585383&qn=400&platform=web import re import requests class BiliBili: def __init__(self, rid): self.rid = rid def get_real_url(self): # 先获取直播状态和真实房间号 r_url = 'https://api.live.bilibili.com/room/v1/Room/room_init?id={}'.format(self.rid) with requests.Session() as s: res = s.get(r_url).json() code = res['code'] if code == 0: live_status = res['data']['live_status'] if live_status == 1: room_id = res['data']['room_id'] def u(): f_url = 'https://api.live.bilibili.com/xlive/web-room/v1/playUrl/playUrl' params = { 'cid': room_id, 'platform': 'mb', 'otype': 'json', 'qn': 10000 } resp = s.get(f_url, params=params).json() try: durl = resp['data']['durl'] real_url = durl[0]['url'] # real_url = re.sub(r'live_(\d+)_(\d+)_\d+.m3u8', r'live_\1_\2.m3u8', real_url) return real_url except KeyError or IndexError: raise Exception('获取失败') return u() else: raise Exception('未开播') else: raise Exception('房间不存在') def get_real_url(rid): try: bilibili = BiliBili(rid) return bilibili.get_real_url() except Exception as e: print('Exception:', e) return False if __name__ == '__main__': r = input('请输入bilibili直播房间号:\n') print(get_real_url(r))
你好 我这边没办法使用诶 可以具体说一下吗
目前可以用的这个链接,我是从哪位大佬的代码修改的,对大佬说一声,谢谢大佬的贡献!
#!/usr/bin/env python # -*- coding:utf-8 -*- # 获取哔哩哔哩直播的真实流媒体地址,默认获取直播间提供的最高画质 # qn=150高清 # qn=250超清 # qn=400蓝光 # qn=10000原画 # 另一个直链api # http://api.live.bilibili.com/room/v1/Room/playUrl?cid=23585383&qn=400&platform=web import re import requests class BiliBili: def __init__(self, rid): self.rid = rid def get_real_url(self): # 先获取直播状态和真实房间号 r_url = 'https://api.live.bilibili.com/room/v1/Room/room_init?id={}'.format(self.rid) with requests.Session() as s: res = s.get(r_url).json() code = res['code'] if code == 0: live_status = res['data']['live_status'] if live_status == 1: room_id = res['data']['room_id'] def u(): f_url = 'https://api.live.bilibili.com/xlive/web-room/v1/playUrl/playUrl' params = { 'cid': room_id, 'platform': 'mb', 'otype': 'json', 'qn': 10000 } resp = s.get(f_url, params=params).json() try: durl = resp['data']['durl'] real_url = durl[0]['url'] # real_url = re.sub(r'live_(\d+)_(\d+)_\d+.m3u8', r'live_\1_\2.m3u8', real_url) return real_url except KeyError or IndexError: raise Exception('获取失败') return u() else: raise Exception('未开播') else: raise Exception('房间不存在') def get_real_url(rid): try: bilibili = BiliBili(rid) return bilibili.get_real_url() except Exception as e: print('Exception:', e) return False if __name__ == '__main__': r = input('请输入bilibili直播房间号:\n') print(get_real_url(r))你好 我这边没办法使用诶 可以具体说一下吗
你好,你是指这个代码获取不到直链还是指获取到的直链不能用?
我这边显示的是 Exception: HTTPSConnectionPool(host='api.live.bilibili.com', port=443): Max retries exceeded with url: /room/v1/Room/room_init?id=33 (Caused by SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:777)'),)) False 我不知道怎样处理
这个目前可以获得能用的链接,我忘了是从哪位大佬的代码修改的了,对大佬说声抱歉,感谢大佬的贡献!
#!/usr/bin/env python # -*- coding:utf-8 -*- # 获取哔哩哔哩直播的真实流媒体地址,默认获取直播间提供的最高画质 # qn=150高清 # qn=250超清 # qn=400蓝光 # qn=10000原画 # 另一个直链api # http://api.live.bilibili.com/room/v1/Room/playUrl?cid=23585383&qn=400&platform=web import re import requests class BiliBili: def __init__(self, rid): self.rid = rid def get_real_url(self): # 先获取直播状态和真实房间号 r_url = 'https://api.live.bilibili.com/room/v1/Room/room_init?id={}'.format(self.rid) with requests.Session() as s: res = s.get(r_url).json() code = res['code'] if code == 0: live_status = res['data']['live_status'] if live_status == 1: room_id = res['data']['room_id'] def u(): f_url = 'https://api.live.bilibili.com/xlive/web-room/v1/playUrl/playUrl' params = { 'cid': room_id, 'platform': 'mb', 'otype': 'json', 'qn': 10000 } resp = s.get(f_url, params=params).json() try: durl = resp['data']['durl'] real_url = durl[0]['url'] # real_url = re.sub(r'live_(\d+)_(\d+)_\d+.m3u8', r'live_\1_\2.m3u8', real_url) return real_url except KeyError or IndexError: raise Exception('获取失败') return u() else: raise Exception('未开播') else: raise Exception('房间不存在') def get_real_url(rid): try: bilibili = BiliBili(rid) return bilibili.get_real_url() except Exception as e: print('Exception:', e) return False if __name__ == '__main__': r = input('请输入bilibili直播房间号:\n') print(get_real_url(r))
这就是realurl吧,和20年的版本代码差不多
我这边显示的是 Exception: HTTPSConnectionPool(host='api.live.bilibili.com', port=443): Max retries exceeded with url: /room/v1/Room/room_init?id=33 (Caused by SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:777)'),)) False 我不知道怎样处理
参考这个改一下试试,如果还是不行我也不知道怎么解决了
https://blog.csdn.net/y_f_raquelle/article/details/84135535
master分钟中b站直播获取的链接是m3u8格式,而这段脚本输出的是flv格式,请问是否有办法获得能用的m3u8格式?
master分钟中b站直播获取的链接是m3u8格式,而这段脚本输出的是flv格式,请问是否有办法获得能用的m3u8格式?
m3u8格式比flv有什么优点吗?
master分钟中b站直播获取的链接是m3u8格式,而这段脚本输出的是flv格式,请问是否有办法获得能用的m3u8格式?
m3u8格式比flv有什么优点吗?
我目前在Unity中使用AVPro Video这一插件来播放视频流,但该插件只支持m3u8格式。
我这边显示的是 Exception: HTTPSConnectionPool(host='api.live.bilibili.com', port=443): Max retries exceeded with url: /room/v1/Room/room_init?id=33 (Caused by SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:777)'),)) False 我不知道怎样处理
如果有挂代理的话,退出代理软件就正常了