| 
									
										
										
										
											2015-08-10 19:27:16 +02:00
										 |  |  | # coding: utf-8 | 
					
						
							|  |  |  | from __future__ import unicode_literals | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | from .common import InfoExtractor | 
					
						
							| 
									
										
										
										
											2015-08-13 23:25:47 +06:00
										 |  |  | from ..utils import ( | 
					
						
							|  |  |  |     int_or_none, | 
					
						
							|  |  |  |     parse_age_limit, | 
					
						
							|  |  |  |     parse_iso8601, | 
					
						
							|  |  |  | ) | 
					
						
							| 
									
										
										
										
											2015-08-10 19:27:16 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-13 23:25:47 +06:00
										 |  |  | class IndavideoEmbedIE(InfoExtractor): | 
					
						
							|  |  |  |     _VALID_URL = r'https?://(?:(?:embed\.)?indavideo\.hu/player/video/|assets\.indavideo\.hu/swf/player\.swf\?.*\b(?:v(?:ID|id))=)(?P<id>[\da-f]+)' | 
					
						
							|  |  |  |     _TESTS = [{ | 
					
						
							|  |  |  |         'url': 'http://indavideo.hu/player/video/1bdc3c6d80/', | 
					
						
							|  |  |  |         'md5': 'f79b009c66194acacd40712a6778acfa', | 
					
						
							|  |  |  |         'info_dict': { | 
					
						
							|  |  |  |             'id': '1837039', | 
					
						
							|  |  |  |             'ext': 'mp4', | 
					
						
							|  |  |  |             'title': 'Cicatánc', | 
					
						
							|  |  |  |             'description': '', | 
					
						
							| 
									
										
										
										
											2017-01-02 20:08:07 +08:00
										 |  |  |             'thumbnail': r're:^https?://.*\.jpg$', | 
					
						
							| 
									
										
										
										
											2015-08-13 23:25:47 +06:00
										 |  |  |             'uploader': 'cukiajanlo', | 
					
						
							|  |  |  |             'uploader_id': '83729', | 
					
						
							|  |  |  |             'timestamp': 1439193826, | 
					
						
							|  |  |  |             'upload_date': '20150810', | 
					
						
							|  |  |  |             'duration': 72, | 
					
						
							|  |  |  |             'age_limit': 0, | 
					
						
							|  |  |  |             'tags': ['tánc', 'cica', 'cuki', 'cukiajanlo', 'newsroom'], | 
					
						
							| 
									
										
										
										
											2015-08-10 19:27:16 +02:00
										 |  |  |         }, | 
					
						
							| 
									
										
										
										
											2015-08-13 23:25:47 +06:00
										 |  |  |     }, { | 
					
						
							|  |  |  |         'url': 'http://embed.indavideo.hu/player/video/1bdc3c6d80?autostart=1&hide=1', | 
					
						
							|  |  |  |         'only_matching': True, | 
					
						
							|  |  |  |     }, { | 
					
						
							|  |  |  |         'url': 'http://assets.indavideo.hu/swf/player.swf?v=fe25e500&vID=1bdc3c6d80&autostart=1&hide=1&i=1', | 
					
						
							|  |  |  |         'only_matching': True, | 
					
						
							|  |  |  |     }] | 
					
						
							| 
									
										
										
										
											2015-08-10 19:27:16 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def _real_extract(self, url): | 
					
						
							| 
									
										
										
										
											2015-08-13 23:25:47 +06:00
										 |  |  |         video_id = self._match_id(url) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         video = self._download_json( | 
					
						
							|  |  |  |             'http://amfphp.indavideo.hu/SYm0json.php/player.playerHandler.getVideoData/%s' % video_id, | 
					
						
							|  |  |  |             video_id)['data'] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         title = video['title'] | 
					
						
							| 
									
										
										
										
											2015-08-10 19:27:16 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-13 23:25:47 +06:00
										 |  |  |         video_urls = video.get('video_files', []) | 
					
						
							|  |  |  |         video_file = video.get('video_file') | 
					
						
							|  |  |  |         if video: | 
					
						
							|  |  |  |             video_urls.append(video_file) | 
					
						
							|  |  |  |         video_urls = list(set(video_urls)) | 
					
						
							| 
									
										
										
										
											2015-08-10 19:27:16 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-13 23:25:47 +06:00
										 |  |  |         video_prefix = video_urls[0].rsplit('/', 1)[0] | 
					
						
							| 
									
										
										
										
											2015-08-10 19:27:16 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-13 23:25:47 +06:00
										 |  |  |         for flv_file in video.get('flv_files', []): | 
					
						
							|  |  |  |             flv_url = '%s/%s' % (video_prefix, flv_file) | 
					
						
							|  |  |  |             if flv_url not in video_urls: | 
					
						
							|  |  |  |                 video_urls.append(flv_url) | 
					
						
							| 
									
										
										
										
											2015-08-10 19:27:16 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-13 23:25:47 +06:00
										 |  |  |         formats = [{ | 
					
						
							|  |  |  |             'url': video_url, | 
					
						
							| 
									
										
										
										
											2016-06-11 05:13:05 +07:00
										 |  |  |             'height': int_or_none(self._search_regex( | 
					
						
							|  |  |  |                 r'\.(\d{3,4})\.mp4(?:\?|$)', video_url, 'height', default=None)), | 
					
						
							| 
									
										
										
										
											2015-08-13 23:25:47 +06:00
										 |  |  |         } for video_url in video_urls] | 
					
						
							|  |  |  |         self._sort_formats(formats) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         timestamp = video.get('date') | 
					
						
							|  |  |  |         if timestamp: | 
					
						
							|  |  |  |             # upload date is in CEST | 
					
						
							|  |  |  |             timestamp = parse_iso8601(timestamp + ' +0200', ' ') | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         thumbnails = [{ | 
					
						
							|  |  |  |             'url': self._proto_relative_url(thumbnail) | 
					
						
							|  |  |  |         } for thumbnail in video.get('thumbnails', [])] | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-03-04 00:09:40 +06:00
										 |  |  |         tags = [tag['title'] for tag in video.get('tags') or []] | 
					
						
							| 
									
										
										
										
											2015-08-10 19:27:16 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |         return { | 
					
						
							| 
									
										
										
										
											2015-08-13 23:40:20 +06:00
										 |  |  |             'id': video.get('id') or video_id, | 
					
						
							| 
									
										
										
										
											2015-08-13 23:25:47 +06:00
										 |  |  |             'title': title, | 
					
						
							|  |  |  |             'description': video.get('description'), | 
					
						
							| 
									
										
										
										
											2015-08-10 19:27:16 +02:00
										 |  |  |             'thumbnails': thumbnails, | 
					
						
							| 
									
										
										
										
											2015-08-13 23:25:47 +06:00
										 |  |  |             'uploader': video.get('user_name'), | 
					
						
							|  |  |  |             'uploader_id': video.get('user_id'), | 
					
						
							|  |  |  |             'timestamp': timestamp, | 
					
						
							|  |  |  |             'duration': int_or_none(video.get('length')), | 
					
						
							|  |  |  |             'age_limit': parse_age_limit(video.get('age_limit')), | 
					
						
							| 
									
										
										
										
											2015-08-10 19:27:16 +02:00
										 |  |  |             'tags': tags, | 
					
						
							| 
									
										
										
										
											2015-08-13 23:25:47 +06:00
										 |  |  |             'formats': formats, | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class IndavideoIE(InfoExtractor): | 
					
						
							| 
									
										
										
										
											2015-08-13 23:40:20 +06:00
										 |  |  |     _VALID_URL = r'https?://(?:.+?\.)?indavideo\.hu/video/(?P<id>[^/#?]+)' | 
					
						
							|  |  |  |     _TESTS = [{ | 
					
						
							| 
									
										
										
										
											2015-08-13 23:25:47 +06:00
										 |  |  |         'url': 'http://indavideo.hu/video/Vicces_cica_1', | 
					
						
							|  |  |  |         'md5': '8c82244ba85d2a2310275b318eb51eac', | 
					
						
							|  |  |  |         'info_dict': { | 
					
						
							|  |  |  |             'id': '1335611', | 
					
						
							|  |  |  |             'display_id': 'Vicces_cica_1', | 
					
						
							|  |  |  |             'ext': 'mp4', | 
					
						
							|  |  |  |             'title': 'Vicces cica', | 
					
						
							|  |  |  |             'description': 'Játszik a tablettel. :D', | 
					
						
							| 
									
										
										
										
											2017-01-02 20:08:07 +08:00
										 |  |  |             'thumbnail': r're:^https?://.*\.jpg$', | 
					
						
							| 
									
										
										
										
											2015-08-13 23:25:47 +06:00
										 |  |  |             'uploader': 'Jet_Pack', | 
					
						
							|  |  |  |             'uploader_id': '491217', | 
					
						
							|  |  |  |             'timestamp': 1390821212, | 
					
						
							|  |  |  |             'upload_date': '20140127', | 
					
						
							|  |  |  |             'duration': 7, | 
					
						
							|  |  |  |             'age_limit': 0, | 
					
						
							|  |  |  |             'tags': ['vicces', 'macska', 'cica', 'ügyes', 'nevetés', 'játszik', 'Cukiság', 'Jet_Pack'], | 
					
						
							|  |  |  |         }, | 
					
						
							| 
									
										
										
										
											2015-08-13 23:40:20 +06:00
										 |  |  |     }, { | 
					
						
							|  |  |  |         'url': 'http://index.indavideo.hu/video/2015_0728_beregszasz', | 
					
						
							|  |  |  |         'only_matching': True, | 
					
						
							|  |  |  |     }, { | 
					
						
							|  |  |  |         'url': 'http://auto.indavideo.hu/video/Sajat_utanfutoban_a_kis_tacsko', | 
					
						
							|  |  |  |         'only_matching': True, | 
					
						
							|  |  |  |     }, { | 
					
						
							|  |  |  |         'url': 'http://erotika.indavideo.hu/video/Amator_tini_punci', | 
					
						
							|  |  |  |         'only_matching': True, | 
					
						
							|  |  |  |     }, { | 
					
						
							|  |  |  |         'url': 'http://film.indavideo.hu/video/f_hrom_nagymamm_volt', | 
					
						
							|  |  |  |         'only_matching': True, | 
					
						
							|  |  |  |     }, { | 
					
						
							|  |  |  |         'url': 'http://palyazat.indavideo.hu/video/Embertelen_dal_Dodgem_egyuttes', | 
					
						
							|  |  |  |         'only_matching': True, | 
					
						
							|  |  |  |     }] | 
					
						
							| 
									
										
										
										
											2015-08-13 23:25:47 +06:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def _real_extract(self, url): | 
					
						
							|  |  |  |         display_id = self._match_id(url) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         webpage = self._download_webpage(url, display_id) | 
					
						
							|  |  |  |         embed_url = self._search_regex( | 
					
						
							|  |  |  |             r'<link[^>]+rel="video_src"[^>]+href="(.+?)"', webpage, 'embed url') | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         return { | 
					
						
							|  |  |  |             '_type': 'url_transparent', | 
					
						
							|  |  |  |             'ie_key': 'IndavideoEmbed', | 
					
						
							|  |  |  |             'url': embed_url, | 
					
						
							|  |  |  |             'display_id': display_id, | 
					
						
							| 
									
										
										
										
											2015-08-10 19:27:16 +02:00
										 |  |  |         } |