|
@ -161,11 +161,17 @@ class MixcloudIE(InfoExtractor): |
|
|
stream_info = info_json['streamInfo'] |
|
|
stream_info = info_json['streamInfo'] |
|
|
formats = [] |
|
|
formats = [] |
|
|
|
|
|
|
|
|
|
|
|
def decrypt_url(f_url): |
|
|
|
|
|
for k in (key, 'IFYOUWANTTHEARTISTSTOGETPAIDDONOTDOWNLOADFROMMIXCLOUD'): |
|
|
|
|
|
decrypted_url = self._decrypt_xor_cipher(k, compat_b64decode(f_url)) |
|
|
|
|
|
if re.search(r'^https?://[0-9a-z.]+/[0-9A-Za-z/.?=&_-]+$', decrypted_url): |
|
|
|
|
|
return decrypted_url |
|
|
|
|
|
|
|
|
for url_key in ('url', 'hlsUrl', 'dashUrl'): |
|
|
for url_key in ('url', 'hlsUrl', 'dashUrl'): |
|
|
format_url = stream_info.get(url_key) |
|
|
format_url = stream_info.get(url_key) |
|
|
if not format_url: |
|
|
if not format_url: |
|
|
continue |
|
|
continue |
|
|
decrypted = self._decrypt_xor_cipher(key, compat_b64decode(format_url)) |
|
|
|
|
|
|
|
|
decrypted = decrypt_url(format_url) |
|
|
if not decrypted: |
|
|
if not decrypted: |
|
|
continue |
|
|
continue |
|
|
if url_key == 'hlsUrl': |
|
|
if url_key == 'hlsUrl': |
|
|