File size: 1,256 Bytes
0d6f640
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
"""Simple CLI interface for the subtitle extractor."""

import argparse
import os
import tempfile

from .subtitle_extractor import (
    extract_audio,
    transcribe_audio,
    save_srt,
    merge_subtitles,
)


def main() -> None:
    parser = argparse.ArgumentParser(description="Generate subtitles from a video")
    parser.add_argument("video", help="Path to the video file")
    parser.add_argument("--library", choices=["faster_whisper", "OpenAI Whisper"], default="faster_whisper")
    parser.add_argument("--api-key", help="OpenAI API key if using OpenAI Whisper")
    parser.add_argument("--output", help="Output directory", default="output")
    parser.add_argument("--merge", action="store_true", help="Merge subtitles with video")
    args = parser.parse_args()

    audio_path = extract_audio(args.video, args.output)
    srt_content = transcribe_audio(audio_path, library=args.library, api_key=args.api_key)
    srt_path = save_srt(srt_content, os.path.join(args.output, "subtitles.srt"))
    print(f"Generated subtitles: {srt_path}")

    if args.merge:
        merged = merge_subtitles(args.video, srt_path, os.path.join(args.output, "merged.mp4"))
        print(f"Merged video saved to: {merged}")


if __name__ == "__main__":
    main()