]> Raphaƫl G. Git Repositories - youtubedl/blob - youtube_dl/extractor/nba.py
296d4cd36e9e295ccbb6f88af0c3b73e7a78ce3b
[youtubedl] / youtube_dl / extractor / nba.py
1 import re
2
3 from .common import InfoExtractor
4 from ..utils import (
5 ExtractorError,
6 )
7
8
9 class NBAIE(InfoExtractor):
10 _VALID_URL = r'^(?:https?://)?(?:watch\.|www\.)?nba\.com/(?:nba/)?video(/[^?]*?)(?:/index\.html)?(?:\?.*)?$'
11
12 def _real_extract(self, url):
13 mobj = re.match(self._VALID_URL, url)
14 if mobj is None:
15 raise ExtractorError(u'Invalid URL: %s' % url)
16
17 video_id = mobj.group(1)
18
19 webpage = self._download_webpage(url, video_id)
20
21 video_url = u'http://ht-mobile.cdn.turner.com/nba/big' + video_id + '_nba_1280x720.mp4'
22
23 shortened_video_id = video_id.rpartition('/')[2]
24 title = self._html_search_regex(r'<meta property="og:title" content="(.*?)"',
25 webpage, 'title', default=shortened_video_id).replace('NBA.com: ', '')
26
27 # It isn't there in the HTML it returns to us
28 # uploader_date = self._html_search_regex(r'<b>Date:</b> (.*?)</div>', webpage, 'upload_date', fatal=False)
29
30 description = self._html_search_regex(r'<meta name="description" (?:content|value)="(.*?)" />', webpage, 'description', fatal=False)
31
32 info = {
33 'id': shortened_video_id,
34 'url': video_url,
35 'ext': 'mp4',
36 'title': title,
37 # 'uploader_date': uploader_date,
38 'description': description,
39 }
40 return [info]