2014-02-13 16:32:42 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								from  __future__  import  unicode_literals  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-06-23 21:08:17 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								from  . common  import  InfoExtractor  
						 
					
						
							
								
									
										
										
										
											2014-12-13 12:24:42 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								from  . . compat  import  (  
						 
					
						
							
								
									
										
										
										
											2013-06-23 21:08:17 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    compat_urllib_parse , 
							 
						 
					
						
							
								
									
										
										
										
											2014-12-13 12:24:42 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								from  . . utils  import  (  
						 
					
						
							
								
									
										
										
										
											2013-06-23 21:08:17 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    ExtractorError , 
							 
						 
					
						
							
								
									
										
										
										
											2015-02-10 15:45:36 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    js_to_json , 
							 
						 
					
						
							
								
									
										
										
										
											2013-06-23 21:08:17 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								class  EscapistIE ( InfoExtractor ) :  
						 
					
						
							
								
									
										
										
										
											2015-02-10 15:45:36 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    _VALID_URL  =  r ' https?://?(www \ .)?escapistmagazine \ .com/videos/view/[^/?#]+/(?P<id>[0-9]+)-[^/?#]*(?:$|[?#]) ' 
							 
						 
					
						
							
								
									
										
										
										
											2013-06-27 20:46:46 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    _TEST  =  { 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-13 16:32:42 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        ' url ' :  ' http://www.escapistmagazine.com/videos/view/the-escapist-presents/6618-Breaking-Down-Baldurs-Gate ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ' md5 ' :  ' ab3a706c681efca53f0a35f1415cf0d1 ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ' info_dict ' :  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ' id ' :  ' 6618 ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ' ext ' :  ' mp4 ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ' 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. " , 
							 
						 
					
						
							
								
									
										
										
										
											2015-02-10 15:45:36 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            ' uploader_id ' :  ' the-escapist-presents ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ' uploader ' :  ' The Escapist Presents ' , 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-13 16:32:42 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            ' title ' :  " Breaking Down Baldur ' s Gate " , 
							 
						 
					
						
							
								
									
										
										
										
											2015-02-20 23:22:47 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            ' thumbnail ' :  ' re:^https?://.* \ .jpg$ ' , 
							 
						 
					
						
							
								
									
										
										
										
											2013-06-27 20:46:46 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2013-06-23 21:08:17 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    def  _real_extract ( self ,  url ) : 
							 
						 
					
						
							
								
									
										
										
										
											2015-02-10 15:45:36 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        video_id  =  self . _match_id ( url ) 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-13 16:32:42 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        webpage  =  self . _download_webpage ( url ,  video_id ) 
							 
						 
					
						
							
								
									
										
										
										
											2013-06-23 21:08:17 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-02-10 15:45:36 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        uploader_id  =  self . _html_search_regex ( 
							 
						 
					
						
							
								
									
										
										
										
											2015-02-22 23:11:33 +06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            r " <h1 \ s+class= ' headline ' > \ s*<a \ s+href= ' /videos/view/(.*?) ' " , 
							 
						 
					
						
							
								
									
										
										
										
											2015-02-10 15:45:36 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            webpage ,  ' uploader ID ' ,  fatal = False ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        uploader  =  self . _html_search_regex ( 
							 
						 
					
						
							
								
									
										
										
										
											2015-02-22 23:11:33 +06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            r " <h1 \ s+class= ' headline ' >(.*?)</a> " , 
							 
						 
					
						
							
								
									
										
										
										
											2015-02-10 15:45:36 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            webpage ,  ' uploader ' ,  fatal = False ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        description  =  self . _html_search_meta ( ' description ' ,  webpage ) 
							 
						 
					
						
							
								
									
										
										
										
											2013-06-23 21:08:17 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-02-10 15:45:36 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        raw_title  =  self . _html_search_meta ( ' title ' ,  webpage ,  fatal = True ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        title  =  raw_title . partition ( '  :  ' ) [ 2 ] 
							 
						 
					
						
							
								
									
										
										
										
											2013-06-23 21:08:17 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-02-20 23:22:47 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        config_url  =  compat_urllib_parse . unquote ( self . _html_search_regex ( 
							 
						 
					
						
							
								
									
										
										
										
											2015-02-24 16:33:07 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            r ''' (?x) 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ( ? : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                < param \s + name = " flashvars " \s + value = " config=| 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                flashvars = & quot ; config = 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ( [ ^ " &]+) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ''' , 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            webpage ,  ' config URL ' ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2013-06-23 21:08:17 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-11-20 06:47:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        formats  =  [ ] 
							 
						 
					
						
							
								
									
										
										
										
											2013-06-23 21:08:17 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-02-13 16:32:42 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        def  _add_format ( name ,  cfgurl ,  quality ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            config  =  self . _download_json ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                cfgurl ,  video_id , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                ' Downloading  '  +  name  +  '  configuration ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                ' Unable to download  '  +  name  +  '  configuration ' , 
							 
						 
					
						
							
								
									
										
										
										
											2015-02-10 15:45:36 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                transform_source = js_to_json ) 
							 
						 
					
						
							
								
									
										
										
										
											2013-06-23 21:08:17 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-11-20 06:47:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            playlist  =  config [ ' playlist ' ] 
							 
						 
					
						
							
								
									
										
										
										
											2015-02-10 15:55:51 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            video_url  =  next ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                p [ ' url ' ]  for  p  in  playlist 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                if  p . get ( ' eventCategory ' )  ==  ' Video ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2013-11-20 06:47:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            formats . append ( { 
							 
						 
					
						
							
								
									
										
										
										
											2015-02-10 15:55:51 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                ' url ' :  video_url , 
							 
						 
					
						
							
								
									
										
										
										
											2013-11-20 06:47:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                ' format_id ' :  name , 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-13 16:32:42 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                ' quality ' :  quality , 
							 
						 
					
						
							
								
									
										
										
										
											2013-11-20 06:47:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            } ) 
							 
						 
					
						
							
								
									
										
										
										
											2013-06-23 21:08:17 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-02-10 15:45:36 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        _add_format ( ' normal ' ,  config_url ,  quality = 0 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        hq_url  =  ( config_url  + 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  ( ' &hq=1 '  if  ' ? '  in  config_url  else  config_url  +  ' ?hq=1 ' ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2013-11-20 06:47:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        try : 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-13 16:32:42 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            _add_format ( ' hq ' ,  hq_url ,  quality = 1 ) 
							 
						 
					
						
							
								
									
										
										
										
											2013-11-20 06:55:07 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        except  ExtractorError : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            pass   # That's fine, we'll just use normal quality 
							 
						 
					
						
							
								
									
										
										
										
											2013-11-20 06:47:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-02-13 16:32:42 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        self . _sort_formats ( formats ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-11-20 06:47:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        return  { 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-13 16:32:42 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            ' id ' :  video_id , 
							 
						 
					
						
							
								
									
										
										
										
											2013-11-20 06:47:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            ' formats ' :  formats , 
							 
						 
					
						
							
								
									
										
										
										
											2015-02-10 15:45:36 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            ' uploader ' :  uploader , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ' uploader_id ' :  uploader_id , 
							 
						 
					
						
							
								
									
										
										
										
											2013-06-23 21:08:17 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								            ' title ' :  title , 
							 
						 
					
						
							
								
									
										
										
										
											2013-07-12 19:00:19 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            ' thumbnail ' :  self . _og_search_thumbnail ( webpage ) , 
							 
						 
					
						
							
								
									
										
										
										
											2015-02-10 15:45:36 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            ' description ' :  description , 
							 
						 
					
						
							
								
									
										
										
										
											2013-06-23 21:08:17 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								        }