|
@@ -1879,6 +1879,15 @@ class GenericIE(InfoExtractor):
|
|
|
'title': 'Building A Business Online: Principal Chairs Q & A',
|
|
|
},
|
|
|
},
|
|
|
+ {
|
|
|
+ # multiple HTML5 videos on one page
|
|
|
+ 'url': 'https://www.paragon-software.com/home/rk-free/keyscenarios.html',
|
|
|
+ 'info_dict': {
|
|
|
+ 'id': 'keyscenarios',
|
|
|
+ 'title': 'Rescue Kit 14 Free Edition - Getting started',
|
|
|
+ },
|
|
|
+ 'playlist_count': 4,
|
|
|
+ }
|
|
|
# {
|
|
|
# # TODO: find another test
|
|
|
# # http://schema.org/VideoObject
|
|
@@ -2849,13 +2858,20 @@ class GenericIE(InfoExtractor):
|
|
|
# Look for HTML5 media
|
|
|
entries = self._parse_html5_media_entries(url, webpage, video_id, m3u8_id='hls')
|
|
|
if entries:
|
|
|
- for entry in entries:
|
|
|
- entry.update({
|
|
|
+ if len(entries) == 1:
|
|
|
+ entries[0].update({
|
|
|
'id': video_id,
|
|
|
'title': video_title,
|
|
|
})
|
|
|
+ else:
|
|
|
+ for num, entry in enumerate(entries, start=1):
|
|
|
+ entry.update({
|
|
|
+ 'id': '%s-%s' % (video_id, num),
|
|
|
+ 'title': '%s (%d)' % (video_title, num),
|
|
|
+ })
|
|
|
+ for entry in entries:
|
|
|
self._sort_formats(entry['formats'])
|
|
|
- return self.playlist_result(entries)
|
|
|
+ return self.playlist_result(entries, video_id, video_title)
|
|
|
|
|
|
jwplayer_data = self._find_jwplayer_data(
|
|
|
webpage, video_id, transform_source=js_to_json)
|