renderapi / main.py
sam12345324's picture
Create main.py
a3c7146 verified
raw
history blame
1.18 kB
from fastapi import FastAPI, File, UploadFile, Form
from fastapi.responses import FileResponse
import tempfile
import shutil
import os
app = FastAPI()
@app.post("/merge")
async def merge_endpoint(
files: list[UploadFile] = File(...),
orig_vol: float = Form(1.0),
music_vol: float = Form(0.5),
):
temp_dir = tempfile.mkdtemp()
try:
saved_files = []
# Save uploaded files to disk
for upload_file in files:
file_path = os.path.join(temp_dir, upload_file.filename)
with open(file_path, "wb") as out_file:
content = await upload_file.read()
out_file.write(content)
saved_files.append(file_path)
# Your merge logic here
# For demo: just return first uploaded file as "merged" output
if not saved_files:
return {"error": "No files uploaded"}
output_path = saved_files[0]
# Return the merged file (video or audio)
return FileResponse(output_path, media_type="application/octet-stream", filename="merged_output")
finally:
# Cleanup temp_dir after response is sent
shutil.rmtree(temp_dir)