| 
									
										
										
										
											2016-03-12 22:51:36 +01:00
										 |  |  | # coding: utf-8 | 
					
						
							|  |  |  | from __future__ import unicode_literals | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import re | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | from .common import InfoExtractor | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-05-16 19:11:48 +01:00
										 |  |  | class MyChannelsIE(InfoExtractor): | 
					
						
							|  |  |  |     _VALID_URL = r'https?://(?:www\.)?mychannels\.com/.*(?P<id_type>video|production)_id=(?P<id>[0-9]+)' | 
					
						
							| 
									
										
										
										
											2016-03-12 22:51:36 +01:00
										 |  |  |     _TEST = { | 
					
						
							| 
									
										
										
										
											2018-05-16 19:11:48 +01:00
										 |  |  |         'url': 'https://mychannels.com/missholland/miss-holland?production_id=3416', | 
					
						
							|  |  |  |         'md5': 'b8993daad4262dd68d89d651c0c52c45', | 
					
						
							| 
									
										
										
										
											2016-03-12 22:51:36 +01:00
										 |  |  |         'info_dict': { | 
					
						
							| 
									
										
										
										
											2018-05-16 19:11:48 +01:00
										 |  |  |             'id': 'wUUDZZep6vQD', | 
					
						
							| 
									
										
										
										
											2016-03-12 22:51:36 +01:00
										 |  |  |             'ext': 'mp4', | 
					
						
							| 
									
										
										
										
											2018-05-16 19:11:48 +01:00
										 |  |  |             'title': 'Miss Holland joins VOTE LEAVE', | 
					
						
							|  |  |  |             'description': 'Miss Holland | #13 Not a potato', | 
					
						
							|  |  |  |             'uploader': 'Miss Holland', | 
					
						
							| 
									
										
										
										
											2016-03-12 22:51:36 +01:00
										 |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def _real_extract(self, url): | 
					
						
							|  |  |  |         id_type, url_id = re.match(self._VALID_URL, url).groups() | 
					
						
							|  |  |  |         webpage = self._download_webpage(url, url_id) | 
					
						
							|  |  |  |         video_data = self._html_search_regex(r'<div([^>]+data-%s-id="%s"[^>]+)>' % (id_type, url_id), webpage, 'video data') | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         def extract_data_val(attr, fatal=False): | 
					
						
							|  |  |  |             return self._html_search_regex(r'data-%s\s*=\s*"([^"]+)"' % attr, video_data, attr, fatal=fatal) | 
					
						
							| 
									
										
										
										
											2018-05-16 19:11:48 +01:00
										 |  |  |         minoto_id = extract_data_val('minoto-id') or self._search_regex(r'/id/([a-zA-Z0-9]+)', extract_data_val('video-src', True), 'minoto id') | 
					
						
							| 
									
										
										
										
											2016-03-12 22:51:36 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |         return { | 
					
						
							|  |  |  |             '_type': 'url_transparent', | 
					
						
							|  |  |  |             'url': 'minoto:%s' % minoto_id, | 
					
						
							| 
									
										
										
										
											2018-05-16 19:11:48 +01:00
										 |  |  |             'id': url_id, | 
					
						
							| 
									
										
										
										
											2016-03-12 22:51:36 +01:00
										 |  |  |             'title': extract_data_val('title', True), | 
					
						
							|  |  |  |             'description': extract_data_val('description'), | 
					
						
							|  |  |  |             'thumbnail': extract_data_val('image'), | 
					
						
							|  |  |  |             'uploader': extract_data_val('channel'), | 
					
						
							|  |  |  |         } |