mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-31 06:35:12 +00:00 
			
		
		
		
	[cookies] Handle sqlite ImportError gracefully (#554)
				
					
				
			Closes #544 Authored by: mbway
This commit is contained in:
		| @@ -2,7 +2,6 @@ import ctypes | |||||||
| import json | import json | ||||||
| import os | import os | ||||||
| import shutil | import shutil | ||||||
| import sqlite3 |  | ||||||
| import struct | import struct | ||||||
| import subprocess | import subprocess | ||||||
| import sys | import sys | ||||||
| @@ -23,6 +22,15 @@ from yt_dlp.utils import ( | |||||||
|     YoutubeDLCookieJar, |     YoutubeDLCookieJar, | ||||||
| ) | ) | ||||||
|  |  | ||||||
|  | try: | ||||||
|  |     import sqlite3 | ||||||
|  |     SQLITE_AVAILABLE = True | ||||||
|  | except ImportError: | ||||||
|  |     # although sqlite3 is part of the standard library, it is possible to compile python without | ||||||
|  |     # sqlite support. See: https://github.com/yt-dlp/yt-dlp/issues/544 | ||||||
|  |     SQLITE_AVAILABLE = False | ||||||
|  |  | ||||||
|  |  | ||||||
| try: | try: | ||||||
|     from Crypto.Cipher import AES |     from Crypto.Cipher import AES | ||||||
|     CRYPTO_AVAILABLE = True |     CRYPTO_AVAILABLE = True | ||||||
| @@ -90,6 +98,10 @@ def extract_cookies_from_browser(browser_name, profile=None, logger=YDLLogger()) | |||||||
|  |  | ||||||
| def _extract_firefox_cookies(profile, logger): | def _extract_firefox_cookies(profile, logger): | ||||||
|     logger.info('Extracting cookies from firefox') |     logger.info('Extracting cookies from firefox') | ||||||
|  |     if not SQLITE_AVAILABLE: | ||||||
|  |         logger.warning('Cannot extract cookies from firefox without sqlite3 support. ' | ||||||
|  |                        'Please use a python interpreter compiled with sqlite3 support') | ||||||
|  |         return YoutubeDLCookieJar() | ||||||
|  |  | ||||||
|     if profile is None: |     if profile is None: | ||||||
|         search_root = _firefox_browser_dir() |         search_root = _firefox_browser_dir() | ||||||
| @@ -195,6 +207,12 @@ def _get_chromium_based_browser_settings(browser_name): | |||||||
|  |  | ||||||
| def _extract_chrome_cookies(browser_name, profile, logger): | def _extract_chrome_cookies(browser_name, profile, logger): | ||||||
|     logger.info('Extracting cookies from {}'.format(browser_name)) |     logger.info('Extracting cookies from {}'.format(browser_name)) | ||||||
|  |  | ||||||
|  |     if not SQLITE_AVAILABLE: | ||||||
|  |         logger.warning(('Cannot extract cookies from {} without sqlite3 support. ' | ||||||
|  |                         'Please use a python interpreter compiled with sqlite3 support').format(browser_name)) | ||||||
|  |         return YoutubeDLCookieJar() | ||||||
|  |  | ||||||
|     config = _get_chromium_based_browser_settings(browser_name) |     config = _get_chromium_based_browser_settings(browser_name) | ||||||
|  |  | ||||||
|     if profile is None: |     if profile is None: | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Matt Broadway
					Matt Broadway