[nbc] Fix extraction (Closes #4441)

This commit is contained in:
Sergey M․ 2014-12-12 22:10:32 +06:00
parent 7c7a0d395c
commit 58c1f6f0a7
1 changed files with 25 additions and 11 deletions

View File

@ -12,23 +12,37 @@ from ..utils import (
class NBCIE(InfoExtractor): class NBCIE(InfoExtractor):
_VALID_URL = r'http://www\.nbc\.com/[^/]+/video/[^/]+/(?P<id>n?\d+)' _VALID_URL = r'http://www\.nbc\.com/(?:[^/]+/)+(?P<id>n?\d+)'
_TEST = { _TESTS = [
'url': 'http://www.nbc.com/chicago-fire/video/i-am-a-firefighter/2734188', {
# md5 checksum is not stable 'url': 'http://www.nbc.com/chicago-fire/video/i-am-a-firefighter/2734188',
'info_dict': { # md5 checksum is not stable
'id': 'bTmnLCvIbaaH', 'info_dict': {
'ext': 'flv', 'id': 'bTmnLCvIbaaH',
'title': 'I Am a Firefighter', 'ext': 'flv',
'description': 'An emergency puts Dawson\'sf irefighter skills to the ultimate test in this four-part digital series.', 'title': 'I Am a Firefighter',
'description': 'An emergency puts Dawson\'sf irefighter skills to the ultimate test in this four-part digital series.',
},
}, },
} {
'url': 'http://www.nbc.com/the-tonight-show/episodes/176',
'info_dict': {
'id': 'XwU9KZkp98TH',
'ext': 'flv',
'title': 'Ricky Gervais, Steven Van Zandt, ILoveMakonnen',
'description': 'A brand new episode of The Tonight Show welcomes Ricky Gervais, Steven Van Zandt and ILoveMakonnen.',
},
'skip': 'Only works from US',
},
]
def _real_extract(self, url): def _real_extract(self, url):
video_id = self._match_id(url) video_id = self._match_id(url)
webpage = self._download_webpage(url, video_id) webpage = self._download_webpage(url, video_id)
theplatform_url = self._search_regex('class="video-player video-player-full" data-mpx-url="(.*?)"', webpage, 'theplatform url') theplatform_url = self._search_regex(
'(?:class="video-player video-player-full" data-mpx-url|class="player" src)="(.*?)"',
webpage, 'theplatform url').replace('_no_endcard', '')
if theplatform_url.startswith('//'): if theplatform_url.startswith('//'):
theplatform_url = 'http:' + theplatform_url theplatform_url = 'http:' + theplatform_url
return self.url_result(theplatform_url) return self.url_result(theplatform_url)