|
|
@ -61,6 +61,7 @@ from .utils import (
|
|
|
|
render_table,
|
|
|
|
render_table,
|
|
|
|
SameFileError,
|
|
|
|
SameFileError,
|
|
|
|
sanitize_filename,
|
|
|
|
sanitize_filename,
|
|
|
|
|
|
|
|
sanitize_path,
|
|
|
|
std_headers,
|
|
|
|
std_headers,
|
|
|
|
subtitles_filename,
|
|
|
|
subtitles_filename,
|
|
|
|
takewhile_inclusive,
|
|
|
|
takewhile_inclusive,
|
|
|
@ -553,20 +554,16 @@ class YoutubeDL(object):
|
|
|
|
elif template_dict.get('width'):
|
|
|
|
elif template_dict.get('width'):
|
|
|
|
template_dict['resolution'] = '?x%d' % template_dict['width']
|
|
|
|
template_dict['resolution'] = '?x%d' % template_dict['width']
|
|
|
|
|
|
|
|
|
|
|
|
restrict_filenames = self.params.get('restrictfilenames')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
sanitize = lambda k, v: sanitize_filename(
|
|
|
|
sanitize = lambda k, v: sanitize_filename(
|
|
|
|
compat_str(v),
|
|
|
|
compat_str(v),
|
|
|
|
restricted=restrict_filenames,
|
|
|
|
restricted=self.params.get('restrictfilenames'),
|
|
|
|
is_id=(k == 'id'))
|
|
|
|
is_id=(k == 'id'))
|
|
|
|
template_dict = dict((k, sanitize(k, v))
|
|
|
|
template_dict = dict((k, sanitize(k, v))
|
|
|
|
for k, v in template_dict.items()
|
|
|
|
for k, v in template_dict.items()
|
|
|
|
if v is not None)
|
|
|
|
if v is not None)
|
|
|
|
template_dict = collections.defaultdict(lambda: 'NA', template_dict)
|
|
|
|
template_dict = collections.defaultdict(lambda: 'NA', template_dict)
|
|
|
|
|
|
|
|
|
|
|
|
outtmpl = sanitize_filename(
|
|
|
|
outtmpl = sanitize_path(self.params.get('outtmpl', DEFAULT_OUTTMPL))
|
|
|
|
self.params.get('outtmpl', DEFAULT_OUTTMPL),
|
|
|
|
|
|
|
|
restricted=restrict_filenames)
|
|
|
|
|
|
|
|
tmpl = compat_expanduser(outtmpl)
|
|
|
|
tmpl = compat_expanduser(outtmpl)
|
|
|
|
filename = tmpl % template_dict
|
|
|
|
filename = tmpl % template_dict
|
|
|
|
# Temporary fix for #4787
|
|
|
|
# Temporary fix for #4787
|
|
|
|