1
0
mirror of https://github.com/wbt5/real-url.git synced 2025-07-31 13:44:48 +08:00

优化YY直播

This commit is contained in:
wbt5 2020-07-31 19:35:27 +08:00
parent 73611d4d43
commit 63c21e9e3f

45
yy.py
View File

@ -1,28 +1,35 @@
# 获取YY直播的真实流媒体地址。 # 获取YY直播的真实流媒体地址。https://www.yy.com/1349606469
# 默认画质为高清1280*720 # 默认获取最高画质
import requests import requests
import re import re
import json import json
def get_real_url(rid): def yy(rid):
room_url = 'http://interface.yy.com/hls/new/get/{rid}/{rid}/1200?source=wapyy&callback=jsonp3'.format(rid=rid)
headers = { headers = {
'referer': 'http://wap.yy.com/mobileweb/{rid}'.format(rid=rid), 'referer': 'http://wap.yy.com/mobileweb/{rid}'.format(rid=rid),
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36' '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'
try: }
response = requests.get(url=room_url, headers=headers).text room_url = 'http://interface.yy.com/hls/new/get/{rid}/{rid}/1200?source=wapyy&callback='.format(rid=rid)
json_data = json.loads(re.findall(r'\(([\W\w]*)\)', response)[0]) with requests.Session() as s:
real_url = json_data.get('hls', 0) res = s.get(room_url, headers=headers)
if not real_url:real_url='未开播或直播间不存在' if res.status_code == 200:
except: data = json.loads(res.text[1:-1])
real_url = '请求错误或直播间不存在' if data.get('hls', 0):
return real_url xa = data['audio']
xv = data['video']
xv = re.sub(r'0_\d+_0', '0_0_0', xv)
url = 'https://interface.yy.com/hls/get/stream/15013/{}/15013/{}?source=h5player&type=m3u8'.format(xv, xa)
res = s.get(url).json()
real_url = res['hls']
return real_url
else:
raise Exception('未开播')
else:
raise Exception('直播间不存在')
rid = input('请输入YY直播房间号\n') if __name__ == '__main__':
real_url = get_real_url(rid) r = input('输入YY直播房间号\n')
print('该直播间源地址为:\n' + real_url) print(yy(r))