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) 
 
							 
						 
					
						
							
								
									
										
										
										
											2017-10-12 16:09:06 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        https ? : / / ( ? : ( ? : www | static ) \. ) ? 
							 
						 
					
						
							
								
									
										
										
										
											2015-02-16 15:45:01 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        ( ? : 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-10 21:07:43 +07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            rtlxl \. nl / [ ^ \#]*\#!/[^/]+/| 
							 
						 
					
						
							
								
									
										
										
										
											2017-10-12 16:09:06 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            rtl \. nl / ( ? : ( ? : system / videoplayer / ( ? : [ ^ / ] + / ) + ( ? : video_ ) ? embed \. html | embed ) \b . + ? \buuid = | video / ) 
							 
						 
					
						
							
								
									
										
										
										
											2015-02-16 15:45:01 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ( ? P < id > [ 0 - 9 a - f - ] + ) ''' 
 
							 
						 
					
						
							
								
									
										
										
										
											2014-08-18 15:39:35 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-02-16 15:45:01 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    _TESTS  =  [ { 
							 
						 
					
						
							
								
									
										
										
										
											2016-04-30 02:07:29 +06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        ' url ' :  ' http://www.rtlxl.nl/#!/rtl-nieuws-132237/82b1aad1-4a14-3d7b-b554-b0aed1b2c416 ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ' md5 ' :  ' 473d1946c1fdd050b2c0161a4b13c373 ' , 
							 
						 
					
						
							
								
									
										
										
										
											2014-08-18 15:39:35 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								        ' info_dict ' :  { 
							 
						 
					
						
							
								
									
										
										
										
											2016-04-30 02:07:29 +06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            ' id ' :  ' 82b1aad1-4a14-3d7b-b554-b0aed1b2c416 ' , 
							 
						 
					
						
							
								
									
										
										
										
											2014-08-28 22:54:06 +07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            ' ext ' :  ' mp4 ' , 
							 
						 
					
						
							
								
									
										
										
										
											2016-04-30 02:07:29 +06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            ' title ' :  ' RTL Nieuws ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ' description ' :  ' md5:d41d8cd98f00b204e9800998ecf8427e ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ' timestamp ' :  1461951000 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ' upload_date ' :  ' 20160429 ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ' duration ' :  1167.96 , 
							 
						 
					
						
							
								
									
										
										
										
											2014-08-18 15:39:35 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								        } , 
							 
						 
					
						
							
								
									
										
										
										
											2015-02-16 15:45:01 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
									
										
										
										
											2016-04-30 01:50:26 +06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        # best format avaialble a3t 
							 
						 
					
						
							
								
									
										
										
										
											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 ' , 
							 
						 
					
						
							
								
									
										
										
										
											2017-01-02 20:08:07 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            ' thumbnail ' :  r ' re:^https?://screenshots \ .rtl \ .nl/(?:[^/]+/)*sz=[0-9]+x[0-9]+/uuid=84ae5571-ac25-4225-ae0c-ef8d9efb2aed$ ' , 
							 
						 
					
						
							
								
									
										
										
										
											2015-02-16 15:45:01 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            ' 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. ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2015-07-19 00:27:23 +06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        # empty synopsis and missing episodes (see https://github.com/rg3/youtube-dl/issues/6275) 
							 
						 
					
						
							
								
									
										
										
										
											2016-04-30 01:50:26 +06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        # best format available nettv 
							 
						 
					
						
							
								
									
										
										
										
											2015-07-19 00:27:23 +06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        ' url ' :  ' http://www.rtl.nl/system/videoplayer/derden/rtlnieuws/video_embed.html#uuid=f536aac0-1dc3-4314-920e-3bd1c5b3811a/autoplay=false ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ' info_dict ' :  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ' id ' :  ' f536aac0-1dc3-4314-920e-3bd1c5b3811a ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ' ext ' :  ' mp4 ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ' title ' :  ' RTL Nieuws - Meer beelden van overval juwelier ' , 
							 
						 
					
						
							
								
									
										
										
										
											2017-01-02 20:08:07 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            ' thumbnail ' :  r ' re:^https?://screenshots \ .rtl \ .nl/(?:[^/]+/)*sz=[0-9]+x[0-9]+/uuid=f536aac0-1dc3-4314-920e-3bd1c5b3811a$ ' , 
							 
						 
					
						
							
								
									
										
										
										
											2015-07-19 00:27:23 +06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            ' timestamp ' :  1437233400 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ' upload_date ' :  ' 20150718 ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ' duration ' :  30.474 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ' params ' :  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            ' skip_download ' :  True , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } , 
							 
						 
					
						
							
								
									
										
										
										
											2015-07-05 19:07:07 +06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-07-06 02:58:02 +06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        # encrypted m3u8 streams, georestricted 
							 
						 
					
						
							
								
									
										
										
										
											2015-07-05 19:07:07 +06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        ' url ' :  ' http://www.rtlxl.nl/#!/afl-2-257632/52a74543-c504-4cde-8aa8-ec66fe8d68a7 ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ' only_matching ' :  True , 
							 
						 
					
						
							
								
									
										
										
										
											2015-06-11 19:03:22 +06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ' url ' :  ' http://www.rtl.nl/system/videoplayer/derden/embed.html#!/uuid=bb0353b0-d6a4-1dad-90e9-18fe75b8d1f0 ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ' only_matching ' :  True , 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-10 21:07:43 +07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ' url ' :  ' http://rtlxl.nl/?_ga=1.204735956.572365465.1466978370#!/rtl-nieuws-132237/3c487912-023b-49ac-903e-2c5d79f8410f ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ' only_matching ' :  True , 
							 
						 
					
						
							
								
									
										
										
										
											2017-06-06 21:21:44 +07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ' url ' :  ' https://www.rtl.nl/video/c603c9c2-601d-4b5e-8175-64f1e942dc7d/ ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ' only_matching ' :  True , 
							 
						 
					
						
							
								
									
										
										
										
											2017-10-12 16:09:06 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ' url ' :  ' https://static.rtl.nl/embed/?uuid=1a2970fc-5c0b-43ff-9fdc-927e39e6d1bc&autoplay=false&publicatiepunt=rtlnieuwsnl ' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ' only_matching ' :  True , 
							 
						 
					
						
							
								
									
										
										
										
											2015-02-16 15:45:01 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } ] 
							 
						 
					
						
							
								
									
										
										
										
											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 ( 
							 
						 
					
						
							
								
									
										
										
										
											2015-06-29 00:59:18 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            ' http://www.rtl.nl/system/s4m/vfd/version=2/uuid= %s /fmt=adaptive/ '  %  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 ] 
							 
						 
					
						
							
								
									
										
										
										
											2015-07-19 00:27:23 +06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        title  =  info [ ' abstracts ' ] [ 0 ] [ ' name ' ] 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        subtitle  =  material . get ( ' title ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  subtitle : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            title  + =  '  -  %s '  %  subtitle 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        description  =  material . get ( ' synopsis ' ) 
							 
						 
					
						
							
								
									
										
										
										
											2014-08-18 15:39:35 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-07-05 19:01:07 +06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        meta  =  info . get ( ' meta ' ,  { } ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-07-22 22:38:04 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        videopath  =  material [ ' videopath ' ] 
							 
						 
					
						
							
								
									
										
										
										
											2015-07-05 19:01:07 +06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        m3u8_url  =  meta . get ( ' videohost ' ,  ' http://manifest.us.rtl.nl ' )  +  videopath 
							 
						 
					
						
							
								
									
										
										
										
											2014-08-28 22:54:06 +07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-04-30 01:43:39 +06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        formats  =  self . _extract_m3u8_formats ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            m3u8_url ,  uuid ,  ' mp4 ' ,  m3u8_id = ' hls ' ,  fatal = False ) 
							 
						 
					
						
							
								
									
										
										
										
											2014-11-19 00:26:44 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        self . _sort_formats ( formats ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-02-16 15:45:01 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        thumbnails  =  [ ] 
							 
						 
					
						
							
								
									
										
										
										
											2015-07-05 19:01:07 +06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-02-16 15:45:01 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        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 , 
							 
						 
					
						
							
								
									
										
										
										
											2015-07-19 00:27:23 +06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            ' title ' :  title , 
							 
						 
					
						
							
								
									
										
										
										
											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 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								        }