diff --git a/core/video/youtube.py b/core/video/youtube.py index 9f51181e..ff392cf3 100644 --- a/core/video/youtube.py +++ b/core/video/youtube.py @@ -168,9 +168,10 @@ def _cookie_opts(): try: from config.settings import config_manager cb = config_manager.get("youtube.cookies_browser", "") - if cb: + # 'custom' = the paste-cookies.txt sentinel (not a yt-dlp browser); skip it here. + if cb and cb != "custom": return {"cookiesfrombrowser": (cb,)} - except Exception: + except Exception: # noqa: S110 - cookie config is best-effort; extraction still works without it pass return {} diff --git a/core/youtube_client.py b/core/youtube_client.py index a1cef67b..7ac6daa0 100644 --- a/core/youtube_client.py +++ b/core/youtube_client.py @@ -222,7 +222,7 @@ class YouTubeClient(DownloadSourcePlugin): # Cookie support — use browser cookies for YouTube auth from config.settings import config_manager - cookies_browser = config_manager.get('youtube.cookies_browser', '') + cookies_browser = ('' if (_cb := config_manager.get('youtube.cookies_browser', '')) == 'custom' else _cb) if cookies_browser: self.download_opts['cookiesfrombrowser'] = (cookies_browser,) @@ -309,7 +309,7 @@ class YouTubeClient(DownloadSourcePlugin): """Reload YouTube settings from config (called when settings are saved).""" from config.settings import config_manager self._download_delay = config_manager.get('youtube.download_delay', 3) - cookies_browser = config_manager.get('youtube.cookies_browser', '') + cookies_browser = ('' if (_cb := config_manager.get('youtube.cookies_browser', '')) == 'custom' else _cb) if cookies_browser: self.download_opts['cookiesfrombrowser'] = (cookies_browser,) elif 'cookiesfrombrowser' in self.download_opts: @@ -736,7 +736,7 @@ class YouTubeClient(DownloadSourcePlugin): 'default_search': 'ytsearch', 'user_agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36', } - cookies_browser = config_manager.get('youtube.cookies_browser', '') + cookies_browser = ('' if (_cb := config_manager.get('youtube.cookies_browser', '')) == 'custom' else _cb) if cookies_browser: ydl_opts['cookiesfrombrowser'] = (cookies_browser,) @@ -816,7 +816,7 @@ class YouTubeClient(DownloadSourcePlugin): } # Add cookie support for search (avoids bot detection) - cookies_browser = config_manager.get('youtube.cookies_browser', '') + cookies_browser = ('' if (_cb := config_manager.get('youtube.cookies_browser', '')) == 'custom' else _cb) if cookies_browser: ydl_opts['cookiesfrombrowser'] = (cookies_browser,) @@ -1180,7 +1180,7 @@ class YouTubeClient(DownloadSourcePlugin): 'user_agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36', } - cookies_browser = config_manager.get('youtube.cookies_browser', '') + cookies_browser = ('' if (_cb := config_manager.get('youtube.cookies_browser', '')) == 'custom' else _cb) if cookies_browser: download_opts['cookiesfrombrowser'] = (cookies_browser,) diff --git a/web_server.py b/web_server.py index 0b14d5a3..3979a13f 100644 --- a/web_server.py +++ b/web_server.py @@ -14747,7 +14747,8 @@ def _youtube_cookie_opts(): opts = {} try: cb = config_manager.get('youtube.cookies_browser', '') - if cb: + # 'custom' = the paste-cookies.txt sentinel (not a yt-dlp browser); skip it here. + if cb and cb != 'custom': opts['cookiesfrombrowser'] = (cb,) except Exception: # noqa: S110 - cookie config is best-effort; resolve still works without it pass