projects
/
youtube-dl
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[vevo:playlist] Fix genre playlists
[youtube-dl]
/
youtube_dl
/
extractor
/
vevo.py
diff --git
a/youtube_dl/extractor/vevo.py
b/youtube_dl/extractor/vevo.py
index 8431077ad4647f6ba315d613baf7934179ed878f..2d1ff05e1c8fac70b803b34ec7e900fe74dd5ae8 100644
(file)
--- a/
youtube_dl/extractor/vevo.py
+++ b/
youtube_dl/extractor/vevo.py
@@
-307,7
+307,7
@@
class VevoIE(InfoExtractor):
class VevoPlaylistIE(InfoExtractor):
class VevoPlaylistIE(InfoExtractor):
- _VALID_URL = r'https?://www\.vevo\.com/watch/(?
:
playlist|genre)/(?P<id>[^/?#&]+)'
+ _VALID_URL = r'https?://www\.vevo\.com/watch/(?
P<kind>
playlist|genre)/(?P<id>[^/?#&]+)'
_TESTS = [{
'url': 'http://www.vevo.com/watch/playlist/dadbf4e7-b99f-4184-9670-6f0e547b6a29',
_TESTS = [{
'url': 'http://www.vevo.com/watch/playlist/dadbf4e7-b99f-4184-9670-6f0e547b6a29',
@@
-316,6
+316,13
@@
class VevoPlaylistIE(InfoExtractor):
'title': 'Best-Of: Birdman',
},
'playlist_count': 10,
'title': 'Best-Of: Birdman',
},
'playlist_count': 10,
+ }, {
+ 'url': 'http://www.vevo.com/watch/genre/rock',
+ 'info_dict': {
+ 'id': 'rock',
+ 'title': 'Rock',
+ },
+ 'playlist_count': 20,
}, {
'url': 'http://www.vevo.com/watch/playlist/dadbf4e7-b99f-4184-9670-6f0e547b6a29?index=0',
'md5': '32dcdfddddf9ec6917fc88ca26d36282',
}, {
'url': 'http://www.vevo.com/watch/playlist/dadbf4e7-b99f-4184-9670-6f0e547b6a29?index=0',
'md5': '32dcdfddddf9ec6917fc88ca26d36282',
@@
-334,7
+341,9
@@
class VevoPlaylistIE(InfoExtractor):
}]
def _real_extract(self, url):
}]
def _real_extract(self, url):
- playlist_id = self._match_id(url)
+ mobj = re.match(self._VALID_URL, url)
+ playlist_id = mobj.group('id')
+ playlist_kind = mobj.group('kind')
webpage = self._download_webpage(url, playlist_id)
webpage = self._download_webpage(url, playlist_id)
@@
-352,9
+361,10
@@
class VevoPlaylistIE(InfoExtractor):
self._search_regex(
r'window\.__INITIAL_STORE__\s*=\s*({.+?});\s*</script>',
webpage, 'initial store'),
self._search_regex(
r'window\.__INITIAL_STORE__\s*=\s*({.+?});\s*</script>',
webpage, 'initial store'),
- playlist_id)['default']['
playlists'
]
+ playlist_id)['default']['
%ss' % playlist_kind
]
- playlist = list(playlists.values())[0]
+ playlist = (list(playlists.values())[0]
+ if playlist_kind == 'playlist' else playlists[playlist_id])
entries = [
self.url_result('vevo:%s' % src, VevoIE.ie_key())
entries = [
self.url_result('vevo:%s' % src, VevoIE.ie_key())