mirror of
https://github.com/yt-dlp/yt-dlp.git
synced 2024-11-21 20:46:36 -05:00
[threeqsdn] Extract subtitles from streaming manifests
This commit is contained in:
parent
e0e624ca7f
commit
e8f834cd8d
1 changed files with 9 additions and 5 deletions
|
@ -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:
|
||||||
|
|
Loading…
Reference in a new issue