[threeqsdn] Extract subtitles from streaming manifests

This commit is contained in:
Felix S 2021-04-19 21:42:51 +02:00
parent e0e624ca7f
commit e8f834cd8d

View file

@ -99,16 +99,21 @@ def _real_extract(self, url):
aspect = float_or_none(config.get('aspect')) aspect = float_or_none(config.get('aspect'))
formats = [] formats = []
subtitles = {}
for source_type, source in (config.get('sources') or {}).items(): for source_type, source in (config.get('sources') or {}).items():
if not source: if not source:
continue continue
if source_type == 'dash': if source_type == 'dash':
formats.extend(self._extract_mpd_formats( fmts, subs = self._extract_mpd_formats_and_subtitles(
source, video_id, mpd_id='mpd', fatal=False)) source, video_id, mpd_id='mpd', fatal=False)
formats.extend(fmts)
subtitles = self._merge_subtitles(subtitles, subs)
elif source_type == 'hls': elif source_type == 'hls':
formats.extend(self._extract_m3u8_formats( fmts, subs = self._extract_m3u8_formats_and_subtitles(
source, video_id, 'mp4', 'm3u8' if live else 'm3u8_native', source, video_id, 'mp4', 'm3u8' if live else 'm3u8_native',
m3u8_id='hls', fatal=False)) m3u8_id='hls', fatal=False)
formats.extend(fmts)
subtitles = self._merge_subtitles(subtitles, subs)
elif source_type == 'progressive': elif source_type == 'progressive':
for s in source: for s in source:
src = s.get('src') src = s.get('src')
@ -138,7 +143,6 @@ def _real_extract(self, url):
# behaviour is being kept as-is # behaviour is being kept as-is
self._sort_formats(formats, ('res', 'source_preference')) self._sort_formats(formats, ('res', 'source_preference'))
subtitles = {}
for subtitle in (config.get('subtitles') or []): for subtitle in (config.get('subtitles') or []):
src = subtitle.get('src') src = subtitle.get('src')
if not src: if not src: