[pandatv] Update API URL and sign format URLs

This commit is contained in:
hcwhan 2017-11-07 17:59:09 +08:00 committed by Sergey M․
parent cc6a960e13
commit 4222346fb2
No known key found for this signature in database
GPG key ID: 2C393E0F18A9236D

View file

@ -6,6 +6,7 @@
ExtractorError, ExtractorError,
qualities, qualities,
) )
import json
class PandaTVIE(InfoExtractor): class PandaTVIE(InfoExtractor):
@ -33,7 +34,7 @@ def _real_extract(self, url):
video_id = self._match_id(url) video_id = self._match_id(url)
config = self._download_json( config = self._download_json(
'https://www.panda.tv/api_room?roomid=%s' % video_id, video_id) 'https://www.panda.tv/api_room_v2?roomid=%s' % video_id, video_id)
error_code = config.get('errno', 0) error_code = config.get('errno', 0)
if error_code is not 0: if error_code is not 0:
@ -66,6 +67,11 @@ def _real_extract(self, url):
plflag1 = '4' plflag1 = '4'
live_panda = 'live_panda' if plflag0 < 1 else '' live_panda = 'live_panda' if plflag0 < 1 else ''
plflag_auth = json.loads(video_info["plflag_list"])
sign = plflag_auth["auth"]["sign"]
ts = plflag_auth["auth"]["time"]
rid = plflag_auth["auth"]["rid"]
quality_key = qualities(['OD', 'HD', 'SD']) quality_key = qualities(['OD', 'HD', 'SD'])
suffix = ['_small', '_mid', ''] suffix = ['_small', '_mid', '']
formats = [] formats = []
@ -77,8 +83,8 @@ def _real_extract(self, url):
continue continue
for pref, (ext, pl) in enumerate((('m3u8', '-hls'), ('flv', ''))): for pref, (ext, pl) in enumerate((('m3u8', '-hls'), ('flv', ''))):
formats.append({ formats.append({
'url': 'https://pl%s%s.live.panda.tv/live_panda/%s%s%s.%s' 'url': 'https://pl%s%s.live.panda.tv/live_panda/%s%s%s.%s?sign=%s&ts=%s&rid=%s'
% (pl, plflag1, room_key, live_panda, suffix[quality], ext), % (pl, plflag1, room_key, live_panda, suffix[quality], ext, sign, ts, rid),
'format_id': '%s-%s' % (k, ext), 'format_id': '%s-%s' % (k, ext),
'quality': quality, 'quality': quality,
'source_preference': pref, 'source_preference': pref,