|
|
@ -2001,13 +2001,12 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
|
|
|
|
is_live = bool_or_none(video_details.get('isLive'))
|
|
|
|
is_live = bool_or_none(video_details.get('isLive'))
|
|
|
|
|
|
|
|
|
|
|
|
has_live_chat_replay = False
|
|
|
|
has_live_chat_replay = False
|
|
|
|
is_live_content = bool_or_none(video_details.get('isLiveContent'))
|
|
|
|
if not is_live:
|
|
|
|
if not is_live and is_live_content:
|
|
|
|
|
|
|
|
yt_initial_data = self._get_yt_initial_data(video_id, video_webpage)
|
|
|
|
yt_initial_data = self._get_yt_initial_data(video_id, video_webpage)
|
|
|
|
try:
|
|
|
|
try:
|
|
|
|
yt_initial_data['contents']['twoColumnWatchNextResults']['conversationBar']['liveChatRenderer']['continuations'][0]['reloadContinuationData']['continuation']
|
|
|
|
yt_initial_data['contents']['twoColumnWatchNextResults']['conversationBar']['liveChatRenderer']['continuations'][0]['reloadContinuationData']['continuation']
|
|
|
|
has_live_chat_replay = True
|
|
|
|
has_live_chat_replay = True
|
|
|
|
except (KeyError, IndexError):
|
|
|
|
except (KeyError, IndexError, TypeError):
|
|
|
|
pass
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
# Check for "rental" videos
|
|
|
|
# Check for "rental" videos
|
|
|
|