| 
									
										
										
										
											2014-06-09 22:30:57 +02:00
										 |  |  | from __future__ import unicode_literals | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-06-23 22:29:27 +02:00
										 |  |  | from .common import InfoExtractor | 
					
						
							| 
									
										
										
										
											2019-03-11 09:43:06 +01:00
										 |  |  | from ..utils import int_or_none | 
					
						
							| 
									
										
										
										
											2013-06-23 22:29:27 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class HypemIE(InfoExtractor): | 
					
						
							| 
									
										
										
										
											2019-03-11 09:43:06 +01:00
										 |  |  |     _VALID_URL = r'https?://(?:www\.)?hypem\.com/track/(?P<id>[0-9a-z]{5})' | 
					
						
							| 
									
										
										
										
											2013-06-27 20:46:46 +02:00
										 |  |  |     _TEST = { | 
					
						
							| 
									
										
										
										
											2014-06-09 22:30:57 +02:00
										 |  |  |         'url': 'http://hypem.com/track/1v6ga/BODYWORK+-+TAME', | 
					
						
							|  |  |  |         'md5': 'b9cc91b5af8995e9f0c1cee04c575828', | 
					
						
							|  |  |  |         'info_dict': { | 
					
						
							|  |  |  |             'id': '1v6ga', | 
					
						
							|  |  |  |             'ext': 'mp3', | 
					
						
							|  |  |  |             'title': 'Tame', | 
					
						
							|  |  |  |             'uploader': 'BODYWORK', | 
					
						
							| 
									
										
										
										
											2019-03-11 09:43:06 +01:00
										 |  |  |             'timestamp': 1371810457, | 
					
						
							|  |  |  |             'upload_date': '20130621', | 
					
						
							| 
									
										
										
										
											2013-06-27 20:46:46 +02:00
										 |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2013-06-23 22:29:27 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def _real_extract(self, url): | 
					
						
							| 
									
										
										
										
											2014-12-13 12:24:42 +01:00
										 |  |  |         track_id = self._match_id(url) | 
					
						
							| 
									
										
										
										
											2013-06-23 22:29:27 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-03-11 09:43:06 +01:00
										 |  |  |         response = self._download_webpage(url, track_id) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         track = self._parse_json(self._html_search_regex( | 
					
						
							|  |  |  |             r'(?s)<script\s+type="application/json"\s+id="displayList-data">(.+?)</script>', | 
					
						
							|  |  |  |             response, 'tracks'), track_id)['tracks'][0] | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-09 22:30:57 +02:00
										 |  |  |         track_id = track['id'] | 
					
						
							|  |  |  |         title = track['song'] | 
					
						
							| 
									
										
										
										
											2013-06-23 22:29:27 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-03-11 09:43:06 +01:00
										 |  |  |         final_url = self._download_json( | 
					
						
							|  |  |  |             'http://hypem.com/serve/source/%s/%s' % (track_id, track['key']), | 
					
						
							|  |  |  |             track_id, 'Downloading metadata', headers={ | 
					
						
							|  |  |  |                 'Content-Type': 'application/json' | 
					
						
							|  |  |  |             })['url'] | 
					
						
							| 
									
										
										
										
											2013-06-23 22:29:27 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-09 22:30:57 +02:00
										 |  |  |         return { | 
					
						
							|  |  |  |             'id': track_id, | 
					
						
							|  |  |  |             'url': final_url, | 
					
						
							|  |  |  |             'ext': 'mp3', | 
					
						
							|  |  |  |             'title': title, | 
					
						
							| 
									
										
										
										
											2019-03-11 09:43:06 +01:00
										 |  |  |             'uploader': track.get('artist'), | 
					
						
							|  |  |  |             'duration': int_or_none(track.get('time')), | 
					
						
							|  |  |  |             'timestamp': int_or_none(track.get('ts')), | 
					
						
							|  |  |  |             'track': title, | 
					
						
							| 
									
										
										
										
											2014-06-09 22:30:57 +02:00
										 |  |  |         } |