Обновить test.py
This commit is contained in:
parent
3ba23834f6
commit
5401209c72
18
test.py
18
test.py
@ -1,6 +1,5 @@
|
|||||||
import subprocess
|
import subprocess
|
||||||
import os
|
import os
|
||||||
import json
|
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
import concurrent.futures
|
import concurrent.futures
|
||||||
|
|
||||||
@ -12,27 +11,26 @@ paths = "~/Downloads/staging"
|
|||||||
paths_temp = "temp:~/Downloads/temp"
|
paths_temp = "temp:~/Downloads/temp"
|
||||||
cache_dir = "~/Downloads/cache"
|
cache_dir = "~/Downloads/cache"
|
||||||
ffmpeg_location = "~/"
|
ffmpeg_location = "~/"
|
||||||
num_retries = 10
|
|
||||||
fragment_retries = 10
|
|
||||||
concur_fragments = 1
|
|
||||||
num_threads = 16
|
num_threads = 16
|
||||||
|
|
||||||
url_file = "video_urls.txt"
|
url_file = "video_urls.txt"
|
||||||
log_file = "download_log.txt"
|
log_file = "download_log.txt"
|
||||||
metadata_file = "metadata.json"
|
|
||||||
successful_downloads_file = "successful_downloads.txt"
|
successful_downloads_file = "successful_downloads.txt"
|
||||||
failed_downloads_file = "failed_downloads.txt"
|
failed_downloads_file = "failed_downloads.txt"
|
||||||
|
|
||||||
|
|
||||||
def load_downloaded_urls(file):
|
def load_downloaded_urls(file):
|
||||||
if os.path.exists(file):
|
if os.path.exists(file):
|
||||||
with open(file, "r") as f:
|
with open(file, "r") as f:
|
||||||
return set(line.strip() for line in f if line.strip())
|
return set(line.strip() for line in f if line.strip())
|
||||||
return set()
|
return set()
|
||||||
|
|
||||||
|
|
||||||
def save_downloaded_url(file, url):
|
def save_downloaded_url(file, url):
|
||||||
with open(file, "a") as f:
|
with open(file, "a") as f:
|
||||||
f.write(f"{url}\n")
|
f.write(f"{url}\n")
|
||||||
|
|
||||||
|
|
||||||
def download_video(url):
|
def download_video(url):
|
||||||
if url in successful_downloads:
|
if url in successful_downloads:
|
||||||
print(f"Video {url} already downloaded. Skipping.")
|
print(f"Video {url} already downloaded. Skipping.")
|
||||||
@ -58,18 +56,22 @@ def download_video(url):
|
|||||||
url
|
url
|
||||||
]
|
]
|
||||||
print(f"Start: {' '.join(command)}")
|
print(f"Start: {' '.join(command)}")
|
||||||
subprocess.run(command, check=True)
|
subprocess.run(command, check=True, capture_output=True, text=True)
|
||||||
end_time = datetime.now()
|
end_time = datetime.now()
|
||||||
log_download(url, start_time, end_time)
|
log_download(url, start_time, end_time)
|
||||||
save_downloaded_url(successful_downloads_file, url)
|
save_downloaded_url(successful_downloads_file, url)
|
||||||
except subprocess.CalledProcessError as e:
|
except subprocess.CalledProcessError as e:
|
||||||
print(f"ERROR VIDEO {url}: {e}")
|
error_message = e.stderr if e.stderr else str(e)
|
||||||
save_downloaded_url(failed_downloads_file, 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)
|
||||||
|
|
||||||
|
|
||||||
def log_download(url, start_time, end_time):
|
def log_download(url, start_time, end_time):
|
||||||
with open(log_file, "a") as log:
|
with open(log_file, "a") as log:
|
||||||
log.write(f"{url} Download.\nStart: {start_time}\nEnd: {end_time}\n\n")
|
log.write(f"{url} Download.\nStart: {start_time}\nEnd: {end_time}\n\n")
|
||||||
|
|
||||||
|
|
||||||
if not os.path.exists(url_file):
|
if not os.path.exists(url_file):
|
||||||
print(f"File {url_file} Empty.")
|
print(f"File {url_file} Empty.")
|
||||||
exit(1)
|
exit(1)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user