diff options
author | Felix S <felix.von.s@posteo.de> | 2021-04-19 21:42:51 +0200 |
---|---|---|
committer | Felix S <felix.von.s@posteo.de> | 2021-04-28 17:24:50 +0530 |
commit | e8f834cd8dfc07011d1080321e42bc130e7201bb (patch) | |
tree | d8cc83c76b6ccb8e5de50b4031e6779f82c2233a | |
parent | e0e624ca7f72b5191a3e3b1d96cc6a7db3676143 (diff) | |
download | hypervideo-pre-e8f834cd8dfc07011d1080321e42bc130e7201bb.tar.lz hypervideo-pre-e8f834cd8dfc07011d1080321e42bc130e7201bb.tar.xz hypervideo-pre-e8f834cd8dfc07011d1080321e42bc130e7201bb.zip |
[threeqsdn] Extract subtitles from streaming manifests
-rw-r--r-- | yt_dlp/extractor/threeqsdn.py | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/yt_dlp/extractor/threeqsdn.py b/yt_dlp/extractor/threeqsdn.py index 5eaa991eb..bb7610352 100644 --- a/yt_dlp/extractor/threeqsdn.py +++ b/yt_dlp/extractor/threeqsdn.py @@ -99,16 +99,21 @@ class ThreeQSDNIE(InfoExtractor): aspect = float_or_none(config.get('aspect')) formats = [] + subtitles = {} for source_type, source in (config.get('sources') or {}).items(): if not source: continue if source_type == 'dash': - formats.extend(self._extract_mpd_formats( - source, video_id, mpd_id='mpd', fatal=False)) + fmts, subs = self._extract_mpd_formats_and_subtitles( + source, video_id, mpd_id='mpd', fatal=False) + formats.extend(fmts) + subtitles = self._merge_subtitles(subtitles, subs) 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', - m3u8_id='hls', fatal=False)) + m3u8_id='hls', fatal=False) + formats.extend(fmts) + subtitles = self._merge_subtitles(subtitles, subs) elif source_type == 'progressive': for s in source: src = s.get('src') @@ -138,7 +143,6 @@ class ThreeQSDNIE(InfoExtractor): # behaviour is being kept as-is self._sort_formats(formats, ('res', 'source_preference')) - subtitles = {} for subtitle in (config.get('subtitles') or []): src = subtitle.get('src') if not src: |