|
@ -64,7 +64,7 @@ class YoutubeBaseInfoExtractor(InfoExtractor): |
|
|
# If True it will raise an error if no login info is provided |
|
|
# If True it will raise an error if no login info is provided |
|
|
_LOGIN_REQUIRED = False |
|
|
_LOGIN_REQUIRED = False |
|
|
|
|
|
|
|
|
_PLAYLIST_ID_RE = r'(?:PL|LL|EC|UU|FL|RD|UL|TL)[0-9A-Za-z-_]{10,}' |
|
|
|
|
|
|
|
|
_PLAYLIST_ID_RE = r'(?:PL|LL|EC|UU|FL|RD|UL|TL|OLAK5uy_)[0-9A-Za-z-_]{10,}' |
|
|
|
|
|
|
|
|
def _set_language(self): |
|
|
def _set_language(self): |
|
|
self._set_cookie( |
|
|
self._set_cookie( |
|
@ -2123,7 +2123,7 @@ class YoutubePlaylistIE(YoutubePlaylistBaseInfoExtractor): |
|
|
youtu\.be/[0-9A-Za-z_-]{11}\?.*?\blist= |
|
|
youtu\.be/[0-9A-Za-z_-]{11}\?.*?\blist= |
|
|
) |
|
|
) |
|
|
( |
|
|
( |
|
|
(?:PL|LL|EC|UU|FL|RD|UL|TL)?[0-9A-Za-z-_]{10,} |
|
|
|
|
|
|
|
|
(?:PL|LL|EC|UU|FL|RD|UL|TL|OLAK5uy_)?[0-9A-Za-z-_]{10,} |
|
|
# Top tracks, they can also include dots |
|
|
# Top tracks, they can also include dots |
|
|
|(?:MC)[\w\.]* |
|
|
|(?:MC)[\w\.]* |
|
|
) |
|
|
) |
|
@ -2261,6 +2261,10 @@ class YoutubePlaylistIE(YoutubePlaylistBaseInfoExtractor): |
|
|
}, { |
|
|
}, { |
|
|
'url': 'TLGGrESM50VT6acwMjAyMjAxNw', |
|
|
'url': 'TLGGrESM50VT6acwMjAyMjAxNw', |
|
|
'only_matching': True, |
|
|
'only_matching': True, |
|
|
|
|
|
}, { |
|
|
|
|
|
# music album playlist |
|
|
|
|
|
'url': 'OLAK5uy_m4xAFdmMC5rX3Ji3g93pQe3hqLZw_9LhM', |
|
|
|
|
|
'only_matching': True, |
|
|
}] |
|
|
}] |
|
|
|
|
|
|
|
|
def _real_initialize(self): |
|
|
def _real_initialize(self): |
|
|