]>
Raphaƫl G. Git Repositories - youtubedl/blob - youtube_dl/extractor/hypem.py
   1 from __future__ 
import unicode_literals
 
   6 from .common 
import InfoExtractor
 
  16 class HypemIE(InfoExtractor
): 
  17     _VALID_URL 
= r
'http://(?:www\.)?hypem\.com/track/(?P<id>[^/]+)/' 
  19         'url': 'http://hypem.com/track/1v6ga/BODYWORK+-+TAME', 
  20         'md5': 'b9cc91b5af8995e9f0c1cee04c575828', 
  25             'uploader': 'BODYWORK', 
  29     def _real_extract(self
, url
): 
  30         track_id 
= self
._match
_id
(url
) 
  32         data 
= {'ax': 1, 'ts': time
.time()} 
  33         data_encoded 
= compat_urllib_parse
.urlencode(data
) 
  34         complete_url 
= url 
+ "?" + data_encoded
 
  35         request 
= compat_urllib_request
.Request(complete_url
) 
  36         response
, urlh 
= self
._download
_webpage
_handle
( 
  37             request
, track_id
, 'Downloading webpage with the url') 
  38         cookie 
= urlh
.headers
.get('Set-Cookie', '') 
  40         html_tracks 
= self
._html
_search
_regex
( 
  41             r
'(?ms)<script type="application/json" id="displayList-data">\s*(.*?)\s*</script>', 
  44             track_list 
= json
.loads(html_tracks
) 
  45             track 
= track_list
['tracks'][0] 
  47             raise ExtractorError('Hypemachine contained invalid JSON.') 
  50         track_id 
= track
['id'] 
  51         artist 
= track
['artist'] 
  54         serve_url 
= "http://hypem.com/serve/source/%s/%s" % (track_id
, key
) 
  55         request 
= compat_urllib_request
.Request( 
  56             serve_url
, '', {'Content-Type': 'application/json'}) 
  57         request
.add_header('cookie', cookie
) 
  58         song_data 
= self
._download
_json
(request
, track_id
, 'Downloading metadata') 
  59         final_url 
= song_data
["url"]