diff options
| -rw-r--r-- | youtube_dl/extractor/audiomack.py | 40 | 
1 files changed, 21 insertions, 19 deletions
diff --git a/youtube_dl/extractor/audiomack.py b/youtube_dl/extractor/audiomack.py index 2f32253af..57446fddd 100644 --- a/youtube_dl/extractor/audiomack.py +++ b/youtube_dl/extractor/audiomack.py @@ -38,30 +38,32 @@ class AudiomackIE(InfoExtractor):      ]      def _real_extract(self, url): -        #id is what follows /song/ in url, usually the uploader name + title -        id = self._match_id(url) +        video_id = self._match_id(url) -        #Call the api, which gives us a json doc with the real url inside -        rightnow = int(time.time()) -        apiresponse = self._download_json("http://www.audiomack.com/api/music/url/song/"+id+"?_="+str(rightnow), id) +        api_response = self._download_json( +            "http://www.audiomack.com/api/music/url/song/%s?_=%d" % ( +                video_id, time.time()), +            video_id) -        if "url" not in apiresponse: +        if "url" not in api_response:              raise ExtractorError("Unable to deduce api url of song") -        realurl = apiresponse["url"] +        realurl = api_response["url"]          #Audiomack wraps a lot of soundcloud tracks in their branded wrapper          # - if so, pass the work off to the soundcloud extractor          if SoundcloudIE.suitable(realurl):              return {'_type': 'url', 'url': realurl, 'ie_key': 'Soundcloud'} -        else: -            #Pull out metadata -            page = self._download_webpage(url, id) -            artist = self._html_search_regex(r'<span class="artist">(.*)</span>', page, "artist") -            songtitle = self._html_search_regex(r'<h1 class="profile-title song-title"><span class="artist">.*</span>(.*)</h1>', page, "title") -            title = artist+" - "+songtitle -            return { -                'id': id,  # ignore id, which is not useful in song name -                'title': title, -                'url': realurl, -                'ext': 'mp3' -            } + +        webpage = self._download_webpage(url, video_id) +        artist = self._html_search_regex( +            r'<span class="artist">(.*?)</span>', webpage, "artist") +        songtitle = self._html_search_regex( +            r'<h1 class="profile-title song-title"><span class="artist">.*?</span>(.*?)</h1>', +            webpage, "title") +        title = artist + " - " + songtitle + +        return { +            'id': video_id, +            'title': title, +            'url': realurl, +        }  | 
