X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=youtube_dl%2Fextractor%2Fmixcloud.py;h=1831c6749401405c5a39ca60f4347df03bfe3631;hb=c84dd8a90dcc75547b343449b921b644a2119c4f;hp=162046fe6bb54d194543ce2f67cf69f2a461e201;hpb=b80505a40938444c6f7b0b80c445cc0726c39bb7;p=youtube-dl diff --git a/youtube_dl/extractor/mixcloud.py b/youtube_dl/extractor/mixcloud.py index 162046fe6..1831c6749 100644 --- a/youtube_dl/extractor/mixcloud.py +++ b/youtube_dl/extractor/mixcloud.py @@ -9,7 +9,6 @@ from ..compat import ( from ..utils import ( ExtractorError, HEADRequest, - int_or_none, str_to_int, parse_iso8601, ) @@ -19,7 +18,7 @@ class MixcloudIE(InfoExtractor): _VALID_URL = r'^(?:https?://)?(?:www\.)?mixcloud\.com/([^/]+)/([^/]+)' IE_NAME = 'mixcloud' - _TEST = { + _TESTS = [{ 'url': 'http://www.mixcloud.com/dholbach/cryptkeeper/', 'info_dict': { 'id': 'dholbach-cryptkeeper', @@ -34,7 +33,20 @@ class MixcloudIE(InfoExtractor): 'view_count': int, 'like_count': int, }, - } + }, { + 'url': 'http://www.mixcloud.com/gillespeterson/caribou-7-inch-vinyl-mix-chat/', + 'info_dict': { + 'id': 'gillespeterson-caribou-7-inch-vinyl-mix-chat', + 'ext': 'm4a', + 'title': 'Electric Relaxation vol. 3', + 'description': 'md5:2b8aec6adce69f9d41724647c65875e8', + 'uploader': 'Daniel Drumz', + 'uploader_id': 'gillespeterson', + 'thumbnail': 're:https?://.*\.jpg', + 'view_count': int, + 'like_count': int, + }, + }] def _get_url(self, track_id, template_url): server_count = 30 @@ -61,7 +73,7 @@ class MixcloudIE(InfoExtractor): webpage = self._download_webpage(url, track_id) preview_url = self._search_regex( - r'\s(?:data-preview-url|m-preview)="(.+?)"', webpage, 'preview url') + r'\s(?:data-preview-url|m-preview)="([^"]+)"', webpage, 'preview url') song_url = preview_url.replace('/previews/', '/c/originals/') template_url = re.sub(r'(stream\d*)', 'stream%d', song_url) final_song_url = self._get_url(track_id, template_url)