[dispeak] DRY and update tests (closes #28970)

This commit is contained in:
Sergey M․ 2021-05-05 02:30:42 +07:00
parent b8645c1f58
commit 1786cd3fe4
No known key found for this signature in database
GPG Key ID: 2C393E0F18A9236D
1 changed files with 15 additions and 19 deletions

View File

@ -33,13 +33,17 @@ class DigitallySpeakingIE(InfoExtractor):
'url': 'http://sevt.dispeak.com/ubm/gdc/eur10/xml/11256_1282118587281VNIT.xml', 'url': 'http://sevt.dispeak.com/ubm/gdc/eur10/xml/11256_1282118587281VNIT.xml',
'only_matching': True, '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', 'url': 'https://sevt.dispeak.com/ubm/gdc/online12/xml/201210-822101_1349794556671DDDD.xml',
'info_dict': { 'info_dict': {
'id': '201210-822101_1349794556671DDDD', 'id': '201210-822101_1349794556671DDDD',
'ext': 'flv', 'ext': 'flv',
'title': 'Pre-launch - Preparing to Take the Plunge', '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): def _parse_mp4(self, metadata):
@ -92,27 +96,19 @@ class DigitallySpeakingIE(InfoExtractor):
'vcodec': 'none', 'vcodec': 'none',
'format_id': audio.get('code'), 'format_id': audio.get('code'),
}) })
slide_video_path = xpath_text(metadata, './slideVideo') for video_key, format_id, preference in (
if slide_video_path: ('slide', 'slides', -2), ('speaker', 'speaker', -1)):
video_path = xpath_text(metadata, './%sVideo' % video_key)
if not video_path:
continue
formats.append({ formats.append({
'url': 'rtmp://%s/ondemand?ovpfv=1.1' % akamai_url, 'url': 'rtmp://%s/ondemand?ovpfv=1.1' % akamai_url,
'play_path': remove_end(slide_video_path, '.flv'), 'play_path': remove_end(video_path, '.flv'),
'ext': 'flv', 'ext': 'flv',
'format_note': 'slide deck video', 'format_note': '%s video' % video_key,
'quality': -2, 'quality': preference,
'preference': -2, 'preference': preference,
'format_id': 'slides', 'format_id': format_id,
})
speaker_video_path = xpath_text(metadata, './speakerVideo')
if speaker_video_path:
formats.append({
'url': 'rtmp://%s/ondemand?ovpfv=1.1' % akamai_url,
'play_path': remove_end(speaker_video_path, '.flv'),
'ext': 'flv',
'format_note': 'speaker video',
'quality': -1,
'preference': -1,
'format_id': 'speaker',
}) })
return formats return formats