|
3 | 3 | import shutil |
4 | 4 |
|
5 | 5 | from fastapi import Request, Depends, Path, BackgroundTasks, UploadFile |
| 6 | +from fastapi.responses import FileResponse |
6 | 7 | from fastapi.params import File |
7 | 8 | from loguru import logger |
8 | 9 |
|
@@ -78,7 +79,7 @@ def file_to_uri(file): |
78 | 79 |
|
79 | 80 |
|
80 | 81 | @router.delete("/tasks/{task_id}", response_model=TaskDeletionResponse, summary="Delete a generated short video task") |
81 | | -def create_video(request: Request, task_id: str = Path(..., description="Task ID")): |
| 82 | +def delete_video(request: Request, task_id: str = Path(..., description="Task ID")): |
82 | 83 | request_id = base.get_task_id(request) |
83 | 84 | task = sm.state.get_task(task_id) |
84 | 85 | if task: |
@@ -130,3 +131,13 @@ def upload_bgm_file(request: Request, file: UploadFile = File(...)): |
130 | 131 | return utils.get_response(200, response) |
131 | 132 |
|
132 | 133 | raise HttpException('', status_code=400, message=f"{request_id}: Only *.mp3 files can be uploaded") |
| 134 | + |
| 135 | + |
| 136 | +@router.get("/stream/{file_path:path}") |
| 137 | +async def stream_video(request: Request, file_path: str): |
| 138 | + tasks_dir = utils.task_dir() |
| 139 | + video_path = os.path.join(tasks_dir, file_path) |
| 140 | + if os.path.isfile(video_path): |
| 141 | + return FileResponse(video_path, media_type="video/mp4", filename=file_path) |
| 142 | + else: |
| 143 | + return {"message": "File not found."} |
0 commit comments