2014-01-28 18:55:06 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								from  __future__  import  unicode_literals  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-12-05 14:29:08 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								import  re  
						 
					
						
							
								
									
										
										
										
											2014-04-15 19:49:38 +07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								import  json  
						 
					
						
							
								
									
										
										
										
											2013-12-05 14:29:08 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								from  . common  import  InfoExtractor  
						 
					
						
							
								
									
										
										
										
											2014-04-15 19:49:38 +07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								from  . . utils  import  str_to_int  
						 
					
						
							
								
									
										
										
										
											2013-12-05 14:29:08 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								class  NineGagIE ( InfoExtractor ) :  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    IE_NAME  =  ' 9gag ' 
							 
						 
					
						
							
								
									
										
										
										
											2014-04-11 01:25:24 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    _VALID_URL  =  r ''' (?x)^https?://(?:www \ .)?9gag \ .tv/ 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ( ? : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            v / ( ? P < numid > [ 0 - 9 ] + ) | 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            p / ( ? P < id > [ a - zA - Z0 - 9 ] + ) / ( ? P < display_id > [ ^ ? #/]+) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ''' 
 
							 
						 
					
						
							
								
									
										
										
										
											2013-12-05 14:29:08 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-04-11 01:25:24 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    _TESTS  =  [ { 
							 
						 
					
						
							
								
									
										
										
										
											2014-01-28 18:55:06 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        " url " :  " http://9gag.tv/v/1912 " , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        " info_dict " :  { 
							 
						 
					
						
							
								
									
										
										
										
											2014-03-21 00:25:04 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            " id " :  " 1912 " , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            " ext " :  " mp4 " , 
							 
						 
					
						
							
								
									
										
										
										
											2014-01-28 18:55:06 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            " description " :  " This 3-minute video will make you smile and then make you feel untalented and insignificant. Anyway, you should share this awesomeness. (Thanks, Dino!) " , 
							 
						 
					
						
							
								
									
										
										
										
											2014-03-13 16:40:53 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            " title " :  " \" People Are Awesome 2013 \"  Is Absolutely Awesome " , 
							 
						 
					
						
							
								
									
										
										
										
											2014-12-12 20:10:15 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            ' uploader_id ' :  ' UCdEH6EjDKwtTe-sO2f0_1XA ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ' uploader ' :  ' CompilationChannel ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ' upload_date ' :  ' 20131110 ' , 
							 
						 
					
						
							
								
									
										
										
										
											2014-03-13 16:40:53 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            " view_count " :  int , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            " thumbnail " :  " re:^https?:// " , 
							 
						 
					
						
							
								
									
										
										
										
											2013-12-05 14:29:08 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								        } , 
							 
						 
					
						
							
								
									
										
										
										
											2014-01-28 18:55:06 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        ' add_ie ' :  [ ' Youtube ' ] 
							 
						 
					
						
							
								
									
										
										
										
											2014-11-23 21:39:15 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
									
										
										
										
											2014-04-11 01:25:24 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        ' url ' :  ' http://9gag.tv/p/KklwM/alternate-banned-opening-scene-of-gravity?ref=fsidebar ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ' info_dict ' :  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ' id ' :  ' KklwM ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ' ext ' :  ' mp4 ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ' display_id ' :  ' alternate-banned-opening-scene-of-gravity ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            " description " :  " While Gravity was a pretty awesome movie already, YouTuber Krishna Shenoi came up with a way to improve upon it, introducing a much better solution to Sandra Bullock ' s seemingly endless tumble in space. The ending is priceless. " , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ' title ' :  " Banned Opening Scene Of  \" Gravity \"  That Changes The Whole Movie " , 
							 
						 
					
						
							
								
									
										
										
										
											2014-12-12 20:10:15 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            ' uploader ' :  ' Krishna Shenoi ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ' upload_date ' :  ' 20140401 ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ' uploader_id ' :  ' krishnashenoi93 ' , 
							 
						 
					
						
							
								
									
										
										
										
											2014-04-11 01:25:24 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ] 
							 
						 
					
						
							
								
									
										
										
										
											2013-12-05 14:29:08 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    def  _real_extract ( self ,  url ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        mobj  =  re . match ( self . _VALID_URL ,  url ) 
							 
						 
					
						
							
								
									
										
										
										
											2014-04-11 01:25:24 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        video_id  =  mobj . group ( ' numid ' )  or  mobj . group ( ' id ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        display_id  =  mobj . group ( ' display_id ' )  or  video_id 
							 
						 
					
						
							
								
									
										
										
										
											2013-12-05 14:29:08 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-04-11 01:25:24 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        webpage  =  self . _download_webpage ( url ,  display_id ) 
							 
						 
					
						
							
								
									
										
										
										
											2013-12-05 14:29:08 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-04-15 19:49:38 +07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        post_view  =  json . loads ( self . _html_search_regex ( 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-07 20:12:59 +07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            r ' var postView = new app \ .PostView \ ( { \ s*post: \ s*( { .+?}), \ s*posts: \ s*prefetchedCurrentPost ' ,  webpage ,  ' post view ' ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2014-04-15 19:49:38 +07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        youtube_id  =  post_view [ ' videoExternalId ' ] 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        title  =  post_view [ ' title ' ] 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        description  =  post_view [ ' description ' ] 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        view_count  =  str_to_int ( post_view [ ' externalView ' ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        thumbnail  =  post_view . get ( ' thumbnail_700w ' )  or  post_view . get ( ' ogImageUrl ' )  or  post_view . get ( ' thumbnail_300w ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2013-12-05 14:29:08 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ' _type ' :  ' url_transparent ' , 
							 
						 
					
						
							
								
									
										
										
										
											2014-03-13 16:40:53 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            ' url ' :  youtube_id , 
							 
						 
					
						
							
								
									
										
										
										
											2013-12-05 14:29:08 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								            ' ie_key ' :  ' Youtube ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ' id ' :  video_id , 
							 
						 
					
						
							
								
									
										
										
										
											2014-04-11 01:25:24 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            ' display_id ' :  display_id , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ' title ' :  title , 
							 
						 
					
						
							
								
									
										
										
										
											2014-03-13 16:40:53 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            ' description ' :  description , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ' view_count ' :  view_count , 
							 
						 
					
						
							
								
									
										
										
										
											2014-04-15 19:49:38 +07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            ' thumbnail ' :  thumbnail , 
							 
						 
					
						
							
								
									
										
										
										
											2013-12-05 14:29:08 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								        }