2015-02-16 15:45:01 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# coding: utf-8  
						 
					
						
							
								
									
										
										
										
											2014-08-18 15:39:35 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								from  __future__  import  unicode_literals  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								from  . common  import  InfoExtractor  
						 
					
						
							
								
									
										
										
										
											2015-02-16 15:45:01 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								from  . . utils  import  (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    int_or_none , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    parse_duration , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
									
										
										
										
											2014-08-18 15:39:35 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-02-16 15:45:01 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								class  RtlNlIE ( InfoExtractor ) :  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    IE_NAME  =  ' rtl.nl ' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    IE_DESC  =  ' rtl.nl and rtlxl.nl ' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    _VALID_URL  =  r ''' (?x) 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        https ? : / / ( www \. ) ? 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ( ? : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            rtlxl \. nl / \#!/[^/]+/| 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            rtl \. nl / system / videoplayer / [ ^ ? #]+?/video_embed\.html\#uuid= 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ( ? P < id > [ 0 - 9 a - f - ] + ) ''' 
 
							 
						 
					
						
							
								
									
										
										
										
											2014-08-18 15:39:35 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-02-16 15:45:01 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    _TESTS  =  [ { 
							 
						 
					
						
							
								
									
										
										
										
											2014-08-18 15:39:35 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								        ' url ' :  ' http://www.rtlxl.nl/#!/rtl-nieuws-132237/6e4203a6-0a5e-3596-8424-c599a59e0677 ' , 
							 
						 
					
						
							
								
									
										
										
										
											2014-08-28 22:54:06 +07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        ' md5 ' :  ' cc16baa36a6c169391f0764fa6b16654 ' , 
							 
						 
					
						
							
								
									
										
										
										
											2014-08-18 15:39:35 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								        ' info_dict ' :  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ' id ' :  ' 6e4203a6-0a5e-3596-8424-c599a59e0677 ' , 
							 
						 
					
						
							
								
									
										
										
										
											2014-08-28 22:54:06 +07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            ' ext ' :  ' mp4 ' , 
							 
						 
					
						
							
								
									
										
										
										
											2014-08-18 15:39:35 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								            ' title ' :  ' RTL Nieuws - Laat ' , 
							 
						 
					
						
							
								
									
										
										
										
											2014-08-28 22:54:06 +07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            ' description ' :  ' md5:6b61f66510c8889923b11f2778c72dc5 ' , 
							 
						 
					
						
							
								
									
										
										
										
											2014-08-18 15:39:35 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								            ' timestamp ' :  1408051800 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ' upload_date ' :  ' 20140814 ' , 
							 
						 
					
						
							
								
									
										
										
										
											2014-08-25 12:59:53 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            ' duration ' :  576.880 , 
							 
						 
					
						
							
								
									
										
										
										
											2014-08-18 15:39:35 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								        } , 
							 
						 
					
						
							
								
									
										
										
										
											2015-02-16 15:45:01 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ' url ' :  ' http://www.rtl.nl/system/videoplayer/derden/rtlnieuws/video_embed.html#uuid=84ae5571-ac25-4225-ae0c-ef8d9efb2aed/autoplay=false ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ' md5 ' :  ' dea7474214af1271d91ef332fb8be7ea ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ' info_dict ' :  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ' id ' :  ' 84ae5571-ac25-4225-ae0c-ef8d9efb2aed ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ' ext ' :  ' mp4 ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ' timestamp ' :  1424039400 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ' title ' :  ' RTL Nieuws - Nieuwe beelden Kopenhagen: chaos direct na aanslag ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ' thumbnail ' :  ' re:^https?://screenshots \ .rtl \ .nl/system/thumb/sz=[0-9]+x[0-9]+/uuid=84ae5571-ac25-4225-ae0c-ef8d9efb2aed$ ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ' upload_date ' :  ' 20150215 ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ' description ' :  ' Er zijn nieuwe beelden vrijgegeven die vlak na de aanslag in Kopenhagen zijn gemaakt. Op de video is goed te zien hoe omstanders zich bekommeren om één van de slachtoffers, terwijl de eerste agenten ter plaatse komen. ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ] 
							 
						 
					
						
							
								
									
										
										
										
											2014-08-18 15:39:35 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    def  _real_extract ( self ,  url ) : 
							 
						 
					
						
							
								
									
										
										
										
											2015-02-16 15:45:01 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        uuid  =  self . _match_id ( url ) 
							 
						 
					
						
							
								
									
										
										
										
											2014-08-18 15:39:35 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								        info  =  self . _download_json ( 
							 
						 
					
						
							
								
									
										
										
										
											2014-11-22 21:06:45 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            ' http://www.rtl.nl/system/s4m/vfd/version=2/uuid= %s /fmt=flash/ '  %  uuid , 
							 
						 
					
						
							
								
									
										
										
										
											2014-08-18 15:39:35 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								            uuid ) 
							 
						 
					
						
							
								
									
										
										
										
											2014-08-25 12:59:53 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-08-18 15:39:35 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								        material  =  info [ ' material ' ] [ 0 ] 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        progname  =  info [ ' abstracts ' ] [ 0 ] [ ' name ' ] 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        subtitle  =  material [ ' title ' ]  or  info [ ' episodes ' ] [ 0 ] [ ' name ' ] 
							 
						 
					
						
							
								
									
										
										
										
											2015-02-16 15:45:01 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        description  =  material . get ( ' synopsis ' )  or  info [ ' episodes ' ] [ 0 ] [ ' synopsis ' ] 
							 
						 
					
						
							
								
									
										
										
										
											2014-08-18 15:39:35 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-11-22 21:06:45 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        # Use unencrypted m3u8 streams (See https://github.com/rg3/youtube-dl/issues/4118) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        videopath  =  material [ ' videopath ' ] . replace ( ' .f4m ' ,  ' .m3u8 ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2014-11-19 00:26:44 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        m3u8_url  =  ' http://manifest.us.rtl.nl '  +  videopath 
							 
						 
					
						
							
								
									
										
										
										
											2014-08-28 22:54:06 +07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-11-19 00:26:44 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        formats  =  self . _extract_m3u8_formats ( m3u8_url ,  uuid ,  ext = ' mp4 ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2014-08-28 22:54:06 +07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-11-23 13:28:09 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        video_urlpart  =  videopath . split ( ' /flash/ ' ) [ 1 ] [ : - 5 ] 
							 
						 
					
						
							
								
									
										
										
										
											2014-08-28 22:54:06 +07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        PG_URL_TEMPLATE  =  ' http://pg.us.rtl.nl/rtlxl/network/ %s /progressive/ %s .mp4 ' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        formats . extend ( [ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                ' url ' :  PG_URL_TEMPLATE  %  ( ' a2m ' ,  video_urlpart ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                ' format_id ' :  ' pg-sd ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                ' url ' :  PG_URL_TEMPLATE  %  ( ' a3m ' ,  video_urlpart ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                ' format_id ' :  ' pg-hd ' , 
							 
						 
					
						
							
								
									
										
										
										
											2014-11-19 01:20:42 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                ' quality ' :  0 , 
							 
						 
					
						
							
								
									
										
										
										
											2014-08-28 22:54:06 +07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ] ) 
							 
						 
					
						
							
								
									
										
										
										
											2014-11-19 00:26:44 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        self . _sort_formats ( formats ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-02-16 15:45:01 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        thumbnails  =  [ ] 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        meta  =  info . get ( ' meta ' ,  { } ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        for  p  in  ( ' poster_base_url ' ,  ' " thumb_base_url " ' ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            if  not  meta . get ( p ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                continue 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            thumbnails . append ( { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                ' url ' :  self . _proto_relative_url ( meta [ p ]  +  uuid ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                ' width ' :  int_or_none ( self . _search_regex ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    r ' /sz=([0-9]+) ' ,  meta [ p ] ,  ' thumbnail width ' ,  fatal = False ) ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                ' height ' :  int_or_none ( self . _search_regex ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    r ' /sz=[0-9]+x([0-9]+) ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    meta [ p ] ,  ' thumbnail height ' ,  fatal = False ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            } ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-08-18 15:39:35 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								        return  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ' id ' :  uuid , 
							 
						 
					
						
							
								
									
										
										
										
											2014-08-25 12:59:53 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            ' title ' :  ' %s  -  %s '  %  ( progname ,  subtitle ) , 
							 
						 
					
						
							
								
									
										
										
										
											2014-08-28 22:54:06 +07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            ' formats ' :  formats , 
							 
						 
					
						
							
								
									
										
										
										
											2014-08-18 15:39:35 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								            ' timestamp ' :  material [ ' original_date ' ] , 
							 
						 
					
						
							
								
									
										
										
										
											2015-02-16 15:45:01 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            ' description ' :  description , 
							 
						 
					
						
							
								
									
										
										
										
											2014-08-25 12:59:53 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            ' duration ' :  parse_duration ( material . get ( ' duration ' ) ) , 
							 
						 
					
						
							
								
									
										
										
										
											2015-02-16 15:45:01 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            ' thumbnails ' :  thumbnails , 
							 
						 
					
						
							
								
									
										
										
										
											2014-08-18 15:39:35 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								        }