diff options
author | Remita Amine <remitamine@gmail.com> | 2018-11-21 23:19:46 +0100 |
---|---|---|
committer | Remita Amine <remitamine@gmail.com> | 2018-11-21 23:21:05 +0100 |
commit | 560020da3049bec19e5714e9e24fc90fadd06582 (patch) | |
tree | 12fba69734705e8e62ab8208b697cbdbe9fb6194 | |
parent | 305ce767d586e8796d873270abf771e69ff5586c (diff) |
[mixcloud] fallback to hardcoded decryption key(closes #18016)
-rw-r--r-- | youtube_dl/extractor/mixcloud.py | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/youtube_dl/extractor/mixcloud.py b/youtube_dl/extractor/mixcloud.py index b7bccb504..a2d19d3ef 100644 --- a/youtube_dl/extractor/mixcloud.py +++ b/youtube_dl/extractor/mixcloud.py @@ -161,11 +161,17 @@ class MixcloudIE(InfoExtractor): stream_info = info_json['streamInfo'] 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'): format_url = stream_info.get(url_key) if not format_url: continue - decrypted = self._decrypt_xor_cipher(key, compat_b64decode(format_url)) + decrypted = decrypt_url(format_url) if not decrypted: continue if url_key == 'hlsUrl': |