projects
/
youtube-dl
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[crackle] Add support for sonycrackle.com (closes #16698)
[youtube-dl]
/
youtube_dl
/
extractor
/
mixcloud.py
diff --git
a/youtube_dl/extractor/mixcloud.py
b/youtube_dl/extractor/mixcloud.py
index 7b2bb6e20577929abb9097e2d05c13cfc141d4f9..b7bccb504529d7ca1e7f70ced45d86b9259d454b 100644
(file)
--- a/
youtube_dl/extractor/mixcloud.py
+++ b/
youtube_dl/extractor/mixcloud.py
@@
-1,12
+1,12
@@
from __future__ import unicode_literals
from __future__ import unicode_literals
-import base64
import functools
import itertools
import re
from .common import InfoExtractor
from ..compat import (
import functools
import itertools
import re
from .common import InfoExtractor
from ..compat import (
+ compat_b64decode,
compat_chr,
compat_ord,
compat_str,
compat_chr,
compat_ord,
compat_str,
@@
-79,7
+79,7
@@
class MixcloudIE(InfoExtractor):
if encrypted_play_info is not None:
# Decode
if encrypted_play_info is not None:
# Decode
- encrypted_play_info =
base64.
b64decode(encrypted_play_info)
+ encrypted_play_info =
compat_
b64decode(encrypted_play_info)
else:
# New path
full_info_json = self._parse_json(self._html_search_regex(
else:
# New path
full_info_json = self._parse_json(self._html_search_regex(
@@
-109,7
+109,7
@@
class MixcloudIE(InfoExtractor):
kpa_target = encrypted_play_info
else:
kps = ['https://', 'http://']
kpa_target = encrypted_play_info
else:
kps = ['https://', 'http://']
- kpa_target =
base64.
b64decode(info_json['streamInfo']['url'])
+ kpa_target =
compat_
b64decode(info_json['streamInfo']['url'])
for kp in kps:
partial_key = self._decrypt_xor_cipher(kpa_target, kp)
for quote in ["'", '"']:
for kp in kps:
partial_key = self._decrypt_xor_cipher(kpa_target, kp)
for quote in ["'", '"']:
@@
-165,7
+165,7
@@
class MixcloudIE(InfoExtractor):
format_url = stream_info.get(url_key)
if not format_url:
continue
format_url = stream_info.get(url_key)
if not format_url:
continue
- decrypted = self._decrypt_xor_cipher(key,
base64.
b64decode(format_url))
+ decrypted = self._decrypt_xor_cipher(key,
compat_
b64decode(format_url))
if not decrypted:
continue
if url_key == 'hlsUrl':
if not decrypted:
continue
if url_key == 'hlsUrl':
@@
-179,6
+179,10
@@
class MixcloudIE(InfoExtractor):
formats.append({
'format_id': 'http',
'url': decrypted,
formats.append({
'format_id': 'http',
'url': decrypted,
+ 'downloader_options': {
+ # Mixcloud starts throttling at >~5M
+ 'http_chunk_size': 5242880,
+ },
})
self._sort_formats(formats)
})
self._sort_formats(formats)