X-Git-Url: http://git.cielonegro.org/gitweb.cgi?a=blobdiff_plain;f=youtube_dl%2Fextractor%2Fkuwo.py;h=f641edef8ada91cf1a4b458f388f7f51ce56fb3f;hb=58be922079a09bc56ff331864b094ba38beaf26e;hp=a021f3cdf49b02bc88afbf05412f255885d74f49;hpb=094790d2c963ef7ee9f5861e0458174ddd15ed87;p=youtube-dl.git diff --git a/youtube_dl/extractor/kuwo.py b/youtube_dl/extractor/kuwo.py index a021f3cdf..f641edef8 100644 --- a/youtube_dl/extractor/kuwo.py +++ b/youtube_dl/extractor/kuwo.py @@ -31,6 +31,10 @@ class KuwoBaseIE(InfoExtractor): (file_format['ext'], file_format.get('br', ''), song_id), song_id, note='Download %s url info' % file_format['format'], ) + + if song_url == 'IPDeny': + raise ExtractorError('This song is blocked in this region', expected=True) + if song_url.startswith('http://') or song_url.startswith('https://'): formats.append({ 'url': song_url, @@ -45,6 +49,7 @@ class KuwoBaseIE(InfoExtractor): class KuwoIE(KuwoBaseIE): IE_NAME = 'kuwo:song' + IE_DESC = '酷我音乐' _VALID_URL = r'http://www\.kuwo\.cn/yinyue/(?P\d+?)/' _TESTS = [{ 'url': 'http://www.kuwo.cn/yinyue/635632/', @@ -56,6 +61,7 @@ class KuwoIE(KuwoBaseIE): 'upload_date': '20080122', 'description': 'md5:ed13f58e3c3bf3f7fd9fbc4e5a7aa75c' }, + 'skip': 'this song has been offline because of copyright issues', }, { 'url': 'http://www.kuwo.cn/yinyue/6446136/', 'info_dict': { @@ -75,9 +81,11 @@ class KuwoIE(KuwoBaseIE): webpage = self._download_webpage( url, song_id, note='Download song detail info', errnote='Unable to get song detail info') + if '对不起,该歌曲由于版权问题已被下线,将返回网站首页' in webpage: + raise ExtractorError('this song has been offline because of copyright issues', expected=True) song_name = self._html_search_regex( - r']+title="([^"]+)">', webpage, 'song name') + r'(?s)class="(?:[^"\s]+\s+)*title(?:\s+[^"\s]+)*".*?]+title="([^"]+)"', webpage, 'song name') singer_name = self._html_search_regex( r']+class="s_img">\s*]+title="([^>]+)"', webpage, 'singer name', fatal=False) @@ -116,6 +124,7 @@ class KuwoIE(KuwoBaseIE): class KuwoAlbumIE(InfoExtractor): IE_NAME = 'kuwo:album' + IE_DESC = '酷我音乐 - 专辑' _VALID_URL = r'http://www\.kuwo\.cn/album/(?P\d+?)/' _TEST = { 'url': 'http://www.kuwo.cn/album/502294/', @@ -151,6 +160,7 @@ class KuwoAlbumIE(InfoExtractor): class KuwoChartIE(InfoExtractor): IE_NAME = 'kuwo:chart' + IE_DESC = '酷我音乐 - 排行榜' _VALID_URL = r'http://yinyue\.kuwo\.cn/billboard_(?P[^.]+).htm' _TEST = { 'url': 'http://yinyue.kuwo.cn/billboard_香港中文龙虎榜.htm', @@ -183,6 +193,7 @@ class KuwoChartIE(InfoExtractor): class KuwoSingerIE(InfoExtractor): IE_NAME = 'kuwo:singer' + IE_DESC = '酷我音乐 - 歌手' _VALID_URL = r'http://www\.kuwo\.cn/mingxing/(?P[^/]+)' _TESTS = [{ 'url': 'http://www.kuwo.cn/mingxing/bruno+mars/', @@ -198,6 +209,7 @@ class KuwoSingerIE(InfoExtractor): 'title': 'Ali', }, 'playlist_mincount': 95, + 'skip': 'Regularly stalls travis build', # See https://travis-ci.org/rg3/youtube-dl/jobs/78878540 }] def _real_extract(self, url): @@ -232,6 +244,7 @@ class KuwoSingerIE(InfoExtractor): class KuwoCategoryIE(InfoExtractor): IE_NAME = 'kuwo:category' + IE_DESC = '酷我音乐 - 分类' _VALID_URL = r'http://yinyue\.kuwo\.cn/yy/cinfo_(?P\d+?).htm' _TEST = { 'url': 'http://yinyue.kuwo.cn/yy/cinfo_86375.htm', @@ -268,6 +281,7 @@ class KuwoCategoryIE(InfoExtractor): class KuwoMvIE(KuwoBaseIE): IE_NAME = 'kuwo:mv' + IE_DESC = '酷我音乐 - MV' _VALID_URL = r'http://www\.kuwo\.cn/mv/(?P\d+?)/' _TEST = { 'url': 'http://www.kuwo.cn/mv/6480076/',