Extract CLI arguments into a config override dict.
(args: argparse.Namespace)
| 516 | |
| 517 | |
| 518 | def _build_cli_overrides(args: argparse.Namespace) -> dict: |
| 519 | """Extract CLI arguments into a config override dict.""" |
| 520 | overrides: dict = {} |
| 521 | |
| 522 | def _set(key: str, value) -> None: |
| 523 | if value is not None: |
| 524 | from videocaptioner.cli.config import _set_nested |
| 525 | _set_nested(overrides, key, value) |
| 526 | |
| 527 | # LLM |
| 528 | _set("llm.api_key", getattr(args, "api_key", None)) |
| 529 | _set("llm.api_base", getattr(args, "api_base", None)) |
| 530 | _set("llm.model", getattr(args, "model", None)) |
| 531 | |
| 532 | # Whisper API |
| 533 | _set("whisper_api.api_key", getattr(args, "whisper_api_key", None)) |
| 534 | _set("whisper_api.api_base", getattr(args, "whisper_api_base", None)) |
| 535 | _set("whisper_api.model", getattr(args, "whisper_model", None)) |
| 536 | |
| 537 | # Transcribe |
| 538 | _set("transcribe.asr", getattr(args, "asr", None)) |
| 539 | _set("transcribe.language", getattr(args, "language", None)) |
| 540 | |
| 541 | # FasterWhisper |
| 542 | _set("transcribe.faster_whisper.model", getattr(args, "fw_model", None)) |
| 543 | _set("transcribe.faster_whisper.device", getattr(args, "fw_device", None)) |
| 544 | _set("transcribe.faster_whisper.vad_method", getattr(args, "fw_vad_method", None)) |
| 545 | _set("transcribe.faster_whisper.vad_threshold", getattr(args, "fw_vad_threshold", None)) |
| 546 | if getattr(args, "fw_voice_extraction", False): |
| 547 | _set("transcribe.faster_whisper.voice_extraction", True) |
| 548 | _set("transcribe.faster_whisper.prompt", getattr(args, "fw_prompt", None)) |
| 549 | |
| 550 | # Whisper prompt |
| 551 | _set("whisper_api.prompt", getattr(args, "whisper_prompt", None)) |
| 552 | |
| 553 | # Subtitle |
| 554 | if getattr(args, "no_optimize", False): |
| 555 | _set("subtitle.optimize", False) |
| 556 | if getattr(args, "no_translate", False): |
| 557 | _set("subtitle.translate", False) |
| 558 | if getattr(args, "no_split", False): |
| 559 | _set("subtitle.split", False) |
| 560 | _set("subtitle.max_word_count_cjk", getattr(args, "max_cjk", None)) |
| 561 | _set("subtitle.max_word_count_english", getattr(args, "max_english", None)) |
| 562 | _set("subtitle.thread_num", getattr(args, "thread_num", None)) |
| 563 | _set("subtitle.batch_size", getattr(args, "batch_size", None)) |
| 564 | |
| 565 | # Translate |
| 566 | _set("translate.service", getattr(args, "translator", None)) |
| 567 | _set("translate.target_language", getattr(args, "target_language", None)) |
| 568 | if getattr(args, "reflect", False): |
| 569 | _set("translate.reflect", True) |
| 570 | |
| 571 | # Synthesize / Layout / Style |
| 572 | _set("synthesize.subtitle_mode", getattr(args, "subtitle_mode", None)) |
| 573 | _set("synthesize.quality", getattr(args, "quality", None)) |
| 574 | _set("synthesize.layout", getattr(args, "layout", None)) |
| 575 | _set("synthesize.render_mode", getattr(args, "render_mode", None)) |