|
|
@ -9,7 +9,7 @@ from .common import InfoExtractor
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class TudouIE(InfoExtractor):
|
|
|
|
class TudouIE(InfoExtractor):
|
|
|
|
_VALID_URL = r'(?:http://)?(?:www\.)?tudou\.com/(?:listplay|programs|albumplay)/(?:view|(.+?))/(?:([^/]+)|([^/]+))(?:\.html)?'
|
|
|
|
_VALID_URL = r'https?://(?:www\.)?tudou\.com/(?:listplay|programs(?:/view)?|albumplay)/.*?/(?P<id>[^/?#]+?)(?:\.html)?/?(?:$|[?#])'
|
|
|
|
_TESTS = [{
|
|
|
|
_TESTS = [{
|
|
|
|
'url': 'http://www.tudou.com/listplay/zzdE77v6Mmo/2xN2duXMxmw.html',
|
|
|
|
'url': 'http://www.tudou.com/listplay/zzdE77v6Mmo/2xN2duXMxmw.html',
|
|
|
|
'md5': '140a49ed444bd22f93330985d8475fcb',
|
|
|
|
'md5': '140a49ed444bd22f93330985d8475fcb',
|
|
|
@ -27,13 +27,6 @@ class TudouIE(InfoExtractor):
|
|
|
|
'title': 'La Sylphide-Bolshoi-Ekaterina Krysanova & Vyacheslav Lopatin 2012',
|
|
|
|
'title': 'La Sylphide-Bolshoi-Ekaterina Krysanova & Vyacheslav Lopatin 2012',
|
|
|
|
'thumbnail': 're:^https?://.*\.jpg$',
|
|
|
|
'thumbnail': 're:^https?://.*\.jpg$',
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}, {
|
|
|
|
|
|
|
|
'url': 'http://www.tudou.com/albumplay/TenTw_JgiPM/PzsAs5usU9A.html',
|
|
|
|
|
|
|
|
'info_dict': {
|
|
|
|
|
|
|
|
'title': 'todo.mp4',
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
'add_ie': ['Youku'],
|
|
|
|
|
|
|
|
'skip': 'Only works from China'
|
|
|
|
|
|
|
|
}]
|
|
|
|
}]
|
|
|
|
|
|
|
|
|
|
|
|
def _url_for_id(self, id, quality=None):
|
|
|
|
def _url_for_id(self, id, quality=None):
|
|
|
@ -45,8 +38,7 @@ class TudouIE(InfoExtractor):
|
|
|
|
return final_url
|
|
|
|
return final_url
|
|
|
|
|
|
|
|
|
|
|
|
def _real_extract(self, url):
|
|
|
|
def _real_extract(self, url):
|
|
|
|
mobj = re.match(self._VALID_URL, url)
|
|
|
|
video_id = self._match_id(url)
|
|
|
|
video_id = mobj.group(2)
|
|
|
|
|
|
|
|
webpage = self._download_webpage(url, video_id)
|
|
|
|
webpage = self._download_webpage(url, video_id)
|
|
|
|
|
|
|
|
|
|
|
|
m = re.search(r'vcode:\s*[\'"](.+?)[\'"]', webpage)
|
|
|
|
m = re.search(r'vcode:\s*[\'"](.+?)[\'"]', webpage)
|
|
|
@ -87,4 +79,9 @@ class TudouIE(InfoExtractor):
|
|
|
|
}
|
|
|
|
}
|
|
|
|
result.append(part_info)
|
|
|
|
result.append(part_info)
|
|
|
|
|
|
|
|
|
|
|
|
return result
|
|
|
|
return {
|
|
|
|
|
|
|
|
'_type': 'multi_video',
|
|
|
|
|
|
|
|
'entries': result,
|
|
|
|
|
|
|
|
'id': video_id,
|
|
|
|
|
|
|
|
'title': title,
|
|
|
|
|
|
|
|
}
|
|
|
|