From fdfefa1b9c86ef58d943a26a157dc234c2df14d9 Mon Sep 17 00:00:00 2001 From: xavier Date: Fri, 24 Oct 2014 21:07:01 -0500 Subject: [PATCH] Made changes per phihag --- youtube_dl/__init__.py | 1 + youtube_dl/extractor/audiomack.py | 17 +++++++++-------- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/youtube_dl/__init__.py b/youtube_dl/__init__.py index 7f2b4dfcc..78cdf14df 100644 --- a/youtube_dl/__init__.py +++ b/youtube_dl/__init__.py @@ -79,6 +79,7 @@ 'Carlos Ramos', '5moufl', 'lenaten', + 'Xavier Beynon' ) __license__ = 'Public Domain' diff --git a/youtube_dl/extractor/audiomack.py b/youtube_dl/extractor/audiomack.py index 2ececa998..bdcc51235 100644 --- a/youtube_dl/extractor/audiomack.py +++ b/youtube_dl/extractor/audiomack.py @@ -1,9 +1,9 @@ -# Xavier Beynon 2014 # coding: utf-8 from __future__ import unicode_literals from .common import InfoExtractor from .soundcloud import SoundcloudIE +from ..utils import ExtractorError import datetime import time @@ -15,9 +15,9 @@ class AudiomackIE(InfoExtractor): #hosted on audiomack { 'url': 'http://www.audiomack.com/song/roosh-williams/extraordinary', - 'file': 'Roosh Williams - Extraordinary.mp3', 'info_dict': { + 'id' : 'roosh-williams/extraordinary', 'ext': 'mp3', 'title': 'Roosh Williams - Extraordinary' } @@ -39,13 +39,14 @@ class AudiomackIE(InfoExtractor): def _real_extract(self, url): #id is what follows /song/ in url, usually the uploader name + title - id = url[url.index("/song/")+5:] + id = self._match_id(url) #Call the api, which gives us a json doc with the real url inside - rightnow = int(time.mktime(datetime.datetime.now().timetuple())) - apiresponse = self._download_json("http://www.audiomack.com/api/music/url/song"+id+"?_="+str(rightnow), id) - if not url in apiresponse: - raise Exception("Unable to deduce api url of song") + rightnow = int(time.time()) + apiresponse = self._download_json("http://www.audiomack.com/api/music/url/song/"+id+"?_="+str(rightnow), id) + + if "url" not in apiresponse: + raise ExtractorError("Unable to deduce api url of song") realurl = apiresponse["url"] #Audiomack wraps a lot of soundcloud tracks in their branded wrapper @@ -60,7 +61,7 @@ def _real_extract(self, url): songtitle = self._html_search_regex(r'

.*(.*)

', page, "title") title = artist+" - "+songtitle return { - 'id': title, # ignore id, which is not useful in song name + 'id': id, # ignore id, which is not useful in song name 'title': title, 'url': realurl, 'ext': 'mp3'