|
@ -10,28 +10,60 @@ from ..utils import ( |
|
|
|
|
|
|
|
|
class NBABaseIE(InfoExtractor): |
|
|
class NBABaseIE(InfoExtractor): |
|
|
def _get_formats(self, video_id): |
|
|
def _get_formats(self, video_id): |
|
|
|
|
|
formats = self._extract_m3u8_formats( |
|
|
|
|
|
'http://nbavod-f.akamaihd.net/i/nba/big%s_,640x360_664m,768x432_996,768x432_1404,960x540_2104,1280x720,.mp4.csmil/master.m3u8' % video_id, |
|
|
|
|
|
video_id, |
|
|
|
|
|
m3u8_id='hls') |
|
|
|
|
|
formats.extend(self._extract_f4m_formats( |
|
|
|
|
|
'http://nbavod-f.akamaihd.net/z/nba/big%s_,640x360_664m,768x432_996,768x432_1404,960x540_2104,1280x720,.mp4.csmil/manifest.f4m?hdcore=3.4.1.1' % video_id, |
|
|
|
|
|
video_id, |
|
|
|
|
|
f4m_id='hds')) |
|
|
base_url = 'http://nba.cdn.turner.com/nba/big%s' % video_id |
|
|
base_url = 'http://nba.cdn.turner.com/nba/big%s' % video_id |
|
|
return [{ |
|
|
|
|
|
|
|
|
formats.extend([{ |
|
|
|
|
|
'url': base_url + '_nba_ipad.mp4', |
|
|
|
|
|
'width': 400, |
|
|
|
|
|
'height': 224, |
|
|
|
|
|
'format_id': '224p', |
|
|
|
|
|
'preference': 1, |
|
|
|
|
|
},{ |
|
|
'url': base_url + '_nba_android_high.mp4', |
|
|
'url': base_url + '_nba_android_high.mp4', |
|
|
'width': 480, |
|
|
'width': 480, |
|
|
'height': 320, |
|
|
'height': 320, |
|
|
'format_id': '320p', |
|
|
'format_id': '320p', |
|
|
|
|
|
'preference': 2, |
|
|
|
|
|
},{ |
|
|
|
|
|
'url': base_url + '_nba_576x324.mp4', |
|
|
|
|
|
'width': 576, |
|
|
|
|
|
'height': 324, |
|
|
|
|
|
'format_id': '324p', |
|
|
|
|
|
'preference': 3, |
|
|
},{ |
|
|
},{ |
|
|
'url': base_url + '_640x360_664b.mp4', |
|
|
'url': base_url + '_640x360_664b.mp4', |
|
|
'width': 640, |
|
|
'width': 640, |
|
|
'height': 360, |
|
|
'height': 360, |
|
|
'format_id': '360p', |
|
|
'format_id': '360p', |
|
|
|
|
|
'preference': 4, |
|
|
},{ |
|
|
},{ |
|
|
'url': base_url + '_768x432_1404.mp4', |
|
|
'url': base_url + '_768x432_1404.mp4', |
|
|
'width': 768, |
|
|
'width': 768, |
|
|
'height': 432, |
|
|
'height': 432, |
|
|
'format_id': '432p', |
|
|
'format_id': '432p', |
|
|
|
|
|
'preference': 5, |
|
|
|
|
|
},{ |
|
|
|
|
|
'url': base_url + '_960x540_2104.mp4', |
|
|
|
|
|
'width': 960, |
|
|
|
|
|
'height': 540, |
|
|
|
|
|
'format_id': '540p', |
|
|
|
|
|
'preference': 6, |
|
|
},{ |
|
|
},{ |
|
|
'url': base_url + '_1280x720.mp4', |
|
|
'url': base_url + '_1280x720.mp4', |
|
|
'width': 1280, |
|
|
'width': 1280, |
|
|
'height': 720, |
|
|
'height': 720, |
|
|
'format_id': '720p', |
|
|
'format_id': '720p', |
|
|
}] |
|
|
|
|
|
|
|
|
'preference': 7, |
|
|
|
|
|
}]) |
|
|
|
|
|
self._sort_formats(formats) |
|
|
|
|
|
return formats |
|
|
|
|
|
|
|
|
def _real_extract(self, url): |
|
|
def _real_extract(self, url): |
|
|
video_id = self._match_id(url) |
|
|
video_id = self._match_id(url) |
|
|