From 4f3ad96f2c263fe884531eeacc8554f6c5a49e56 Mon Sep 17 00:00:00 2001 From: Stefan Lobbenmeier Date: Sat, 20 Apr 2024 15:31:18 +0200 Subject: [PATCH] Enable use of session cookies in chrome Fixes #5534 --- yt_dlp/cookies.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/yt_dlp/cookies.py b/yt_dlp/cookies.py index 7b8d215f0..206b2e6fe 100644 --- a/yt_dlp/cookies.py +++ b/yt_dlp/cookies.py @@ -299,7 +299,7 @@ def _extract_chrome_cookies(browser_name, profile, keyring, logger): cursor.connection.text_factory = bytes column_names = _get_column_names(cursor, 'cookies') secure_column = 'is_secure' if 'is_secure' in column_names else 'secure' - cursor.execute(f'SELECT host_key, name, value, encrypted_value, path, expires_utc, {secure_column} FROM cookies') + cursor.execute(f'SELECT host_key, name, value, encrypted_value, path, expires_utc, has_expires, {secure_column} FROM cookies') jar = YoutubeDLCookieJar() failed_cookies = 0 unencrypted_cookies = 0 @@ -335,7 +335,7 @@ def _extract_chrome_cookies(browser_name, profile, keyring, logger): cursor.connection.close() -def _process_chrome_cookie(decryptor, host_key, name, value, encrypted_value, path, expires_utc, is_secure): +def _process_chrome_cookie(decryptor, host_key, name, value, encrypted_value, path, expires_utc, has_expires, is_secure): host_key = host_key.decode() name = name.decode() value = value.decode() @@ -347,6 +347,11 @@ def _process_chrome_cookie(decryptor, host_key, name, value, encrypted_value, pa if value is None: return is_encrypted, None + if has_expires == 1: + expires_utc = expires_utc + else: + expires_utc = None + return is_encrypted, http.cookiejar.Cookie( version=0, name=name, value=value, port=None, port_specified=False, domain=host_key, domain_specified=bool(host_key), domain_initial_dot=host_key.startswith('.'),