import json import logging import os from argparse import ArgumentParser, Namespace from pathlib import Path from src.logger import setup_logger from src.transcript_generator import TranscriptGenerator def main(): parser: ArgumentParser = ArgumentParser( description="Transcript Generator for Videos" ) parser.add_argument("--job", type=str, help="The name of the job", required=True) arguments: Namespace = parser.parse_args() with open(f"data/jobs/{arguments.job}", "r") as f: job_config = json.load(f) log_directory: Path = Path("data/logs") os.makedirs(log_directory, exist_ok=True) log_file_path: Path = log_directory / f"{arguments.job}.log" setup_logger(__name__, log_file=log_file_path) logger: logging.Logger = logging.getLogger(__name__) logger.info("Starting the transcript generation.") hf_token = os.environ.get("HF_TOKEN") if not hf_token: hf_token = input("Please enter your HF_TOKEN: ") os.environ["HF_TOKEN"] = hf_token transcript_generator: TranscriptGenerator = TranscriptGenerator( job_name=job_config["name"], language_code=job_config.get("language_code", "en"), get_txt_version=job_config["transcript_version"]["get_txt_version"], get_json_version=job_config["transcript_version"]["get_json_version"], get_sentence_level_json=job_config["transcript_version"][ "get_sentence_level_json_version" ], ) transcript_generator.generate(job_config["source"]) if __name__ == "__main__": main()