Spaces:
Sleeping
Sleeping
| from fastapi import FastAPI, File, UploadFile, Form | |
| from fastapi.responses import FileResponse | |
| import tempfile | |
| import shutil | |
| import os | |
| app = FastAPI() | |
| 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) |