aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--yt_dlp/options.py5
-rw-r--r--yt_dlp/utils.py15
2 files changed, 14 insertions, 6 deletions
diff --git a/yt_dlp/options.py b/yt_dlp/options.py
index dfaa9ca4f..386e8308e 100644
--- a/yt_dlp/options.py
+++ b/yt_dlp/options.py
@@ -114,6 +114,11 @@ def parseOpts(overrideArguments=None, ignore_config_files='if_override'):
if user_conf is not None:
root.configs.pop(user_conf)
+ try:
+ root.configs[0].load_configs() # Resolve any aliases using --config-location
+ except ValueError as err:
+ raise root.parser.error(err)
+
opts, args = root.parse_args()
except optparse.OptParseError:
with contextlib.suppress(optparse.OptParseError):
diff --git a/yt_dlp/utils.py b/yt_dlp/utils.py
index 7b4d2d818..67efb88c6 100644
--- a/yt_dlp/utils.py
+++ b/yt_dlp/utils.py
@@ -5393,18 +5393,21 @@ class Config:
def init(self, args=None, filename=None):
assert not self.__initialized
+ self.own_args, self.filename = args, filename
+ return self.load_configs()
+
+ def load_configs(self):
directory = ''
- if filename:
- location = os.path.realpath(filename)
+ if self.filename:
+ location = os.path.realpath(self.filename)
directory = os.path.dirname(location)
if location in self._loaded_paths:
return False
self._loaded_paths.add(location)
- self.own_args, self.__initialized = args, True
- opts, _ = self.parser.parse_known_args(args)
- self.parsed_args, self.filename = args, filename
-
+ self.__initialized = True
+ opts, _ = self.parser.parse_known_args(self.own_args)
+ self.parsed_args = self.own_args
for location in opts.config_locations or []:
if location == '-':
self.append_config(shlex.split(read_stdin('options'), comments=True), label='stdin')