]>
jfr.im git - yt-dlp.git/blob - youtube_dl/extractor/escapist.py
1 from __future__
import unicode_literals
3 from . common
import InfoExtractor
13 class EscapistIE ( InfoExtractor
):
14 _VALID_URL
= r
'https?://?(www\.)?escapistmagazine\.com/videos/view/[^/?#]+/(?P<id>[0-9]+)-[^/?#]*(?:$|[?#])'
16 'url' : 'http://www.escapistmagazine.com/videos/view/the-escapist-presents/6618-Breaking-Down-Baldurs-Gate' ,
17 'md5' : 'ab3a706c681efca53f0a35f1415cf0d1' ,
21 'description' : "Baldur's Gate: Original, Modded or Enhanced Edition? I'll break down what you can expect from the new Baldur's Gate: Enhanced Edition." ,
22 'uploader_id' : 'the-escapist-presents' ,
23 'uploader' : 'The Escapist Presents' ,
24 'title' : "Breaking Down Baldur's Gate" ,
25 'thumbnail' : 're:^https?://.*\.jpg$' ,
29 def _real_extract ( self
, url
):
30 video_id
= self
._ match
_ id
( url
)
31 webpage
= self
._ download
_ webpage
( url
, video_id
)
33 uploader_id
= self
._ html
_ search
_ regex
(
34 r
"<h1 class='headline'><a href='/videos/view/(.*?)'" ,
35 webpage
, 'uploader ID' , fatal
= False )
36 uploader
= self
._ html
_ search
_ regex
(
37 r
"<h1 class='headline'>(.*?)</a>" ,
38 webpage
, 'uploader' , fatal
= False )
39 description
= self
._ html
_ search
_ meta
( 'description' , webpage
)
41 raw_title
= self
._ html
_ search
_ meta
( 'title' , webpage
, fatal
= True )
42 title
= raw_title
. partition ( ' : ' )[ 2 ]
44 config_url
= compat_urllib_parse
. unquote ( self
._ html
_ search
_ regex
(
45 r
'<param name="flashvars" value="config=([^"&]+)' , webpage
, 'config URL' ))
49 def _add_format ( name
, cfgurl
, quality
):
50 config
= self
._ download
_ json
(
52 'Downloading ' + name
+ ' configuration' ,
53 'Unable to download ' + name
+ ' configuration' ,
54 transform_source
= js_to_json
)
56 playlist
= config
[ 'playlist' ]
58 p
[ 'url' ] for p
in playlist
59 if p
. get ( 'eventCategory' ) == 'Video' )
66 _add_format ( 'normal' , config_url
, quality
= 0 )
67 hq_url
= ( config_url
+
68 ( '&hq=1' if '?' in config_url
else config_url
+ '?hq=1' ))
70 _add_format ( 'hq' , hq_url
, quality
= 1 )
71 except ExtractorError
:
72 pass # That's fine, we'll just use normal quality
74 self
._ sort
_ formats
( formats
)
80 'uploader_id' : uploader_id
,
82 'thumbnail' : self
._ og
_ search
_ thumbnail
( webpage
),
83 'description' : description
,