projects
/
youtube-dl
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
release 2020.09.14
[youtube-dl]
/
youtube_dl
/
extractor
/
deezer.py
diff --git
a/youtube_dl/extractor/deezer.py
b/youtube_dl/extractor/deezer.py
index 62c181529157cef23b47e0bcc55287c1beb3291f..a38b2683d5932fa55089bc6bc610d1795c5bc07d 100644
(file)
--- a/
youtube_dl/extractor/deezer.py
+++ b/
youtube_dl/extractor/deezer.py
@@
-5,6
+5,7
@@
import re
from .common import InfoExtractor
from ..utils import (
from .common import InfoExtractor
from ..utils import (
+ ExtractorError,
int_or_none,
orderedSet,
)
int_or_none,
orderedSet,
)
@@
-18,9
+19,10
@@
class DeezerPlaylistIE(InfoExtractor):
'id': '176747451',
'title': 'Best!',
'uploader': 'Anonymous',
'id': '176747451',
'title': 'Best!',
'uploader': 'Anonymous',
- 'thumbnail':
're:^https?://cdn-images.deezer
.com/images/cover/.*\.jpg$',
+ 'thumbnail':
r're:^https?://cdn-images\.deezer\
.com/images/cover/.*\.jpg$',
},
'playlist_count': 30,
},
'playlist_count': 30,
+ 'skip': 'Only available in .de',
}
def _real_extract(self, url):
}
def _real_extract(self, url):
@@
-31,8
+33,17
@@
class DeezerPlaylistIE(InfoExtractor):
playlist_id = mobj.group('id')
webpage = self._download_webpage(url, playlist_id)
playlist_id = mobj.group('id')
webpage = self._download_webpage(url, playlist_id)
+ geoblocking_msg = self._html_search_regex(
+ r'<p class="soon-txt">(.*?)</p>', webpage, 'geoblocking message',
+ default=None)
+ if geoblocking_msg is not None:
+ raise ExtractorError(
+ 'Deezer said: %s' % geoblocking_msg, expected=True)
+
data_json = self._search_regex(
data_json = self._search_regex(
- r'naboo\.display\(\'[^\']+\',\s*(.*?)\);\n', webpage, 'data JSON')
+ (r'__DZR_APP_STATE__\s*=\s*({.+?})\s*</script>',
+ r'naboo\.display\(\'[^\']+\',\s*(.*?)\);\n'),
+ webpage, 'data JSON')
data = json.loads(data_json)
playlist_title = data.get('DATA', {}).get('TITLE')
data = json.loads(data_json)
playlist_title = data.get('DATA', {}).get('TITLE')