|
|
|
from utils.transcriber import transcriber |
|
from utils.subtitler import subtitler |
|
from utils.convert_video_to_audio import convert_video_to_audio |
|
import logging, os |
|
|
|
|
|
logging.basicConfig(filename='main.log', |
|
encoding='utf-8', |
|
level=logging.DEBUG, |
|
format='%(asctime)s %(levelname)s %(message)s', |
|
datefmt='%m/%d/%Y %I:%M:%S %p') |
|
|
|
|
|
def process_video(invideo_filename:str, |
|
srt_path: str, |
|
max_words_per_line:int, |
|
fontsize:str, |
|
font:str, |
|
bg_color:str, |
|
text_color:str |
|
): |
|
VIDEO_NAME = invideo_filename.split('\\')[-1] |
|
OUTVIDEO_PATH = os.path.join(invideo_filename.split('\\')[-3], invideo_filename.split('\\')[-2], f"result_{VIDEO_NAME}") |
|
if srt_path: |
|
subtitler(invideo_filename, srt_path, OUTVIDEO_PATH, fontsize, font, bg_color, text_color) |
|
return OUTVIDEO_PATH |
|
logging.info("Converting Video to Audio") |
|
INAUDIO_PATH = os.path.abspath(f"{invideo_filename.split('.')[0]}.m4a") |
|
if not os.path.exists(INAUDIO_PATH): |
|
convert_video_to_audio(invideo_filename, INAUDIO_PATH) |
|
SRT_PATH = os.path.abspath(f"{invideo_filename.split('.')[0]}.srt") |
|
logging.info("Transcribing...") |
|
if not os.path.exists(SRT_PATH): |
|
transcriber(INAUDIO_PATH, SRT_PATH, max_words_per_line) |
|
logging.info("Subtitling...") |
|
subtitler(invideo_filename, SRT_PATH, OUTVIDEO_PATH, fontsize, font, bg_color, text_color) |
|
return OUTVIDEO_PATH, SRT_PATH |
|
|