]>
Raphaƫl G. Git Repositories - youtubedl/blob - youtube_dl/extractor/escapist.py 
   4  from  . common 
import  InfoExtractor
  13  class  EscapistIE ( InfoExtractor
):   14      _VALID_URL 
=  r
'^(https?://)?(www\.)?escapistmagazine\.com/videos/view/(?P<showname>[^/]+)/(?P<episode>[^/?]+)[/?]?.*$'   16          u
'url' :  u
'http://www.escapistmagazine.com/videos/view/the-escapist-presents/6618-Breaking-Down-Baldurs-Gate' ,   17          u
'file' :  u
'6618-Breaking-Down-Baldurs-Gate.mp4' ,   18          u
'md5' :  u
'c6793dbda81388f4264c1ba18684a74d' ,   20              u
"description" :  u
"Baldur's Gate: Original, Modded or Enhanced Edition? I'll break down what you can expect from the new Baldur's Gate: Enhanced Edition." ,    21              u
"uploader" :  u
"the-escapist-presents" ,    22              u
"title" :  u
"Breaking Down Baldur's Gate"   26      def  _real_extract ( self
,  url
):   27          mobj 
=  re
. match ( self
._ VALID
_U RL
,  url
)   29              raise  ExtractorError ( u
'Invalid URL:  %s '  %  url
)   30          showName 
=  mobj
. group ( 'showname' )   31          videoId 
=  mobj
. group ( 'episode' )   33          self
. report_extraction ( videoId
)   34          webpage 
=  self
._ download
_ webpage
( url
,  videoId
)   36          videoDesc 
=  self
._ html
_ search
_ regex
( '<meta name="description" content="([^"]*)"' ,   37              webpage
,  u
'description' ,  fatal
= False )   39          imgUrl 
=  self
._ html
_ search
_ regex
( '<meta property="og:image" content="([^"]*)"' ,   40              webpage
,  u
'thumbnail' ,  fatal
= False )   42          playerUrl 
=  self
._ html
_ search
_ regex
( '<meta property="og:video" content="([^"]*)"' ,   43              webpage
,  u
'player url' )   45          title 
=  self
._ html
_ search
_ regex
( '<meta name="title" content="([^"]*)"' ,   46              webpage
,  u
'player url' ). split ( ' : ' )[- 1 ]   48          configUrl 
=  self
._ search
_ regex
( 'config=(.*)$' ,  playerUrl
,  u
'config url' )   49          configUrl 
=  compat_urllib_parse
. unquote ( configUrl
)   51          configJSON 
=  self
._ download
_ webpage
( configUrl
,  videoId
,   52                                              u
'Downloading configuration' ,   53                                              u
'unable to download configuration' )   55          # Technically, it's JavaScript, not JSON   56          configJSON 
=  configJSON
. replace ( "'" ,  '"' )   59              config 
=  json
. loads ( configJSON
)   60          except  ( ValueError ,)  as  err
:   61              raise  ExtractorError ( u
'Invalid JSON in configuration file: '  +  compat_str ( err
))   63          playlist 
=  config
[ 'playlist' ]   64          videoUrl 
=  playlist
[ 1 ][ 'url' ]   74              'description' :  videoDesc
,   75              'player_url' :  playerUrl
,