File size: 1,646 Bytes
b6093b0 78c135b b6093b0 8cdcb92 b6093b0 8cdcb92 b6093b0 8cdcb92 b6093b0 2b0ce36 8cdcb92 6c68a13 21b498c 6c68a13 78c135b 2b0ce36 6c68a13 b6093b0 2b0ce36 6c68a13 8cdcb92 6c68a13 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# Import necessary modules
from utils.transcriber import transcriber
from utils.subtitler import subtitler
from utils.convert_video_to_audio import convert_video_to_audio
import logging, os
# Set up logging
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')
# API Function
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
|