]> jfr.im git - yt-dlp.git/commitdiff
[cookies] Support custom Safari cookies path (#6783)
authorNam Vu <redacted>
Mon, 29 May 2023 06:05:51 +0000 (15:05 +0900)
committerGitHub <redacted>
Mon, 29 May 2023 06:05:51 +0000 (11:35 +0530)
Authored by: NextFire

yt_dlp/cookies.py

index eb6a2656bed517a04b60479f17afbae586a16699..ee2af0f7040056f9bc4158ed61d182808da781a9 100644 (file)
@@ -495,18 +495,22 @@ def decrypt(self, encrypted_value):
 
 
 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 profile:
+        cookies_path = os.path.expanduser(profile)
+        if not os.path.isfile(cookies_path):
+            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')
+            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()