|
|
@ -1470,11 +1470,15 @@ class PeerTubeIE(InfoExtractor):
|
|
|
|
|
|
|
|
|
|
|
|
title = video['name']
|
|
|
|
title = video['name']
|
|
|
|
|
|
|
|
|
|
|
|
formats = []
|
|
|
|
formats, is_live = [], False
|
|
|
|
files = video.get('files') or []
|
|
|
|
files = video.get('files') or []
|
|
|
|
for playlist in (video.get('streamingPlaylists') or []):
|
|
|
|
for playlist in (video.get('streamingPlaylists') or []):
|
|
|
|
if not isinstance(playlist, dict):
|
|
|
|
if not isinstance(playlist, dict):
|
|
|
|
continue
|
|
|
|
continue
|
|
|
|
|
|
|
|
if playlist_url := url_or_none(playlist.get('playlistUrl')):
|
|
|
|
|
|
|
|
is_live = True
|
|
|
|
|
|
|
|
formats.extend(self._extract_m3u8_formats(
|
|
|
|
|
|
|
|
playlist_url, video_id, fatal=False, live=True))
|
|
|
|
playlist_files = playlist.get('files')
|
|
|
|
playlist_files = playlist.get('files')
|
|
|
|
if not (playlist_files and isinstance(playlist_files, list)):
|
|
|
|
if not (playlist_files and isinstance(playlist_files, list)):
|
|
|
|
continue
|
|
|
|
continue
|
|
|
@ -1498,6 +1502,7 @@ class PeerTubeIE(InfoExtractor):
|
|
|
|
f['vcodec'] = 'none'
|
|
|
|
f['vcodec'] = 'none'
|
|
|
|
else:
|
|
|
|
else:
|
|
|
|
f['fps'] = int_or_none(file_.get('fps'))
|
|
|
|
f['fps'] = int_or_none(file_.get('fps'))
|
|
|
|
|
|
|
|
is_live = False
|
|
|
|
formats.append(f)
|
|
|
|
formats.append(f)
|
|
|
|
|
|
|
|
|
|
|
|
description = video.get('description')
|
|
|
|
description = video.get('description')
|
|
|
@ -1555,6 +1560,7 @@ class PeerTubeIE(InfoExtractor):
|
|
|
|
'categories': categories,
|
|
|
|
'categories': categories,
|
|
|
|
'formats': formats,
|
|
|
|
'formats': formats,
|
|
|
|
'subtitles': subtitles,
|
|
|
|
'subtitles': subtitles,
|
|
|
|
|
|
|
|
'is_live': is_live,
|
|
|
|
'webpage_url': webpage_url,
|
|
|
|
'webpage_url': webpage_url,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|