|
|
@ -48,6 +48,21 @@ class CrackleIE(InfoExtractor): |
|
|
|
'only_matching': True, |
|
|
|
}] |
|
|
|
|
|
|
|
_MEDIA_FILE_SLOTS = { |
|
|
|
'360p.mp4': { |
|
|
|
'width': 640, |
|
|
|
'height': 360, |
|
|
|
}, |
|
|
|
'480p.mp4': { |
|
|
|
'width': 768, |
|
|
|
'height': 432, |
|
|
|
}, |
|
|
|
'480p_1mbps.mp4': { |
|
|
|
'width': 852, |
|
|
|
'height': 480, |
|
|
|
}, |
|
|
|
} |
|
|
|
|
|
|
|
def _real_extract(self, url): |
|
|
|
video_id = self._match_id(url) |
|
|
|
|
|
|
@ -95,6 +110,20 @@ class CrackleIE(InfoExtractor): |
|
|
|
elif ext == 'mpd': |
|
|
|
formats.extend(self._extract_mpd_formats( |
|
|
|
format_url, video_id, mpd_id='dash', fatal=False)) |
|
|
|
elif format_url.endswith('.ism/Manifest'): |
|
|
|
formats.extend(self._extract_ism_formats( |
|
|
|
format_url, video_id, ism_id='mss', fatal=False)) |
|
|
|
else: |
|
|
|
mfs_path = e.get('Type') |
|
|
|
mfs_info = self._MEDIA_FILE_SLOTS.get(mfs_path) |
|
|
|
if not mfs_info: |
|
|
|
continue |
|
|
|
formats.append({ |
|
|
|
'url': format_url, |
|
|
|
'format_id': 'http-' + mfs_path.split('.')[0], |
|
|
|
'width': mfs_info['width'], |
|
|
|
'height': mfs_info['height'], |
|
|
|
}) |
|
|
|
self._sort_formats(formats) |
|
|
|
|
|
|
|
description = media.get('Description') |
|
|
|