From f19c5d086481f3223f2efeeda23ae850a354915f Mon Sep 17 00:00:00 2001 From: evgeniy_t Date: Mon, 3 Feb 2025 14:05:54 +0500 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=20test.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- test.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/test.py b/test.py index 81a88c6..eb596dc 100644 --- a/test.py +++ b/test.py @@ -18,19 +18,16 @@ log_file = "download_log.txt" successful_downloads_file = "successful_downloads.txt" failed_downloads_file = "failed_downloads.txt" - def load_downloaded_urls(file): if os.path.exists(file): with open(file, "r") as f: return set(line.strip() for line in f if line.strip()) return set() - def save_downloaded_url(file, url): with open(file, "a") as f: f.write(f"{url}\n") - def download_video(url): if url in successful_downloads: print(f"Video {url} already downloaded. Skipping.") @@ -56,7 +53,7 @@ def download_video(url): url ] print(f"Start: {' '.join(command)}") - subprocess.run(command, check=True, capture_output=True, text=True) + result = subprocess.run(command, check=True, capture_output=True, text=True) end_time = datetime.now() log_download(url, start_time, end_time) save_downloaded_url(successful_downloads_file, url) @@ -65,13 +62,14 @@ def download_video(url): print(f"ERROR VIDEO {url}: {error_message}") if "This video has been removed" in error_message or "Video unavailable" in error_message: save_downloaded_url(failed_downloads_file, url) - + if "Sign in to confirm you’re not a bot" in error_message: + print("Critical error detected: Sign-in required. Stopping execution.") + exit(1) def log_download(url, start_time, end_time): with open(log_file, "a") as log: log.write(f"{url} Download.\nStart: {start_time}\nEnd: {end_time}\n\n") - if not os.path.exists(url_file): print(f"File {url_file} Empty.") exit(1) @@ -82,12 +80,14 @@ failed_downloads = load_downloaded_urls(failed_downloads_file) with open(url_file, "r") as file: video_urls = [line.strip() for line in file if line.strip()] +video_urls = [url for url in video_urls if url not in successful_downloads] + os.makedirs(os.path.expanduser("~/Downloads/staging"), exist_ok=True) os.makedirs(os.path.expanduser("~/Downloads/temp"), exist_ok=True) os.makedirs(os.path.expanduser("~/Downloads/cache"), exist_ok=True) with concurrent.futures.ThreadPoolExecutor(max_workers=num_threads) as executor: - futures = [executor.submit(download_video, url) for url in video_urls if url not in successful_downloads] + futures = [executor.submit(download_video, url) for url in video_urls] for future in concurrent.futures.as_completed(futures): try: future.result()