import sys, json, os
from faster_whisper import WhisperModel

fp = sys.argv[1]
lang = sys.argv[2] if len(sys.argv) > 2 else "es"
vid = sys.argv[3] if len(sys.argv) > 3 else "?"

if not os.path.exists(fp):
    print(json.dumps({"error": "file_not_found", "path": fp}))
    sys.exit(1)

# small model is faster, less accuracy but enough for awareness/jerga detection
model = WhisperModel("small", device="cpu", compute_type="int8")
segments, info = model.transcribe(fp, language=lang, beam_size=1, 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())

out = {
    "id": vid,
    "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]),
    "first_30s": " ".join([x["text"] for x in segs if x["start"] < 30]),
}
print(json.dumps(out, ensure_ascii=False))
