]>
Raphaƫl G. Git Repositories - youtubedl/blob - youtube_dl/extractor/springboardplatform.py
   2 from __future__ 
import unicode_literals
 
   6 from .common 
import InfoExtractor
 
  18 class SpringboardPlatformIE(InfoExtractor
): 
  21                         cms\.springboardplatform\.com/ 
  23                             (?:previews|embed_iframe)/(?P<index>\d+)/video/(?P<id>\d+)| 
  24                             xml_feeds_advanced/index/(?P<index_2>\d+)/rss3/(?P<id_2>\d+) 
  28         'url': 'http://cms.springboardplatform.com/previews/159/video/981017/0/0/1', 
  29         'md5': '5c3cb7b5c55740d482561099e920f192', 
  33             'title': 'Redman "BUD like YOU" "Usher Good Kisser" REMIX', 
  34             'description': 'Redman "BUD like YOU" "Usher Good Kisser" REMIX', 
  35             'thumbnail': r
're:^https?://.*\.jpg$', 
  36             'timestamp': 1409132328, 
  37             'upload_date': '20140827', 
  41         'url': 'http://cms.springboardplatform.com/embed_iframe/159/video/981017/rab007/rapbasement.com/1/1', 
  42         'only_matching': True, 
  44         'url': 'http://cms.springboardplatform.com/embed_iframe/20/video/1731611/ki055/kidzworld.com/10', 
  45         'only_matching': True, 
  47         'url': 'http://cms.springboardplatform.com/xml_feeds_advanced/index/159/rss3/981017/0/0/1/', 
  48         'only_matching': True, 
  52     def _extract_urls(webpage
): 
  55             for mobj 
in re
.finditer( 
  56                 r
'<iframe\b[^>]+\bsrc=(["\'])(?P
<url
>(?
:https?
:)?
//cms\
.springboardplatform\
.com
/embed_iframe
/\d
+/video
/\d
+.*?
)\
1', 
  59     def _real_extract(self, url): 
  60         mobj = re.match(self._VALID_URL, url) 
  61         video_id = mobj.group('id') or mobj.group('id_2
') 
  62         index = mobj.group('index
') or mobj.group('index_2
') 
  64         video = self._download_xml( 
  65             'http
://cms
.springboardplatform
.com
/xml_feeds_advanced
/index
/%s/rss3
/%s' 
  66             % (index, video_id), video_id) 
  68         item = xpath_element(video, './/item
', 'item
', fatal=True) 
  70         content = xpath_element( 
  71             item, './{http
://search
.yahoo
.com
/mrss
/}content
', 'content
', 
  73         title = unescapeHTML(xpath_text(item, './title
', 'title
', fatal=True)) 
  75         video_url = content.attrib['url
'] 
  77         if 'error_video
.mp4
' in video_url: 
  79                 'Video 
%s no longer exists
' % video_id, expected=True) 
  81         duration = int_or_none(content.get('duration
')) 
  82         tbr = int_or_none(content.get('bitrate
')) 
  83         filesize = int_or_none(content.get('fileSize
')) 
  84         width = int_or_none(content.get('width
')) 
  85         height = int_or_none(content.get('height
')) 
  87         description = unescapeHTML(xpath_text( 
  88             item, './description
', 'description
')) 
  89         thumbnail = xpath_attr( 
  90             item, './{http
://search
.yahoo
.com
/mrss
/}thumbnail
', 'url
', 
  93         timestamp = unified_timestamp(xpath_text( 
  94             item, './{http
://cms
.springboardplatform
.com
/namespaces
.html
}created
', 
 101             'filesize
': filesize, 
 106         m3u8_format = formats[0].copy() 
 108             'url
': re.sub(r'(https?
://)cdn\
.', r'\
1hls
.', video_url) + '.m3u8
', 
 111             'protocol
': 'm3u8_native
', 
 113         formats.append(m3u8_format) 
 115         self._sort_formats(formats) 
 120             'description
': description, 
 121             'thumbnail
': thumbnail, 
 122             'timestamp
': timestamp, 
 123             'duration
': duration,