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