diff options
Diffstat (limited to 'youtube_dl')
| -rw-r--r-- | youtube_dl/extractor/tudou.py | 15 | 
1 files changed, 9 insertions, 6 deletions
| diff --git a/youtube_dl/extractor/tudou.py b/youtube_dl/extractor/tudou.py index f56b66d06..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,  ) @@ -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,          } | 
