Add browser cookies support to DownloadThread

Introduces a browser_cookies parameter to DownloadThread, allowing cookies to be loaded from a browser for downloads. Updates command and options construction to handle both cookie files and browser cookies, improving flexibility for authentication.
This commit is contained in:
Your Name
2025-08-26 19:27:14 +03:00
parent 99a55f66e2
commit cb342eb499
+9 -2
View File
@@ -53,6 +53,7 @@ class DownloadThread(QThread):
save_description=False, save_description=False,
embed_chapters=False, embed_chapters=False,
cookie_file=None, cookie_file=None,
browser_cookies=None,
rate_limit=None, rate_limit=None,
download_section=None, download_section=None,
force_keyframes=False, force_keyframes=False,
@@ -71,6 +72,7 @@ class DownloadThread(QThread):
self.save_description = save_description self.save_description = save_description
self.embed_chapters = embed_chapters self.embed_chapters = embed_chapters
self.cookie_file = cookie_file self.cookie_file = cookie_file
self.browser_cookies = browser_cookies
self.rate_limit = rate_limit self.rate_limit = rate_limit
self.download_section = download_section self.download_section = download_section
self.force_keyframes = force_keyframes self.force_keyframes = force_keyframes
@@ -143,7 +145,10 @@ class DownloadThread(QThread):
"format": (self.format_id if self.format_id else "best"), # Use selected format or best "format": (self.format_id if self.format_id else "best"), # Use selected format or best
} }
if self.cookie_file: if self.cookie_file:
ydl_opts_check["cookiefile"] = self.cookie_file ydl_opts_check["cookiefile"] = str(self.cookie_file)
elif self.browser_cookies:
ydl_opts_check["cookiesfrombrowser"] = (self.browser_cookies.split(':')[0],
self.browser_cookies.split(':')[1] if ':' in self.browser_cookies else None)
if YT_DLP_AVAILABLE: if YT_DLP_AVAILABLE:
with yt_dlp.YoutubeDL(ydl_opts_check) as ydl: with yt_dlp.YoutubeDL(ydl_opts_check) as ydl:
@@ -312,7 +317,9 @@ class DownloadThread(QThread):
# Add cookies if specified # Add cookies if specified
if self.cookie_file: if self.cookie_file:
cmd.extend(["--cookies", self.cookie_file]) cmd.extend(["--cookies", str(self.cookie_file)])
elif self.browser_cookies:
cmd.extend(["--cookies-from-browser", self.browser_cookies])
# Add rate limit if specified # Add rate limit if specified
if self.rate_limit: if self.rate_limit: