X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=youtube_dl%2Fextractor%2Ftudou.py;h=9892e8a62bf9731b8d3e5768333f71baaecd6288;hb=1600ed1ff9edb33ef901bda2c4b2732df7e0e4e7;hp=da3cd76f7591a8a9e2c39ba65a47c7855104dcae;hpb=e9bd0f772b28176e86cfe8c641b6281a96be2ee4;p=youtube-dl diff --git a/youtube_dl/extractor/tudou.py b/youtube_dl/extractor/tudou.py index da3cd76f7..9892e8a62 100644 --- a/youtube_dl/extractor/tudou.py +++ b/youtube_dl/extractor/tudou.py @@ -6,6 +6,7 @@ from .common import InfoExtractor from ..compat import compat_str from ..utils import ( int_or_none, + InAdvancePagedList, float_or_none, unescapeHTML, ) @@ -49,7 +50,7 @@ class TudouIE(InfoExtractor): info_url = 'http://v2.tudou.com/f?id=' + compat_str(video_id) if quality: info_url += '&hd' + quality - xml_data = self._download_xml(info_url, video_id, "Opening the info XML page") + xml_data = self._download_xml(info_url, video_id, 'Opening the info XML page') final_url = xml_data.text return final_url @@ -75,15 +76,16 @@ class TudouIE(InfoExtractor): quality = sorted(filter(lambda k: k.isdigit(), segments.keys()), key=lambda k: int(k))[-1] parts = segments[quality] - result = [] len_parts = len(parts) if len_parts > 1: self.to_screen('%s: found %s parts' % (video_id, len_parts)) - for part in parts: + + def part_func(partnum): + part = parts[partnum] part_id = part['k'] final_url = self._url_for_id(part_id, quality) ext = (final_url.split('?')[0]).split('.')[-1] - part_info = { + return [{ 'id': '%s' % part_id, 'url': final_url, 'ext': ext, @@ -97,12 +99,13 @@ class TudouIE(InfoExtractor): 'http_headers': { 'Referer': self._PLAYER_URL, }, - } - result.append(part_info) + }] + + entries = InAdvancePagedList(part_func, len_parts, 1) return { '_type': 'multi_video', - 'entries': result, + 'entries': entries, 'id': video_id, 'title': title, }