[dvtv] Parse adaptive formats as well

The old code hit an error when it attempted to parse the string
"adaptive" for video height. Actually parsing the returned playlists is
a good idea because it adds more output formats, including some
audio-only-ones.
This commit is contained in:
Jan Kundrát 2017-05-12 17:16:50 +02:00 committed by Sergey M․
parent 6bceb36b99
commit 765522345f
No known key found for this signature in database
GPG key ID: 2C393E0F18A9236D

View file

@ -71,6 +71,14 @@ class DVTVIE(InfoExtractor):
}, { }, {
'url': 'http://video.aktualne.cz/v-cechach-poprve-zazni-zelenkova-zrestaurovana-mse/r~45b4b00483ec11e4883b002590604f2e/', 'url': 'http://video.aktualne.cz/v-cechach-poprve-zazni-zelenkova-zrestaurovana-mse/r~45b4b00483ec11e4883b002590604f2e/',
'only_matching': True, 'only_matching': True,
}, {
'url': 'https://video.aktualne.cz/dvtv/zeman-si-jen-leci-mindraky-sobotku-nenavidi-a-babis-se-mu-te/r~960cdb3a365a11e7a83b0025900fea04/',
'md5': 'f8efe9656017da948369aa099788c8ea',
'info_dict': {
'id': '3c496fec365911e7a6500025900fea04',
'ext': 'm3u8',
'title': 'Zeman si jen léčí mindráky, Sobotku nenávidí a Babiš se mu teď hodí, tvrdí Kmenta',
}
}] }]
def _parse_video_metadata(self, js, video_id): def _parse_video_metadata(self, js, video_id):
@ -79,13 +87,22 @@ def _parse_video_metadata(self, js, video_id):
formats = [] formats = []
for video in metadata['sources']: for video in metadata['sources']:
ext = video['type'][6:] ext = video['type'][6:]
formats.append({ if video['label'] != 'adaptive':
'url': video['file'], formats.append({
'ext': ext, 'url': video['file'],
'format_id': '%s-%s' % (ext, video['label']), 'ext': ext,
'height': int(video['label'].rstrip('p')), 'format_id': '%s-%s' % (ext, video['label']),
'fps': 25, 'height': int(video['label'].rstrip('p')),
}) 'fps': 25,
})
elif video['type'] == 'application/dash+xml':
formats.extend(self._extract_mpd_formats(video['file'],
video_id,
fatal=False))
elif video['type'] == 'application/vnd.apple.mpegurl':
formats.extend(self._extract_m3u8_formats(video['file'],
video_id,
fatal=False))
self._sort_formats(formats) self._sort_formats(formats)