summary refs log tree commit diff
diff options
context:
space:
mode:
authorRemita Amine <remitamine@gmail.com>2019-04-13 17:00:24 +0100
committerRemita Amine <remitamine@gmail.com>2019-04-13 17:02:22 +0100
commit180a9dff1f750d2e09cbbf3ec6d349fcb94c3ab3 (patch)
tree957adbe6427130eeb68b664b777b8185773d1b16
parent972d2dd0bc2a3ae0381cca5d58d382eb9511f2d0 (diff)
downloadyoutube-dl-180a9dff1f750d2e09cbbf3ec6d349fcb94c3ab3.tar.gz
youtube-dl-180a9dff1f750d2e09cbbf3ec6d349fcb94c3ab3.tar.xz
youtube-dl-180a9dff1f750d2e09cbbf3ec6d349fcb94c3ab3.zip
[cbs] extract smpte and vtt subtitles
-rw-r--r--youtube_dl/extractor/cbs.py18
1 files changed, 11 insertions, 7 deletions
diff --git a/youtube_dl/extractor/cbs.py b/youtube_dl/extractor/cbs.py
index 1799d63ea..376db7263 100644
--- a/youtube_dl/extractor/cbs.py
+++ b/youtube_dl/extractor/cbs.py
@@ -13,13 +13,17 @@ from ..utils import (
 
 class CBSBaseIE(ThePlatformFeedIE):
     def _parse_smil_subtitles(self, smil, namespace=None, subtitles_lang='en'):
-        closed_caption_e = find_xpath_attr(smil, self._xpath_ns('.//param', namespace), 'name', 'ClosedCaptionURL')
-        return {
-            'en': [{
-                'ext': 'ttml',
-                'url': closed_caption_e.attrib['value'],
-            }]
-        } if closed_caption_e is not None and closed_caption_e.attrib.get('value') else []
+        subtitles = {}
+        for k, ext in [('sMPTE-TTCCURL', 'tt'), ('ClosedCaptionURL', 'ttml'), ('webVTTCaptionURL', 'vtt')]:
+            cc_e = find_xpath_attr(smil, self._xpath_ns('.//param', namespace), 'name', k)
+            if cc_e is not None:
+                cc_url = cc_e.get('value')
+                if cc_url:
+                    subtitles.setdefault(subtitles_lang, []).append({
+                        'ext': ext,
+                        'url': cc_url,
+                    })
+        return subtitles
 
 
 class CBSIE(CBSBaseIE):