diff --git a/zhibotv.py b/zhibotv.py new file mode 100644 index 0000000..401f890 --- /dev/null +++ b/zhibotv.py @@ -0,0 +1,54 @@ +# -*- coding: utf-8 -*- +# @Time: 2021/5/13 20:27 +# @Project: real-url +# @Author: wbt5 +# @Blog: https://wbt5.com + +import requests + + +class ZhiBotv: + + def __init__(self, rid): + self.rid = rid + self.params = { + + 'token': '', + 'roomId': self.rid, + 'angleId': '', + 'lineId': '', + 'definition': 'hd', + 'statistics': 'pc|web|1.0.0|0|0|0|local|5.0.1', + + } + + def get_real_url(self): + """ + no streaming 没开播; + non-existent rid 房间号不存在; + :return: url + """ + with requests.Session() as s: + res = s.get('https://rest.zhibo.tv/room/get-pull-stream-info-v430', params=self.params).json() + if 'hlsHUrl' in res['data']: + url = res['data'].get('hlsHUrl') + if url: + return url + else: + raise Exception('no streaming') + else: + raise Exception('non-existent rid') + + +def get_real_url(rid): + try: + zbtv = ZhiBotv(rid) + return zbtv.get_real_url() + except Exception as e: + print('Exception:', e) + return False + + +if __name__ == '__main__': + r = input('请输入中国体育房间号:\n') + print(get_real_url(r))