"""CLI wrapper para el orquestador principal.""" from __future__ import annotations import argparse from whisper_project.logging_config import configure_logging import logging from whisper_project.usecases.orchestrator import Orchestrator def main(): p = argparse.ArgumentParser(prog="orchestrator", description="Orquestador multimedia: transcribe -> tts -> burn") p.add_argument("src_video", help="VĂ­deo de entrada") p.add_argument("out_dir", help="Directorio de salida") p.add_argument("--dry-run", action="store_true", dest="dry_run", help="No ejecutar pasos que cambien archivos") p.add_argument("--translate", action="store_true", help="Traducir SRT antes de TTS (experimental)") p.add_argument("--tts-model", default="kokoro", help="Modelo TTS a usar (por defecto: kokoro)") p.add_argument("--verbose", action="store_true", help="Mostrar logs detallados") args = p.parse_args() # configurar logging (archivos y consola) configure_logging(args.verbose) orb = Orchestrator(dry_run=args.dry_run, tts_model=args.tts_model, verbose=args.verbose) res = orb.run(args.src_video, args.out_dir, translate=args.translate) if args.verbose: logging.getLogger(__name__).debug(res) if __name__ == "__main__": main()