diff options
Diffstat (limited to 'youtube_dl/extractor/mixcloud.py')
| -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': | 
