| 
									
										
										
										
											2013-12-23 16:41:35 +01:00
										 |  |  | from __future__ import unicode_literals | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-08-15 21:36:34 +01:00
										 |  |  | from .adobepass import AdobePassIE | 
					
						
							| 
									
										
										
										
											2016-07-14 23:59:12 +01:00
										 |  |  | from ..utils import ( | 
					
						
							|  |  |  |     update_url_query, | 
					
						
							|  |  |  |     smuggle_url, | 
					
						
							|  |  |  | ) | 
					
						
							| 
									
										
										
										
											2013-12-23 16:41:35 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-08-15 21:36:34 +01:00
										 |  |  | class SyfyIE(AdobePassIE): | 
					
						
							| 
									
										
										
										
											2016-09-08 18:29:05 +07:00
										 |  |  |     _VALID_URL = r'https?://(?:www\.)?syfy\.com/(?:[^/]+/)?videos/(?P<id>[^/?#]+)' | 
					
						
							| 
									
										
										
										
											2014-04-30 01:35:52 +02:00
										 |  |  |     _TESTS = [{ | 
					
						
							| 
									
										
										
										
											2016-07-14 23:59:12 +01:00
										 |  |  |         'url': 'http://www.syfy.com/theinternetruinedmylife/videos/the-internet-ruined-my-life-season-1-trailer', | 
					
						
							| 
									
										
										
										
											2013-12-23 16:41:35 +01:00
										 |  |  |         'info_dict': { | 
					
						
							| 
									
										
										
										
											2016-07-14 23:59:12 +01:00
										 |  |  |             'id': '2968097', | 
					
						
							|  |  |  |             'ext': 'mp4', | 
					
						
							|  |  |  |             'title': 'The Internet Ruined My Life: Season 1 Trailer', | 
					
						
							|  |  |  |             'description': 'One tweet, one post, one click, can destroy everything.', | 
					
						
							|  |  |  |             'uploader': 'NBCU-MPAT', | 
					
						
							|  |  |  |             'upload_date': '20170113', | 
					
						
							|  |  |  |             'timestamp': 1484345640, | 
					
						
							| 
									
										
										
										
											2013-12-23 16:41:35 +01:00
										 |  |  |         }, | 
					
						
							| 
									
										
										
										
											2016-07-14 23:59:12 +01:00
										 |  |  |         'params': { | 
					
						
							|  |  |  |             # m3u8 download | 
					
						
							|  |  |  |             'skip_download': True, | 
					
						
							| 
									
										
										
										
											2014-04-30 01:35:52 +02:00
										 |  |  |         }, | 
					
						
							|  |  |  |         'add_ie': ['ThePlatform'], | 
					
						
							|  |  |  |     }] | 
					
						
							| 
									
										
										
										
											2013-12-23 16:41:35 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def _real_extract(self, url): | 
					
						
							| 
									
										
										
										
											2016-07-14 23:59:12 +01:00
										 |  |  |         display_id = self._match_id(url) | 
					
						
							|  |  |  |         webpage = self._download_webpage(url, display_id) | 
					
						
							|  |  |  |         syfy_mpx = list(self._parse_json(self._search_regex( | 
					
						
							| 
									
										
										
										
											2016-08-23 17:31:08 +01:00
										 |  |  |             r'jQuery\.extend\(Drupal\.settings\s*,\s*({.+?})\);', webpage, 'drupal settings'), | 
					
						
							| 
									
										
										
										
											2016-07-14 23:59:12 +01:00
										 |  |  |             display_id)['syfy']['syfy_mpx'].values())[0] | 
					
						
							|  |  |  |         video_id = syfy_mpx['mpxGUID'] | 
					
						
							|  |  |  |         title = syfy_mpx['episodeTitle'] | 
					
						
							|  |  |  |         query = { | 
					
						
							|  |  |  |             'mbr': 'true', | 
					
						
							|  |  |  |             'manifest': 'm3u', | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         if syfy_mpx.get('entitlement') == 'auth': | 
					
						
							| 
									
										
										
										
											2016-08-14 17:55:56 +01:00
										 |  |  |             resource = self._get_mvpd_resource( | 
					
						
							|  |  |  |                 'syfy', title, video_id, | 
					
						
							|  |  |  |                 syfy_mpx.get('mpxRating', 'TV-14')) | 
					
						
							| 
									
										
										
										
											2016-07-14 23:59:12 +01:00
										 |  |  |             query['auth'] = self._extract_mvpd_auth( | 
					
						
							|  |  |  |                 url, video_id, 'syfy', resource) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         return { | 
					
						
							|  |  |  |             '_type': 'url_transparent', | 
					
						
							|  |  |  |             'ie_key': 'ThePlatform', | 
					
						
							|  |  |  |             'url': smuggle_url(update_url_query( | 
					
						
							|  |  |  |                 self._proto_relative_url(syfy_mpx['releaseURL']), query), | 
					
						
							|  |  |  |                 {'force_smil_url': True}), | 
					
						
							|  |  |  |             'title': title, | 
					
						
							|  |  |  |             'id': video_id, | 
					
						
							|  |  |  |             'display_id': display_id, | 
					
						
							|  |  |  |         } |