diff options
| author | Yen Chi Hsuan <yan12125@gmail.com> | 2015-04-28 23:07:56 +0800 | 
|---|---|---|
| committer | Yen Chi Hsuan <yan12125@gmail.com> | 2015-04-28 23:07:56 +0800 | 
| commit | 39b62db1160f5a4770348f1d01daeb0ce049c28c (patch) | |
| tree | 838677e72fd4147687f3355d1c9677755b1d2c82 | |
| parent | 2edce52584ecd14ee626c6a1b6bbaeabb3985cc0 (diff) | |
[youtube] Catch more alert messages (closes #5074)
| -rw-r--r-- | youtube_dl/extractor/youtube.py | 22 | 
1 files changed, 16 insertions, 6 deletions
| diff --git a/youtube_dl/extractor/youtube.py b/youtube_dl/extractor/youtube.py index 07c0f6ef9..0869c9fd4 100644 --- a/youtube_dl/extractor/youtube.py +++ b/youtube_dl/extractor/youtube.py @@ -1291,12 +1291,22 @@ class YoutubePlaylistIE(YoutubeBaseInfoExtractor):          page = self._download_webpage(url, playlist_id)          more_widget_html = content_html = page -        # Check if the playlist exists or is private -        if re.search(r'<div class="yt-alert-message">[^<]*?(The|This) playlist (does not exist|is private)[^<]*?</div>', page) is not None: -            raise ExtractorError( -                'The playlist doesn\'t exist or is private, use --username or ' -                '--netrc to access it.', -                expected=True) +        for match in re.findall(r'<div class="yt-alert-message">([^<]+)</div>', page): +            match = match.strip() +            # Check if the playlist exists or is private +            if re.match(r'[^<]*(The|This) playlist (does not exist|is private)[^<]*', match): +                raise ExtractorError( +                    'The playlist doesn\'t exist or is private, use --username or ' +                    '--netrc to access it.', +                    expected=True) +            elif re.match(r'[^<]*Invalid parameters[^<]*', match): +                raise ExtractorError( +                    'Invalid parameters. Maybe URL is incorrect.', +                    expected=True) +            elif re.match(r'[^<]*Choose your language[^<]*', match): +                continue +            else: +                self.report_warning('Youtube gives an alert message: ' + match)          # Extract the video ids from the playlist pages          ids = [] | 
