[youtube_live_chat] Improve extraction

:ci skip dl
This commit is contained in:
pukkandan 2021-02-07 15:22:36 +05:30
parent 885d36d4e4
commit 4d608b522f

View file

@ -50,7 +50,16 @@ class YoutubeLiveChatReplayFD(FragmentFD):
success, raw_fragment = dl_fragment(url) success, raw_fragment = dl_fragment(url)
if not success: if not success:
return False, None, None return False, None, None
data = parse_yt_initial_data(raw_fragment) or json.loads(raw_fragment)['response'] data = parse_yt_initial_data(raw_fragment)
if not data:
raw_data = json.loads(raw_fragment)
# sometimes youtube replies with a list
if not isinstance(raw_data, list):
raw_data = [raw_data]
try:
data = next(item['response'] for item in raw_data if 'response' in item)
except StopIteration:
data = {}
live_chat_continuation = try_get( live_chat_continuation = try_get(
data, data,