about summary refs log tree commit diff
diff options
context:
space:
mode:
authorSergey M․ <dstftw@gmail.com>2021-05-05 02:30:42 +0700
committerSergey M․ <dstftw@gmail.com>2021-05-05 02:30:42 +0700
commit1786cd3fe4e555b83bdd3eea77ade3477293330d (patch)
tree9eced53f8abd09e0ce93958e76b68eac6e224e5d
parentb8645c1f5885522ec8bb77649f49ce842e947c25 (diff)
downloadyoutube-dl-1786cd3fe4e555b83bdd3eea77ade3477293330d.tar.gz
youtube-dl-1786cd3fe4e555b83bdd3eea77ade3477293330d.tar.xz
youtube-dl-1786cd3fe4e555b83bdd3eea77ade3477293330d.zip
[dispeak] DRY and update tests (closes #28970)
-rw-r--r--youtube_dl/extractor/dispeak.py34
1 files changed, 15 insertions, 19 deletions
diff --git a/youtube_dl/extractor/dispeak.py b/youtube_dl/extractor/dispeak.py
index e776ac00c..276fd4b09 100644
--- a/youtube_dl/extractor/dispeak.py
+++ b/youtube_dl/extractor/dispeak.py
@@ -33,13 +33,17 @@ class DigitallySpeakingIE(InfoExtractor):
         'url': 'http://sevt.dispeak.com/ubm/gdc/eur10/xml/11256_1282118587281VNIT.xml',
         'only_matching': True,
     }, {
-        # From https://gdcvault.com/play/1016624
+        # From https://gdcvault.com/play/1016624, empty speakerVideo
         'url': 'https://sevt.dispeak.com/ubm/gdc/online12/xml/201210-822101_1349794556671DDDD.xml',
         'info_dict': {
             'id': '201210-822101_1349794556671DDDD',
             'ext': 'flv',
             'title': 'Pre-launch - Preparing to Take the Plunge',
         },
+    }, {
+        # From http://www.gdcvault.com/play/1014846/Conference-Keynote-Shigeru, empty slideVideo
+        'url': 'http://events.digitallyspeaking.com/gdc/project25/xml/p25-miyamoto1999_1282467389849HSVB.xml',
+        'only_matching': True,
     }]
 
     def _parse_mp4(self, metadata):
@@ -92,27 +96,19 @@ class DigitallySpeakingIE(InfoExtractor):
                 'vcodec': 'none',
                 'format_id': audio.get('code'),
             })
-        slide_video_path = xpath_text(metadata, './slideVideo')
-        if slide_video_path:
-            formats.append({
-                'url': 'rtmp://%s/ondemand?ovpfv=1.1' % akamai_url,
-                'play_path': remove_end(slide_video_path, '.flv'),
-                'ext': 'flv',
-                'format_note': 'slide deck video',
-                'quality': -2,
-                'preference': -2,
-                'format_id': 'slides',
-            })
-        speaker_video_path = xpath_text(metadata, './speakerVideo')
-        if speaker_video_path:
+        for video_key, format_id, preference in (
+                ('slide', 'slides', -2), ('speaker', 'speaker', -1)):
+            video_path = xpath_text(metadata, './%sVideo' % video_key)
+            if not video_path:
+                continue
             formats.append({
                 'url': 'rtmp://%s/ondemand?ovpfv=1.1' % akamai_url,
-                'play_path': remove_end(speaker_video_path, '.flv'),
+                'play_path': remove_end(video_path, '.flv'),
                 'ext': 'flv',
-                'format_note': 'speaker video',
-                'quality': -1,
-                'preference': -1,
-                'format_id': 'speaker',
+                'format_note': '%s video' % video_key,
+                'quality': preference,
+                'preference': preference,
+                'format_id': format_id,
             })
         return formats