-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathmain.py
39 lines (25 loc) · 1.06 KB
/
main.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
import argparse
from utils.transcription import ExtractVideo, TranscriptionModel
from utils.content_production import timestamp_to_seconds, clip_video
from utils.llm_process import ReelSelection
from utils.subtitle_overlay import SubtitleOverlay
import os
def start(LINK, MODEL):
print(f"Extracting link: {LINK} using model: {MODEL}")
ev = ExtractVideo(directory=".")
audio = ev.extract_youtube_audio(LINK)
print(f"Extracted video and audio")
transcription_model = TranscriptionModel(audio, MODEL)
srt_out = transcription_model.transcribe_file()
rs = ReelSelection(srt_out)
out = rs.get_imp_parts()
print(f"Extracted transcription and important parts")
vid_path = ev.extract_video(LINK)
sub_overlay = SubtitleOverlay(vid_path, srt_out)
sub_overlay.overlay_subtitle()
print("Overlayed subtitles")
st = timestamp_to_seconds(out['start_time'])
et = timestamp_to_seconds(out['end_time'])
print("Extracted timestamps")
clip_video(st, et, "final_output.mp4", "out/final_output.mp4")
print("Clipped Video")