"""
Batch Shorts Generator for all 8 Episodes
Extracts 2 high-intensity 9:16 Shorts per episode using NVIDIA NVENC.
"""

import os
import sys
import glob
from pathlib import Path
from shorts_maker import auto_generate_shorts_for_episode

# Force UTF-8 on Windows
if sys.platform.startswith("win"):
    try:
        sys.stdout.reconfigure(encoding="utf-8")
        sys.stderr.reconfigure(encoding="utf-8")
    except Exception:
        pass

def generate_all_shorts():
    video_dir = Path("downloads")
    episodes = sorted(list(video_dir.glob("ep[1-8].mp4")))
    out_dir = Path("content/shorts")
    out_dir.mkdir(parents=True, exist_ok=True)

    print(f"=== BẮT ĐẦU TẠO SHORTS MARKETING CHO {len(episodes)} TẬP PHIM ===")
    total_generated = []

    for ep in episodes:
        print(f"\n==================================================")
        print(f"ĐANG XỬ LÝ: {ep.name}")
        print(f"==================================================")
        shorts = auto_generate_shorts_for_episode(
            episode_path=str(ep),
            output_dir=str(out_dir),
            count=2,
            duration=35.0,
            upscale=False
        )
        total_generated.extend(shorts)

    print(f"\n==================================================")
    print(f"HOÀN THÀNH TẠO SHORTS!")
    print(f"Tổng số Shorts đã xuất: {len(total_generated)} clips")
    print(f"Thư mục lưu trữ: {out_dir.resolve()}")
    print(f"==================================================")

if __name__ == "__main__":
    generate_all_shorts()
