-
Notifications
You must be signed in to change notification settings - Fork 51
/
clip_sub.py
39 lines (31 loc) · 1.29 KB
/
clip_sub.py
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
# Standard library imports
import os
import warnings
import logging
# Local application
import clipper
import extracts
import subtitler
import transcribe
import crew
from utils import wait_for_file
# Setup logging
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
warnings.filterwarnings("ignore")
def clip_and_sub(input_video_path, subtitle_file, output_video_folder):
"""This function processes the subtitles and generates a subtitled video
Args:
input_video_path:
subtitle_file:
output_video_folder:
"""
trimmed_video_path = os.path.join(output_video_folder,
f"{os.path.splitext(os.path.basename(subtitle_file))[0]}_trimmed.mp4")
clipper.main(input_video_path, subtitle_file, output_video_folder)
if not wait_for_file(trimmed_video_path):
logging.error(f"Error: Trimmed video file not found: {trimmed_video_path}")
return
subtitled_video_path = os.path.join('subtitler_output',
f"{os.path.splitext(os.path.basename(subtitle_file))[0]}_subtitled.mp4")
subtitler.process_video_and_subtitles(trimmed_video_path, subtitle_file, 'subtitler_output')
logging.info(f"Video processed and saved to {subtitled_video_path}")