| 
									
										
										
										
											2014-09-06 15:21:27 +07:00
										 |  |  | from __future__ import unicode_literals | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-08-22 13:19:35 +02:00
										 |  |  | import re | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | from .common import InfoExtractor | 
					
						
							| 
									
										
										
										
											2014-09-06 15:21:27 +07:00
										 |  |  | from ..utils import qualities | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-08-22 13:19:35 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | class UnistraIE(InfoExtractor): | 
					
						
							| 
									
										
										
										
											2014-09-06 15:21:27 +07:00
										 |  |  |     _VALID_URL = r'http://utv\.unistra\.fr/(?:index|video)\.php\?id_video\=(?P<id>\d+)' | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     _TESTS = [ | 
					
						
							|  |  |  |         { | 
					
						
							|  |  |  |             'url': 'http://utv.unistra.fr/video.php?id_video=154', | 
					
						
							|  |  |  |             'md5': '736f605cfdc96724d55bb543ab3ced24', | 
					
						
							|  |  |  |             'info_dict': { | 
					
						
							|  |  |  |                 'id': '154', | 
					
						
							|  |  |  |                 'ext': 'mp4', | 
					
						
							|  |  |  |                 'title': 'M!ss Yella', | 
					
						
							|  |  |  |                 'description': 'md5:104892c71bd48e55d70b902736b81bbf', | 
					
						
							|  |  |  |             }, | 
					
						
							| 
									
										
										
										
											2013-08-22 13:19:35 +02:00
										 |  |  |         }, | 
					
						
							| 
									
										
										
										
											2014-09-06 15:21:27 +07:00
										 |  |  |         { | 
					
						
							|  |  |  |             'url': 'http://utv.unistra.fr/index.php?id_video=437', | 
					
						
							|  |  |  |             'md5': '1ddddd6cccaae76f622ce29b8779636d', | 
					
						
							|  |  |  |             'info_dict': { | 
					
						
							|  |  |  |                 'id': '437', | 
					
						
							|  |  |  |                 'ext': 'mp4', | 
					
						
							|  |  |  |                 'title': 'Prix Louise Weiss 2014', | 
					
						
							|  |  |  |                 'description': 'md5:cc3a8735f079f4fb6b0b570fc10c135a', | 
					
						
							|  |  |  |             }, | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     ] | 
					
						
							| 
									
										
										
										
											2013-08-22 13:19:35 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def _real_extract(self, url): | 
					
						
							| 
									
										
										
										
											2014-09-06 15:21:27 +07:00
										 |  |  |         mobj = re.match(self._VALID_URL, url) | 
					
						
							|  |  |  |         video_id = mobj.group('id') | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-09-04 22:18:17 +02:00
										 |  |  |         webpage = self._download_webpage(url, video_id) | 
					
						
							| 
									
										
										
										
											2014-09-06 15:21:27 +07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-01-14 21:53:24 +06:00
										 |  |  |         files = set(re.findall(r'file\s*:\s*"(/[^"]+)"', webpage)) | 
					
						
							| 
									
										
										
										
											2014-09-06 15:21:27 +07:00
										 |  |  | 
 | 
					
						
							|  |  |  |         quality = qualities(['SD', 'HD']) | 
					
						
							|  |  |  |         formats = [] | 
					
						
							|  |  |  |         for file_path in files: | 
					
						
							|  |  |  |             format_id = 'HD' if file_path.endswith('-HD.mp4') else 'SD' | 
					
						
							| 
									
										
										
										
											2014-09-04 22:18:17 +02:00
										 |  |  |             formats.append({ | 
					
						
							| 
									
										
										
										
											2014-09-06 15:21:27 +07:00
										 |  |  |                 'url': 'http://vod-flash.u-strasbg.fr:8080%s' % file_path, | 
					
						
							|  |  |  |                 'format_id': format_id, | 
					
						
							|  |  |  |                 'quality': quality(format_id) | 
					
						
							| 
									
										
										
										
											2014-09-04 22:18:17 +02:00
										 |  |  |             }) | 
					
						
							| 
									
										
										
										
											2014-09-06 15:21:27 +07:00
										 |  |  | 
 | 
					
						
							|  |  |  |         title = self._html_search_regex( | 
					
						
							|  |  |  |             r'<title>UTV - (.*?)</', webpage, 'title') | 
					
						
							|  |  |  |         description = self._html_search_regex( | 
					
						
							|  |  |  |             r'<meta name="Description" content="(.*?)"', webpage, 'description', flags=re.DOTALL) | 
					
						
							|  |  |  |         thumbnail = self._search_regex( | 
					
						
							|  |  |  |             r'image: "(.*?)"', webpage, 'thumbnail') | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         return { | 
					
						
							|  |  |  |             'id': video_id, | 
					
						
							|  |  |  |             'title': title, | 
					
						
							|  |  |  |             'description': description, | 
					
						
							|  |  |  |             'thumbnail': thumbnail, | 
					
						
							|  |  |  |             'formats': formats | 
					
						
							|  |  |  |         } |