44 lines
1.4 KiB
Python
Raw Normal View History

import errno
import os
from loguru import logger
from src.core.ydl import VideoDownloader
2023-09-22 00:17:24 +03:00
from src.exceptions.download_exceptions import FileAlreadyExistException
class BaseParser:
BASE_ENCODING = 'utf-8'
BASE_DIR = None
def __init__(self, params: dict):
self.params = params
def video_download(self):
ydl_opts = {
"format": self.params["format"],
"logger": logger,
"merge_output_format": self.params["merge_output_format"],
'outtmpl': self.params["outtmpl"],
"quiet": True
}
downloader = VideoDownloader(link=self.params["link"], ydl_opts=ydl_opts)
2023-09-22 13:35:00 +03:00
downloader.get_info()
path_to_video = f"{downloader.info['extractor_key']}/{downloader.info['id']}_{downloader.info['width']}p.{downloader.info['ext']}"
2023-09-22 00:17:24 +03:00
if os.path.exists(os.path.join(os.getcwd() + "/downloads/" + path_to_video)):
raise FileAlreadyExistException(message=path_to_video)
downloader.ydl_opts["quiet"] = False
downloader.download()
return path_to_video
def make_sure_path_exists(self,):
try:
os.makedirs(self.BASE_DIR)
except OSError as exception:
if exception.errno != errno.EEXIST:
raise
2023-09-21 00:21:03 +03:00
'''
TODO: скорее всего добавить процедуру для конвертации итогого файла через ffmpeg, используя
'''