aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Sawicki <contact@grub4k.xyz>2023-03-08 21:49:24 +0100
committerGitHub <noreply@github.com>2023-03-08 21:49:24 +0100
commit9b7a48abd1b187eae1e3f6c9839c47d43ccec00b (patch)
treea83f97fc9c81663303b98e6d7e495ac4346d42b5
parent01ddec7e661bf90dc4c34e6924eb9d7629886cef (diff)
downloadhypervideo-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.py10
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):