2013-01-31 19:47:41 +04:00
|
|
|
#!/usr/bin/env python
|
|
|
|
|
|
|
|
__all__ = ['mixcloud_download']
|
|
|
|
|
|
|
|
from ..common import *
|
|
|
|
|
2015-09-26 08:45:39 +03:00
|
|
|
def mixcloud_download(url, output_dir = '.', merge = True, info_only = False, **kwargs):
|
2015-10-12 22:18:56 +03:00
|
|
|
html = get_html(url, faker=True)
|
2013-01-31 19:47:41 +04:00
|
|
|
title = r1(r'<meta property="og:title" content="([^"]*)"', html)
|
2014-01-22 01:29:58 +04:00
|
|
|
preview_url = r1("m-preview=\"([^\"]+)\"", html)
|
2014-09-21 04:22:57 +04:00
|
|
|
|
2014-01-02 02:11:14 +04:00
|
|
|
url = re.sub(r'previews', r'c/originals', preview_url)
|
2013-01-31 19:47:41 +04:00
|
|
|
for i in range(10, 30):
|
|
|
|
url = re.sub(r'stream[^.]*', r'stream' + str(i), url)
|
2014-09-21 04:22:57 +04:00
|
|
|
|
2013-01-31 19:47:41 +04:00
|
|
|
try:
|
|
|
|
type, ext, size = url_info(url)
|
|
|
|
break
|
|
|
|
except:
|
|
|
|
continue
|
2014-09-21 04:22:57 +04:00
|
|
|
|
2013-05-04 02:07:04 +04:00
|
|
|
try:
|
|
|
|
type
|
|
|
|
except:
|
2014-01-02 02:11:14 +04:00
|
|
|
url = re.sub('c/originals', r'c/m4a/64', url)
|
2013-05-04 02:07:04 +04:00
|
|
|
url = re.sub('.mp3', '.m4a', url)
|
|
|
|
for i in range(10, 30):
|
|
|
|
url = re.sub(r'stream[^.]*', r'stream' + str(i), url)
|
2014-09-21 04:22:57 +04:00
|
|
|
|
2013-05-04 02:07:04 +04:00
|
|
|
try:
|
|
|
|
type, ext, size = url_info(url)
|
|
|
|
break
|
|
|
|
except:
|
|
|
|
continue
|
2014-09-21 04:22:57 +04:00
|
|
|
|
2013-01-31 19:47:41 +04:00
|
|
|
print_info(site_info, title, type, size)
|
|
|
|
if not info_only:
|
2013-02-11 23:07:42 +04:00
|
|
|
download_urls([url], title, ext, size, output_dir, merge = merge)
|
2013-01-31 19:47:41 +04:00
|
|
|
|
|
|
|
site_info = "Mixcloud.com"
|
|
|
|
download = mixcloud_download
|
|
|
|
download_playlist = playlist_not_supported('mixcloud')
|