From f3aecb27a4d7b178ae66b4a294cff5dbe9bb2b18 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jaime=20Marqui=CC=81nez=20Ferra=CC=81ndiz?= Date: Tue, 16 Jun 2015 14:41:52 +0200 Subject: [PATCH] [youku] Simplify a bit the 'entries' construction Mainly avoid having to use an index. --- youtube_dl/extractor/youku.py | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/youtube_dl/extractor/youku.py b/youtube_dl/extractor/youku.py index cab5be3a4..ced3a10cd 100644 --- a/youtube_dl/extractor/youku.py +++ b/youtube_dl/extractor/youku.py @@ -210,25 +210,23 @@ def retrieve_data(req_url, note): video_urls_dict = self.construct_video_urls(data1, data2) # construct info - entries = [] + entries = [{ + 'id': '%s_part%d' % (video_id, i + 1), + 'title': title, + 'formats': [], + # some formats are not available for all parts, we have to detect + # which one has all + } for i in range(max(len(v) for v in data1['segs'].values()))] for fm in data1['streamtypes']: video_urls = video_urls_dict[fm] - for i in range(len(video_urls)): - if len(entries) < i + 1: - entries.append({'formats': []}) - entries[i]['formats'].append({ - 'url': video_urls[i], + for video_url, seg, entry in zip(video_urls, data1['segs'][fm], entries): + entry['formats'].append({ + 'url': video_url, 'format_id': self.get_format_name(fm), 'ext': self.parse_ext_l(fm), - 'filesize': int(data1['segs'][fm][i]['size']) + 'filesize': int(seg['size']), }) - for i in range(len(entries)): - entries[i].update({ - 'id': '%s_part%d' % (video_id, i + 1), - 'title': title, - }) - return { '_type': 'multi_video', 'id': video_id,