projects
/
youtube-dl
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
0e6ec3c
)
[soundcloud] add support for token protected embeds(#18954)
author
Remita Amine
<remitamine@gmail.com>
Mon, 9 Dec 2019 13:38:12 +0000
(14:38 +0100)
committer
Remita Amine
<remitamine@gmail.com>
Mon, 9 Dec 2019 13:38:12 +0000
(14:38 +0100)
youtube_dl/extractor/soundcloud.py
patch
|
blob
|
history
diff --git
a/youtube_dl/extractor/soundcloud.py
b/youtube_dl/extractor/soundcloud.py
index 988dec4fabaf3535ef9872281447abf4aabf3d99..c2ee54457e90909fea418f38320d9e5480ccc379 100644
(file)
--- a/
youtube_dl/extractor/soundcloud.py
+++ b/
youtube_dl/extractor/soundcloud.py
@@
-28,7
+28,12
@@
from ..utils import (
class SoundcloudEmbedIE(InfoExtractor):
class SoundcloudEmbedIE(InfoExtractor):
- _VALID_URL = r'https?://(?:w|player|p)\.soundcloud\.com/player/?.*?url=(?P<id>.*)'
+ _VALID_URL = r'https?://(?:w|player|p)\.soundcloud\.com/player/?.*?\burl=(?P<id>.+)'
+ _TEST = {
+ # from https://www.soundi.fi/uutiset/ennakkokuuntelussa-timo-kaukolammen-station-to-station-to-station-julkaisua-juhlitaan-tanaan-g-livelabissa/
+ 'url': 'https://w.soundcloud.com/player/?visual=true&url=https%3A%2F%2Fapi.soundcloud.com%2Fplaylists%2F922213810&show_artwork=true&maxwidth=640&maxheight=960&dnt=1&secret_token=s-ziYey',
+ 'only_matching': True,
+ }
@staticmethod
def _extract_urls(webpage):
@staticmethod
def _extract_urls(webpage):
@@
-37,8
+42,13
@@
class SoundcloudEmbedIE(InfoExtractor):
webpage)]
def _real_extract(self, url):
webpage)]
def _real_extract(self, url):
- return self.url_result(compat_urlparse.parse_qs(
- compat_urlparse.urlparse(url).query)['url'][0])
+ query = compat_urlparse.parse_qs(
+ compat_urlparse.urlparse(url).query)
+ api_url = query['url'][0]
+ secret_token = query.get('secret_token')
+ if secret_token:
+ api_url = update_url_query(api_url, {'secret_token': secret_token[0]})
+ return self.url_result(api_url)
class SoundcloudIE(InfoExtractor):
class SoundcloudIE(InfoExtractor):