"""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()