mirror of
https://github.com/yt-dlp/yt-dlp.git
synced 2025-10-17 08:36:29 +00:00
[cookies] Improve container support (#4806)
Closes #4800 Authored by: bashonly, pukkandan, coletdjnz
This commit is contained in:
@@ -347,23 +347,25 @@ def validate_options(opts):
|
||||
# Cookies from browser
|
||||
if opts.cookiesfrombrowser:
|
||||
container = None
|
||||
mobj = re.match(r'(?P<name>[^+:]+)(\s*\+\s*(?P<keyring>[^:]+))?(\s*:(?P<profile>.+))?', opts.cookiesfrombrowser)
|
||||
mobj = re.fullmatch(r'''(?x)
|
||||
(?P<name>[^+:]+)
|
||||
(?:\s*\+\s*(?P<keyring>[^:]+))?
|
||||
(?:\s*:\s*(?P<profile>.+?))?
|
||||
(?:\s*::\s*(?P<container>.+))?
|
||||
''', opts.cookiesfrombrowser)
|
||||
if mobj is None:
|
||||
raise ValueError(f'invalid cookies from browser arguments: {opts.cookiesfrombrowser}')
|
||||
browser_name, keyring, profile = mobj.group('name', 'keyring', 'profile')
|
||||
browser_name, keyring, profile, container = mobj.group('name', 'keyring', 'profile', 'container')
|
||||
browser_name = browser_name.lower()
|
||||
if browser_name not in SUPPORTED_BROWSERS:
|
||||
raise ValueError(f'unsupported browser specified for cookies: "{browser_name}". '
|
||||
f'Supported browsers are: {", ".join(sorted(SUPPORTED_BROWSERS))}')
|
||||
elif profile and browser_name == 'firefox':
|
||||
if ':' in profile and not os.path.exists(profile):
|
||||
profile, container = profile.split(':', 1)
|
||||
if keyring is not None:
|
||||
keyring = keyring.upper()
|
||||
if keyring not in SUPPORTED_KEYRINGS:
|
||||
raise ValueError(f'unsupported keyring specified for cookies: "{keyring}". '
|
||||
f'Supported keyrings are: {", ".join(sorted(SUPPORTED_KEYRINGS))}')
|
||||
opts.cookiesfrombrowser = (browser_name, profile, keyring, container)
|
||||
opts.cookiesfrombrowser = (browser_name, profile or None, keyring, container or None)
|
||||
|
||||
# MetadataParser
|
||||
def metadataparser_actions(f):
|
||||
|
Reference in New Issue
Block a user