X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;ds=sidebyside;f=youtube_dl%2Fextractor%2Fyouku.py;h=78caeb8b36e0be8cf4e97365d9e28251723059b7;hb=eab7faa0c1e8511bc91c64347d0dffc28c94f101;hp=ea37dc8b2bf10506cd7df5cf0ee7665ad6a46609;hpb=5228b756af2c2bfc2962a5b1bb6db1e6a41c9e05;p=youtube-dl diff --git a/youtube_dl/extractor/youku.py b/youtube_dl/extractor/youku.py index ea37dc8b2..78caeb8b3 100644 --- a/youtube_dl/extractor/youku.py +++ b/youtube_dl/extractor/youku.py @@ -15,6 +15,7 @@ from ..compat import ( class YoukuIE(InfoExtractor): IE_NAME = 'youku' + IE_DESC = '优酷' _VALID_URL = r'''(?x) (?: http://(?:v|player)\.youku\.com/(?:v_show/id_|player\.php/sid/)| @@ -210,28 +211,22 @@ class YoukuIE(InfoExtractor): 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], - 'format_id': self.get_format_name(fm), - 'ext': self.parse_ext_l(fm), - 'filesize': int(data1['segs'][fm][i]['size']) - } - ) - - for i in range(len(entries)): - entries[i].update( - { - 'id': '%s_part%d' % (video_id, i + 1), - 'title': title, - } - ) + 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(seg['size']), + }) return { '_type': 'multi_video',