diff options
author | pukkandan <pukkandan.ytdlp@gmail.com> | 2021-11-10 18:33:37 +0530 |
---|---|---|
committer | pukkandan <pukkandan.ytdlp@gmail.com> | 2021-11-11 08:18:34 +0530 |
commit | 44bcb8d1225c2fcfb9b1814282b74f0563ee26d1 (patch) | |
tree | d2d98afd1c2b25c84e275bda1a1676fd2e0cf1a8 | |
parent | 013ae2e5038178420966fa7e029908b37ecda821 (diff) | |
download | hypervideo-pre-44bcb8d1225c2fcfb9b1814282b74f0563ee26d1.tar.lz hypervideo-pre-44bcb8d1225c2fcfb9b1814282b74f0563ee26d1.tar.xz hypervideo-pre-44bcb8d1225c2fcfb9b1814282b74f0563ee26d1.zip |
Fix bug in parsing `--add-header`
Closes #1614
-rw-r--r-- | yt_dlp/options.py | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/yt_dlp/options.py b/yt_dlp/options.py index 89a1a8637..89401910e 100644 --- a/yt_dlp/options.py +++ b/yt_dlp/options.py @@ -151,25 +151,25 @@ def parseOpts(overrideArguments=None): def _dict_from_options_callback( option, opt_str, value, parser, - allowed_keys=r'[\w-]+', delimiter=':', default_key=None, process=None, multiple_keys=True): + allowed_keys=r'[\w-]+', delimiter=':', default_key=None, process=None, multiple_keys=True, + process_key=str.lower): out_dict = getattr(parser.values, option.dest) if multiple_keys: allowed_keys = r'(%s)(,(%s))*' % (allowed_keys, allowed_keys) mobj = re.match(r'(?i)(?P<keys>%s)%s(?P<val>.*)$' % (allowed_keys, delimiter), value) if mobj is not None: - keys = [k.strip() for k in mobj.group('keys').lower().split(',')] - val = mobj.group('val') + keys, val = mobj.group('keys').split(','), mobj.group('val') elif default_key is not None: keys, val = [default_key], value else: raise optparse.OptionValueError( 'wrong %s formatting; it should be %s, not "%s"' % (opt_str, option.metavar, value)) try: + keys = map(process_key, keys) if process_key else keys val = process(val) if process else val except Exception as err: - raise optparse.OptionValueError( - 'wrong %s formatting; %s' % (opt_str, err)) + raise optparse.OptionValueError(f'wrong {opt_str} formatting; {err}') for key in keys: out_dict[key] = val @@ -792,7 +792,7 @@ def parseOpts(overrideArguments=None): '--add-header', metavar='FIELD:VALUE', dest='headers', default={}, type='str', action='callback', callback=_dict_from_options_callback, - callback_kwargs={'multiple_keys': False}, + callback_kwargs={'multiple_keys': False, 'process_key': None}, help='Specify a custom HTTP header and its value, separated by a colon ":". You can use this option multiple times', ) workarounds.add_option( |