diff options
author | Simon Sawicki <contact@grub4k.xyz> | 2023-03-08 21:49:24 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-03-08 21:49:24 +0100 |
commit | 9b7a48abd1b187eae1e3f6c9839c47d43ccec00b (patch) | |
tree | a83f97fc9c81663303b98e6d7e495ac4346d42b5 | |
parent | 01ddec7e661bf90dc4c34e6924eb9d7629886cef (diff) | |
download | hypervideo-pre-9b7a48abd1b187eae1e3f6c9839c47d43ccec00b.tar.lz hypervideo-pre-9b7a48abd1b187eae1e3f6c9839c47d43ccec00b.tar.xz hypervideo-pre-9b7a48abd1b187eae1e3f6c9839c47d43ccec00b.zip |
[cookies] Defer extraction of v11 key from keyring
Closes #6082
Authored by: Grub4K
-rw-r--r-- | yt_dlp/cookies.py | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/yt_dlp/cookies.py b/yt_dlp/cookies.py index 8ca7cea2c..4cafb522e 100644 --- a/yt_dlp/cookies.py +++ b/yt_dlp/cookies.py @@ -20,6 +20,7 @@ from .aes import ( aes_gcm_decrypt_and_verify_bytes, unpad_pkcs7, ) +from .compat import functools from .dependencies import ( _SECRETSTORAGE_UNAVAILABLE_REASON, secretstorage, @@ -383,9 +384,14 @@ class LinuxChromeCookieDecryptor(ChromeCookieDecryptor): def __init__(self, browser_keyring_name, logger, *, keyring=None): self._logger = logger self._v10_key = self.derive_key(b'peanuts') - password = _get_linux_keyring_password(browser_keyring_name, keyring, logger) - self._v11_key = None if password is None else self.derive_key(password) self._cookie_counts = {'v10': 0, 'v11': 0, 'other': 0} + self._browser_keyring_name = browser_keyring_name + self._keyring = keyring + + @functools.cached_property + def _v11_key(self): + password = _get_linux_keyring_password(self._browser_keyring_name, self._keyring, self._logger) + return None if password is None else self.derive_key(password) @staticmethod def derive_key(password): |