from fastapi import FastAPI, File, UploadFile
import whisper
import os
import uuid

app = FastAPI()

model = whisper.load_model("small")

@app.get("/")
def root():
    return {"message": "Whisper server is running"}

@app.post("/transcribe")
async def transcribe_audio(file: UploadFile = File(...)):
    temp_filename = f"temp_{uuid.uuid4().hex}_{file.filename}"
    with open(temp_filename, "wb") as buffer:
        buffer.write(await file.read())

    result = model.transcribe(temp_filename)
    os.remove(temp_filename)
    return {"text": result["text"]}

@app.post("/transcribeMP4")
async def transcribe_mp4(file: UploadFile = File(...)):
    temp_filename = f"temp_{uuid.uuid4().hex}_{file.filename}"
    with open(temp_filename, "wb") as buffer:
        buffer.write(await file.read())

    result = model.transcribe(temp_filename)
    os.remove(temp_filename)

    return {
        "filename": file.filename,
        "language": result.get("language"),
        "text": result["text"]
    }
