]>
Raphaƫl G. Git Repositories - youtubedl/blob - youtube_dl/extractor/vevo.py
14abd58e8384ea4c99c75e571279d790cdf36707
   4 from .common 
import InfoExtractor
 
   9 class VevoIE(InfoExtractor
): 
  11     Accepts urls from vevo.com or in the format 'vevo:{id}' 
  12     (currently used by MTVIE) 
  14     _VALID_URL 
= r
'((http://www.vevo.com/watch/.*?/.*?/)|(vevo:))(?P<id>.*)$' 
  16         u
'url': u
'http://www.vevo.com/watch/hurts/somebody-to-die-for/GB1101300280', 
  17         u
'file': u
'GB1101300280.mp4', 
  18         u
'md5': u
'06bea460acb744eab74a9d7dcb4bfd61', 
  20             u
"upload_date": u
"20130624",  
  21             u
"uploader": u
"Hurts",  
  22             u
"title": u
"Somebody to Die For" 
  26     def _real_extract(self
, url
): 
  27         mobj 
= re
.match(self
._VALID
_URL
, url
) 
  28         video_id 
= mobj
.group('id') 
  30         json_url 
= 'http://www.vevo.com/data/video/%s' % video_id
 
  31         base_url 
= 'http://smil.lvl3.vevo.com' 
  32         videos_url 
= '%s/Video/V2/VFILE/%s/%sr.smil' % (base_url
, video_id
, video_id
.lower()) 
  33         info_json 
= self
._download
_webpage
(json_url
, video_id
, u
'Downloading json info') 
  34         links_webpage 
= self
._download
_webpage
(videos_url
, video_id
, u
'Downloading videos urls') 
  36         self
.report_extraction(video_id
) 
  37         video_info 
= json
.loads(info_json
) 
  38         m_urls 
= list(re
.finditer(r
'<video src="(?P<ext>.*?):/?(?P<url>.*?)"', links_webpage
)) 
  39         if m_urls 
is None or len(m_urls
) == 0: 
  40             raise ExtractorError(u
'Unable to extract video url') 
  41         # They are sorted from worst to best quality 
  43         video_url 
= base_url 
+ '/' + m_url
.group('url') 
  44         ext 
= m_url
.group('ext') 
  46         return {'url': video_url
, 
  49                 'title': video_info
['title'], 
  50                 'thumbnail': video_info
['img'], 
  51                 'upload_date': video_info
['launchDate'].replace('/',''), 
  52                 'uploader': video_info
['Artists'][0]['title'],