2014-02-13 16:32:42 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								from  __future__  import  unicode_literals  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-06-23 21:08:17 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								import  re  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								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 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								class  EscapistIE ( InfoExtractor ) :  
						 
					
						
							
								
									
										
										
										
											2014-02-13 16:32:42 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    _VALID_URL  =  r ' ^https?://?(www \ .)?escapistmagazine \ .com/videos/view/(?P<showname>[^/]+)/(?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. " , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ' uploader ' :  ' the-escapist-presents ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ' title ' :  " Breaking Down Baldur ' s Gate " , 
							 
						 
					
						
							
								
									
										
										
										
											2013-06-27 20:46:46 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2013-06-23 21:08:17 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    def  _real_extract ( self ,  url ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        mobj  =  re . match ( self . _VALID_URL ,  url ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        showName  =  mobj . group ( ' showname ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-13 16:32:42 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        video_id  =  mobj . group ( ' id ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2013-06-23 21:08:17 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-02-13 16:32:42 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        self . report_extraction ( video_id ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        webpage  =  self . _download_webpage ( url ,  video_id ) 
							 
						 
					
						
							
								
									
										
										
										
											2013-06-23 21:08:17 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-11-20 06:47:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        videoDesc  =  self . _html_search_regex ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            r ' <meta name= " description "  content= " ([^ " ]*) " ' , 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-13 16:32:42 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            webpage ,  ' description ' ,  fatal = False ) 
							 
						 
					
						
							
								
									
										
										
										
											2013-06-23 21:08:17 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-08-21 13:05:24 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        playerUrl  =  self . _og_search_video_url ( webpage ,  name = ' player URL ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2013-06-23 21:08:17 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-11-20 06:47:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        title  =  self . _html_search_regex ( 
							 
						 
					
						
							
								
									
										
										
										
											2013-11-20 07:23:23 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            r ' <meta name= " title "  content= " ([^ " ]*) " ' , 
							 
						 
					
						
							
								
									
										
										
										
											2014-02-13 16:32:42 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            webpage ,  ' title ' ) . split ( '  :  ' ) [ - 1 ] 
							 
						 
					
						
							
								
									
										
										
										
											2013-06-23 21:08:17 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-02-13 16:32:42 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        configUrl  =  self . _search_regex ( ' config=(.*)$ ' ,  playerUrl ,  ' config URL ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2013-06-23 21:08:17 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								        configUrl  =  compat_urllib_parse . unquote ( configUrl ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											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 ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                transform_source = lambda  s :  s . replace ( " ' " ,  ' " ' ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2013-06-23 21:08:17 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-11-20 06:47:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            playlist  =  config [ ' playlist ' ] 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            formats . append ( { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                ' url ' :  playlist [ 1 ] [ ' url ' ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                ' 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 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-02-13 16:32:42 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        _add_format ( ' normal ' ,  configUrl ,  quality = 0 ) 
							 
						 
					
						
							
								
									
										
										
										
											2013-11-20 06:55:07 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        hq_url  =  ( configUrl  + 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  ( ' &hq=1 '  if  ' ? '  in  configUrl  else  configUrl  +  ' ?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 , 
							 
						 
					
						
							
								
									
										
										
										
											2013-06-23 21:08:17 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								            ' uploader ' :  showName , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ' title ' :  title , 
							 
						 
					
						
							
								
									
										
										
										
											2013-07-12 19:00:19 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            ' thumbnail ' :  self . _og_search_thumbnail ( webpage ) , 
							 
						 
					
						
							
								
									
										
										
										
											2013-06-23 21:08:17 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								            ' description ' :  videoDesc , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ' player_url ' :  playerUrl , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        }