[YoutubeDL] Introduce YoutubeDLCookieJar and clarify the rationale behind session...
[youtube-dl] / youtube_dl / YoutubeDL.py
index 2433f74f41478221e9527cab6f44bed8ca1c9942..4493fd0e1aabc0452041a68262772b9b5d223d79 100755 (executable)
@@ -88,6 +88,7 @@ from .utils import (
     version_tuple,
     write_json_file,
     write_string,
+    YoutubeDLCookieJar,
     YoutubeDLCookieProcessor,
     YoutubeDLHandler,
 )
@@ -558,7 +559,7 @@ class YoutubeDL(object):
         self.restore_console_title()
 
         if self.params.get('cookiefile') is not None:
-            self.cookiejar.save()
+            self.cookiejar.save(ignore_discard=True, ignore_expires=True)
 
     def trouble(self, message=None, tb=None):
         """Determine action to take when a download problem appears.
@@ -2297,16 +2298,9 @@ class YoutubeDL(object):
             self.cookiejar = compat_cookiejar.CookieJar()
         else:
             opts_cookiefile = expand_path(opts_cookiefile)
-            self.cookiejar = compat_cookiejar.MozillaCookieJar(
-                opts_cookiefile)
+            self.cookiejar = YoutubeDLCookieJar(opts_cookiefile)
             if os.access(opts_cookiefile, os.R_OK):
                 self.cookiejar.load(ignore_discard=True, ignore_expires=True)
-                # Force CookieJar to treat 'expires=0' cookies as session/discard cookies
-                # Fixes https://bugs.python.org/issue17164
-                for cookie in self.cookiejar:
-                    if cookie.expires == 0:
-                        cookie.expires = None
-                        cookie.discard = True
 
         cookie_processor = YoutubeDLCookieProcessor(self.cookiejar)
         if opts_proxy is not None: