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