From 4ea3be0a5c91398ff7032557bbee7b2a28757764 Mon Sep 17 00:00:00 2001 From: rzhxeo Date: Wed, 18 Dec 2013 03:30:55 +0100 Subject: [YoutubeIE] Externalize format selection --- youtube_dl/YoutubeDL.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'youtube_dl/YoutubeDL.py') diff --git a/youtube_dl/YoutubeDL.py b/youtube_dl/YoutubeDL.py index 2a078adfb..74c0db4fc 100644 --- a/youtube_dl/YoutubeDL.py +++ b/youtube_dl/YoutubeDL.py @@ -636,7 +636,7 @@ class YoutubeDL(object): info_dict['playlist_index'] = None # This extractors handle format selection themselves - if info_dict['extractor'] in [u'youtube', u'Youku']: + if info_dict['extractor'] in [u'Youku']: if download: self.process_info(info_dict) return info_dict -- cgit v1.2.3 From bfaae0a768d455112e003f6200edfdafb22affd6 Mon Sep 17 00:00:00 2001 From: rzhxeo Date: Wed, 18 Dec 2013 21:24:39 +0100 Subject: Filter and sort videos before calling list_formats --- youtube_dl/YoutubeDL.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'youtube_dl/YoutubeDL.py') diff --git a/youtube_dl/YoutubeDL.py b/youtube_dl/YoutubeDL.py index 74c0db4fc..fd26f00b7 100644 --- a/youtube_dl/YoutubeDL.py +++ b/youtube_dl/YoutubeDL.py @@ -662,10 +662,6 @@ class YoutubeDL(object): if 'ext' not in format: format['ext'] = determine_ext(format['url']) - if self.params.get('listformats', None): - self.list_formats(info_dict) - return - format_limit = self.params.get('format_limit', None) if format_limit: formats = list(takewhile_inclusive( @@ -681,6 +677,11 @@ class YoutubeDL(object): return (f.get('height'), f.get('width'), ext_ord) formats = sorted(formats, key=_free_formats_key) + info_dict['formats'] = formats + if self.params.get('listformats', None): + self.list_formats(info_dict) + return + req_format = self.params.get('format', 'best') if req_format is None: req_format = 'best' -- cgit v1.2.3 From 62d68c43ed76fab391eacfd52f0391936ef0a4dc Mon Sep 17 00:00:00 2001 From: rzhxeo Date: Wed, 18 Dec 2013 21:25:13 +0100 Subject: Make prefer_free_formats sorting more robust --- youtube_dl/YoutubeDL.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'youtube_dl/YoutubeDL.py') diff --git a/youtube_dl/YoutubeDL.py b/youtube_dl/YoutubeDL.py index fd26f00b7..a93dd41a3 100644 --- a/youtube_dl/YoutubeDL.py +++ b/youtube_dl/YoutubeDL.py @@ -674,7 +674,9 @@ class YoutubeDL(object): except ValueError: ext_ord = -1 # We only compare the extension if they have the same height and width - return (f.get('height'), f.get('width'), ext_ord) + return (f.get('height') if f.get('height') is not None else -1, + f.get('width') if f.get('width') is not None else -1, + ext_ord) formats = sorted(formats, key=_free_formats_key) info_dict['formats'] = formats -- cgit v1.2.3