diff options
Diffstat (limited to 'youtube_dl/extractor/zingmp3.py')
| -rw-r--r-- | youtube_dl/extractor/zingmp3.py | 21 | 
1 files changed, 17 insertions, 4 deletions
diff --git a/youtube_dl/extractor/zingmp3.py b/youtube_dl/extractor/zingmp3.py index 1afbe68ed..437eecb67 100644 --- a/youtube_dl/extractor/zingmp3.py +++ b/youtube_dl/extractor/zingmp3.py @@ -4,12 +4,20 @@ from __future__ import unicode_literals  import re  from .common import InfoExtractor +from ..utils import ExtractorError  class ZingMp3BaseInfoExtractor(InfoExtractor): -    @staticmethod -    def _extract_item(item): +    def _extract_item(self, item, fatal=True): +        error_message = item.find('./errormessage').text +        if error_message: +            if not fatal: +                return +            raise ExtractorError( +                '%s returned error: %s' % (self.IE_NAME, error_message), +                expected=True) +          title = item.find('./title').text.strip()          source = item.find('./source').text          extension = item.attrib['type'] @@ -37,7 +45,9 @@ class ZingMp3BaseInfoExtractor(InfoExtractor):              entries = []              for i, item in enumerate(items, 1): -                entry = self._extract_item(item) +                entry = self._extract_item(item, fatal=False) +                if not entry: +                    continue                  entry['id'] = '%s-%d' % (id, i)                  entries.append(entry) @@ -79,7 +89,7 @@ class ZingMp3SongIE(ZingMp3BaseInfoExtractor):  class ZingMp3AlbumIE(ZingMp3BaseInfoExtractor): -    _VALID_URL = r'https?://mp3\.zing\.vn/album/(?P<slug>[^/]+)/(?P<album_id>\w+)\.html' +    _VALID_URL = r'https?://mp3\.zing\.vn/(?:album|playlist)/(?P<slug>[^/]+)/(?P<album_id>\w+)\.html'      _TESTS = [{          'url': 'http://mp3.zing.vn/album/Lau-Dai-Tinh-Ai-Bang-Kieu-Minh-Tuyet/ZWZBWDAF.html',          'info_dict': { @@ -88,6 +98,9 @@ class ZingMp3AlbumIE(ZingMp3BaseInfoExtractor):              'title': 'Lâu Đài Tình Ái - Bằng Kiều ft. Minh Tuyết | Album 320 lossless',          },          'playlist_count': 10, +    }, { +        'url': 'http://mp3.zing.vn/playlist/Duong-Hong-Loan-apollobee/IWCAACCB.html', +        'only_matching': True,      }]      IE_NAME = 'zingmp3:album'      IE_DESC = 'mp3.zing.vn albums'  | 
