myTools / src /main.py
danzapp70's picture
Deploy version v1.1.0
0d6f640 verified
"""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()