From a58182b75a05fe0a10c5e94a536711d3ade19c20 Mon Sep 17 00:00:00 2001 From: Nam Vu Date: Mon, 29 May 2023 15:05:51 +0900 Subject: [PATCH] [cookies] Support custom Safari cookies path (#6783) Authored by: NextFire --- yt_dlp/cookies.py | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/yt_dlp/cookies.py b/yt_dlp/cookies.py index eb6a2656b..ee2af0f70 100644 --- a/yt_dlp/cookies.py +++ b/yt_dlp/cookies.py @@ -495,18 +495,22 @@ class WindowsChromeCookieDecryptor(ChromeCookieDecryptor): def _extract_safari_cookies(profile, logger): - if profile is not None: - logger.error('safari does not support profiles') if sys.platform != 'darwin': raise ValueError(f'unsupported platform: {sys.platform}') - cookies_path = os.path.expanduser('~/Library/Cookies/Cookies.binarycookies') - - if not os.path.isfile(cookies_path): - logger.debug('Trying secondary cookie location') - cookies_path = os.path.expanduser('~/Library/Containers/com.apple.Safari/Data/Library/Cookies/Cookies.binarycookies') + if profile: + cookies_path = os.path.expanduser(profile) if not os.path.isfile(cookies_path): - raise FileNotFoundError('could not find safari cookies database') + raise FileNotFoundError('custom safari cookies database not found') + + else: + cookies_path = os.path.expanduser('~/Library/Cookies/Cookies.binarycookies') + + if not os.path.isfile(cookies_path): + logger.debug('Trying secondary cookie location') + cookies_path = os.path.expanduser('~/Library/Containers/com.apple.Safari/Data/Library/Cookies/Cookies.binarycookies') + if not os.path.isfile(cookies_path): + raise FileNotFoundError('could not find safari cookies database') with open(cookies_path, 'rb') as f: cookies_data = f.read()