[vlive] fix: missing expected types for try_get

This commit is contained in:
exwm 2020-11-03 21:05:19 -05:00
parent be5d6c213c
commit c434e9f504

View File

@ -119,13 +119,14 @@ def _real_extract(self, url):
PARAMS_RE, webpage, PARAMS_FIELD, default='', flags=re.DOTALL) PARAMS_RE, webpage, PARAMS_FIELD, default='', flags=re.DOTALL)
params = self._parse_json(params, working_id, fatal=False) params = self._parse_json(params, working_id, fatal=False)
video_params = try_get(params, lambda x: x["postDetail"]["post"]["officialVideo"]) video_params = try_get(params, lambda x: x["postDetail"]["post"]["officialVideo"], dict)
if video_params is None: if video_params is None:
error_data = try_get(params, lambda x: x["postDetail"]["error"]["data"]) error_data = try_get(params, lambda x: x["postDetail"]["error"]["data"], dict)
product_type = try_get(error_data, product_type = try_get(error_data,
[lambda x: x["officialVideo"]["productType"], [lambda x: x["officialVideo"]["productType"],
lambda x: x["board"]["boardType"]]) lambda x: x["board"]["boardType"]],
compat_str)
if product_type in ('VLIVE_PLUS', 'VLIVE+'): if product_type in ('VLIVE_PLUS', 'VLIVE+'):
self.raise_login_required('This video is only available for VLIVE+ subscribers') self.raise_login_required('This video is only available for VLIVE+ subscribers')
elif 'post' in url: elif 'post' in url:
@ -173,7 +174,7 @@ def _live(self, video_id, webpage, params):
play_info = self._download_json(LIVE_INFO_ENDPOINT, video_id, play_info = self._download_json(LIVE_INFO_ENDPOINT, video_id,
headers={"referer": "https://www.vlive.tv"}) headers={"referer": "https://www.vlive.tv"})
streams = try_get(play_info, lambda x: x["result"]["streamList"]) or [] streams = try_get(play_info, lambda x: x["result"]["streamList"], list) or []
formats = [] formats = []
for stream in streams: for stream in streams: