]>
 
 
Raphaël G. Git Repositories - youtubedl/blob - youtube_dl/extractor/motorsport.py 
 
 
 
 
 
 
 
 
   2  from  __future__ 
import  unicode_literals
 
   9  from  . common 
import  InfoExtractor
 
  17  class  MotorsportIE ( InfoExtractor
):  
  18      IE_DESC 
=  'motorsport.com'  
  19      _VALID_URL 
=  r
'http://www\.motorsport\.com/[^/?#]+/video/(?:[^/?#]+/)(?P<id>[^/]+)/(?:$|[?#])'  
  21          'url' :  'http://www.motorsport.com/f1/video/main-gallery/red-bull-racing-2014-rules-explained/' ,  
  22          'md5' :  '5592cb7c5005d9b2c163df5ac3dc04e4' ,  
  26              'title' :  'Red Bull Racing: 2014 Rules Explained' ,  
  28              'description' :  'A new clip from Red Bull sees Daniel Ricciardo and Sebastian Vettel explain the 2014 Formula One regulations – which are arguably the most complex the sport has ever seen.' ,  
  29              'uploader' :  'rainiere' ,  
  30              'thumbnail' :  r
're:^http://.*motorsport\.com/.+\.jpg$'  
  34      def  _real_extract ( self
,  url
):  
  35          mobj 
=  re
. match ( self
._ VALID
_U RL
,  url
)  
  36          display_id 
=  mobj
. group ( 'id' )  
  38          webpage 
=  self
._ download
_ webpage
( url
,  display_id
)  
  39          flashvars_code 
=  self
._ html
_ search
_ regex
(  
  40              r
'<embed id="player".*?flashvars="([^"]+)"' ,  webpage
,  'flashvars' )  
  41          flashvars 
=  compat_parse_qs ( flashvars_code
)  
  42          params 
=  json
. loads ( flashvars
[ 'parameters' ][ 0 ])  
  44          e 
=  compat_str ( int ( time
. time ()) +  24  *  60  *  60 )  
  45          base_video_url 
=  params
[ 'location' ] +  '?e='  +  e
 
  47          h 
=  hashlib
. md5 (( s 
+  base_video_url
). encode ( 'utf-8' )). hexdigest ()  
  48          video_url 
=  base_video_url 
+  '&h='  +  h
 
  50          uploader 
=  self
._ html
_ search
_ regex
(  
  51              r
'(?s)<span class="label">Video by: </span>(.*?)</a>' ,  webpage
,  
  52              'uploader' ,  fatal
= False )  
  55              'id' :  params
[ 'video_id' ],  
  56              'display_id' :  display_id
,  
  57              'title' :  params
[ 'title' ],  
  59              'description' :  params
. get ( 'description' ),  
  60              'thumbnail' :  params
. get ( 'main_thumb' ),  
  61              'duration' :  int_or_none ( params
. get ( 'duration' )),