import sys, json, os
from faster_whisper import WhisperModel

DOWN = r"C:\Users\ferna\proyecto cero\_factory_3d_demo\_runs\flow_2026-05-09T22-22-17-495Z_Comfortsleep\_buscar\_downloaded"
TARGETS = [
    ("gh1_92332214_qelara.mp4", "es", 92332214, "Qelara CerviFlex"),
    ("gh1_88147132_spinewellness.mp4", "en", 88147132, "Spine Wellness Mag - Stop Stretching"),
    ("gh1_87245929_hugterra.mp4", "en", 87245929, "Daniel L. Abrams MD - Hugterra Norwegian"),
    ("gh1_83419268_theramure.mp4", "en", 83419268, "Theramure NeckCloud Pro - Dr Thompson UK"),
]

model = WhisperModel("medium", device="cpu", compute_type="int8")
results = {}
for fn, lang, vid, brand in TARGETS:
    fp = os.path.join(DOWN, fn)
    if not os.path.exists(fp):
        results[fn] = {"error": "file_not_found"}
        continue
    try:
        segments, info = model.transcribe(fp, language=lang, beam_size=3, vad_filter=True)
        full = []
        segs = []
        for s in segments:
            segs.append({"start": round(s.start,2), "end": round(s.end,2), "text": s.text.strip()})
            full.append(s.text.strip())
        results[fn] = {
            "id": vid,
            "brand": brand,
            "language": info.language,
            "duration": round(info.duration, 2),
            "text": " ".join(full).strip(),
            "word_count": len(" ".join(full).split()),
            "first_15s": " ".join([x["text"] for x in segs if x["start"] < 15]),
        }
    except Exception as e:
        results[fn] = {"error": str(e)}

print(json.dumps(results, ensure_ascii=False))
