|  | @@ -4,6 +4,11 @@ from __future__ import unicode_literals
 | 
	
		
			
				|  |  |  import re
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  from .theplatform import ThePlatformBaseIE
 | 
	
		
			
				|  |  | +from ..compat import (
 | 
	
		
			
				|  |  | +    compat_parse_qs,
 | 
	
		
			
				|  |  | +    compat_str,
 | 
	
		
			
				|  |  | +    compat_urllib_parse_urlparse,
 | 
	
		
			
				|  |  | +)
 | 
	
		
			
				|  |  |  from ..utils import (
 | 
	
		
			
				|  |  |      ExtractorError,
 | 
	
		
			
				|  |  |      int_or_none,
 | 
	
	
		
			
				|  | @@ -76,12 +81,33 @@ class MediasetIE(ThePlatformBaseIE):
 | 
	
		
			
				|  |  |      }]
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      @staticmethod
 | 
	
		
			
				|  |  | -    def _extract_urls(webpage):
 | 
	
		
			
				|  |  | -        return [
 | 
	
		
			
				|  |  | -            mobj.group('url')
 | 
	
		
			
				|  |  | -            for mobj in re.finditer(
 | 
	
		
			
				|  |  | -                r'<iframe\b[^>]+\bsrc=(["\'])(?P<url>https?://(?:www\.)?video\.mediaset\.it/player/playerIFrame(?:Twitter)?\.shtml\?.*?\bid=\d+.*?)\1',
 | 
	
		
			
				|  |  | -                webpage)]
 | 
	
		
			
				|  |  | +    def _extract_urls(ie, webpage):
 | 
	
		
			
				|  |  | +        def _qs(url):
 | 
	
		
			
				|  |  | +            return compat_parse_qs(compat_urllib_parse_urlparse(url).query)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        def _program_guid(qs):
 | 
	
		
			
				|  |  | +            return qs.get('programGuid', [None])[0]
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        entries = []
 | 
	
		
			
				|  |  | +        for mobj in re.finditer(
 | 
	
		
			
				|  |  | +                r'<iframe\b[^>]+\bsrc=(["\'])(?P<url>(?:https?:)?//(?:www\.)?video\.mediaset\.it/player/playerIFrame(?:Twitter)?\.shtml.*?)\1',
 | 
	
		
			
				|  |  | +                webpage):
 | 
	
		
			
				|  |  | +            embed_url = mobj.group('url')
 | 
	
		
			
				|  |  | +            embed_qs = _qs(embed_url)
 | 
	
		
			
				|  |  | +            program_guid = _program_guid(embed_qs)
 | 
	
		
			
				|  |  | +            if program_guid:
 | 
	
		
			
				|  |  | +                entries.append(embed_url)
 | 
	
		
			
				|  |  | +                continue
 | 
	
		
			
				|  |  | +            video_id = embed_qs.get('id', [None])[0]
 | 
	
		
			
				|  |  | +            if not video_id:
 | 
	
		
			
				|  |  | +                continue
 | 
	
		
			
				|  |  | +            urlh = ie._request_webpage(
 | 
	
		
			
				|  |  | +                embed_url, video_id, note='Following embed URL redirect')
 | 
	
		
			
				|  |  | +            embed_url = compat_str(urlh.geturl())
 | 
	
		
			
				|  |  | +            program_guid = _program_guid(_qs(embed_url))
 | 
	
		
			
				|  |  | +            if program_guid:
 | 
	
		
			
				|  |  | +                entries.append(embed_url)
 | 
	
		
			
				|  |  | +        return entries
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      def _real_extract(self, url):
 | 
	
		
			
				|  |  |          guid = self._match_id(url)
 |