|
|
|
@ -5,7 +5,6 @@ from __future__ import absolute_import, unicode_literals
|
|
|
|
|
|
|
|
|
|
import collections
|
|
|
|
|
import contextlib
|
|
|
|
|
import copy
|
|
|
|
|
import datetime
|
|
|
|
|
import errno
|
|
|
|
|
import fileinput
|
|
|
|
@ -1389,17 +1388,16 @@ class YoutubeDL(object):
|
|
|
|
|
'abr': formats_info[1].get('abr'),
|
|
|
|
|
'ext': output_ext,
|
|
|
|
|
}
|
|
|
|
|
video_selector, audio_selector = map(_build_selector_function, selector.selector)
|
|
|
|
|
|
|
|
|
|
def selector_function(ctx):
|
|
|
|
|
for pair in itertools.product(
|
|
|
|
|
video_selector(copy.deepcopy(ctx)), audio_selector(copy.deepcopy(ctx))):
|
|
|
|
|
selector_fn = lambda x: _build_selector_function(x)(ctx)
|
|
|
|
|
for pair in itertools.product(*map(selector_fn, selector.selector)):
|
|
|
|
|
yield _merge(pair)
|
|
|
|
|
|
|
|
|
|
filters = [self._build_format_filter(f) for f in selector.filters]
|
|
|
|
|
|
|
|
|
|
def final_selector(ctx):
|
|
|
|
|
ctx_copy = copy.deepcopy(ctx)
|
|
|
|
|
ctx_copy = dict(ctx)
|
|
|
|
|
for _filter in filters:
|
|
|
|
|
ctx_copy['formats'] = list(filter(_filter, ctx_copy['formats']))
|
|
|
|
|
return selector_function(ctx_copy)
|
|
|
|
|