2014-04-03 16:21:21 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								# coding: utf-8  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								from  __future__  import  unicode_literals  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								import  json  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								from  . common  import  InfoExtractor  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								from  . . utils  import  (  
						 
					
						
							
								
									
										
										
										
											2014-04-04 02:09:04 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    ExtractorError , 
							 
						 
					
						
							
								
									
										
										
										
											2014-04-03 16:21:21 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								class  CNETIE ( InfoExtractor ) :  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    _VALID_URL  =  r ' https?://(?:www \ .)?cnet \ .com/videos/(?P<id>[^/]+)/ ' 
							 
						 
					
						
							
								
									
										
										
										
											2015-06-08 13:32:04 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    _TESTS  =  [ { 
							 
						 
					
						
							
								
									
										
										
										
											2014-04-03 16:21:21 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								        ' url ' :  ' http://www.cnet.com/videos/hands-on-with-microsofts-windows-8-1-update/ ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ' info_dict ' :  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ' id ' :  ' 56f4ea68-bd21-4852-b08c-4de5b8354c60 ' , 
							 
						 
					
						
							
								
									
										
										
										
											2014-12-12 15:55:55 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            ' ext ' :  ' flv ' , 
							 
						 
					
						
							
								
									
										
										
										
											2014-04-03 16:21:21 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								            ' title ' :  ' Hands-on with Microsoft Windows 8.1 Update ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ' description ' :  ' The new update to the Windows 8 OS brings improved performance for mouse and keyboard users. ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ' thumbnail ' :  ' re:^http://.*/flmswindows8.jpg$ ' , 
							 
						 
					
						
							
								
									
										
										
										
											2014-12-12 15:55:55 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            ' uploader_id ' :  ' 6085384d-619e-11e3-b231-14feb5ca9861 ' , 
							 
						 
					
						
							
								
									
										
										
										
											2014-04-03 16:21:21 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								            ' uploader ' :  ' Sarah Mitroff ' , 
							 
						 
					
						
							
								
									
										
										
										
											2014-12-12 15:55:55 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ' params ' :  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ' skip_download ' :  ' requires rtmpdump ' , 
							 
						 
					
						
							
								
									
										
										
										
											2014-04-03 16:21:21 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2015-06-08 13:32:04 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ' url ' :  ' http://www.cnet.com/videos/whiny-pothole-tweets-at-local-government-when-hit-by-cars-tomorrow-daily-187/ ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ' info_dict ' :  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ' id ' :  ' 56527b93-d25d-44e3-b738-f989ce2e49ba ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ' ext ' :  ' flv ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ' description ' :  ' Khail and Ashley wonder what other civic woes can be solved by self-tweeting objects, investigate a new kind of VR camera and watch an origami robot self-assemble, walk, climb, dig and dissolve. #TDPothole ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ' uploader_id ' :  ' b163284d-6b73-44fc-b3e6-3da66c392d40 ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ' uploader ' :  ' Ashley Esqueda ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ' title ' :  ' Whiny potholes tweet at local government when hit by cars (Tomorrow Daily 187) ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ' params ' :  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ' skip_download ' :  True ,   # requires rtmpdump 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ] 
							 
						 
					
						
							
								
									
										
										
										
											2014-04-03 16:21:21 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    def  _real_extract ( self ,  url ) : 
							 
						 
					
						
							
								
									
										
										
										
											2014-12-12 15:55:55 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        display_id  =  self . _match_id ( url ) 
							 
						 
					
						
							
								
									
										
										
										
											2014-04-03 16:21:21 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								        webpage  =  self . _download_webpage ( url ,  display_id ) 
							 
						 
					
						
							
								
									
										
										
										
											2014-12-12 15:55:55 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-04-03 16:21:21 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								        data_json  =  self . _html_search_regex ( 
							 
						 
					
						
							
								
									
										
										
										
											2014-04-21 07:59:29 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            r " <div class= \" cnetVideoPlayer \" \ s+.*?data-cnet-video-options= ' ([^ ' ]+) ' " , 
							 
						 
					
						
							
								
									
										
										
										
											2014-04-03 16:21:21 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								            webpage ,  ' data json ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        data  =  json . loads ( data_json ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        vdata  =  data [ ' video ' ] 
							 
						 
					
						
							
								
									
										
										
										
											2014-04-04 02:09:04 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  not  vdata : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            vdata  =  data [ ' videos ' ] [ 0 ] 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  not  vdata : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            raise  ExtractorError ( ' Cannot find video data ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2014-04-03 16:21:21 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-12-12 15:55:55 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        mpx_account  =  data [ ' config ' ] [ ' players ' ] [ ' default ' ] [ ' mpx_account ' ] 
							 
						 
					
						
							
								
									
										
										
										
											2015-06-08 13:32:04 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        vid  =  vdata [ ' files ' ] . get ( ' rtmp ' ,  vdata [ ' files ' ] [ ' hds ' ] ) 
							 
						 
					
						
							
								
									
										
										
										
											2014-12-12 15:55:55 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        tp_link  =  ' http://link.theplatform.com/s/ %s / %s '  %  ( mpx_account ,  vid ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-04-03 16:21:21 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								        video_id  =  vdata [ ' id ' ] 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-21 13:03:18 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        title  =  vdata . get ( ' headline ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  title  is  None : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            title  =  vdata . get ( ' title ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  title  is  None : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            raise  ExtractorError ( ' Cannot find title! ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2014-04-03 16:21:21 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								        thumbnail  =  vdata . get ( ' image ' ,  { } ) . get ( ' path ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        author  =  vdata . get ( ' author ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  author : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            uploader  =  ' %s   %s '  %  ( author [ ' firstName ' ] ,  author [ ' lastName ' ] ) 
							 
						 
					
						
							
								
									
										
										
										
											2014-12-12 15:55:55 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            uploader_id  =  author . get ( ' id ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2014-04-03 16:21:21 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								        else : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            uploader  =  None 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            uploader_id  =  None 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  { 
							 
						 
					
						
							
								
									
										
										
										
											2014-12-12 15:55:55 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            ' _type ' :  ' url_transparent ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ' url ' :  tp_link , 
							 
						 
					
						
							
								
									
										
										
										
											2014-04-03 16:21:21 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								            ' id ' :  video_id , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ' display_id ' :  display_id , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ' title ' :  title , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ' uploader ' :  uploader , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ' uploader_id ' :  uploader_id , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ' thumbnail ' :  thumbnail , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        }