Skip to content

Commit

Permalink
Merge pull request #261 from KevinZhang19870314/main
Browse files Browse the repository at this point in the history
chore: add video download api endpoint
  • Loading branch information
harry0703 committed Apr 15, 2024
2 parents b836934 + 17df9a1 commit b9b9bea
Showing 1 changed file with 20 additions and 0 deletions.
20 changes: 20 additions & 0 deletions app/controllers/v1/video.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import os
import glob
import pathlib
import shutil

from fastapi import Request, Depends, Path, BackgroundTasks, UploadFile
Expand Down Expand Up @@ -171,3 +172,22 @@ def file_iterator(file_path, offset=0, bytes_to_read=None):
response.status_code = 206 # Partial Content

return response


@router.get("/download/{file_path:path}")
async def download_video(_: Request, file_path: str):
"""
download video
:param _: Request request
:param file_path: video file path, eg: /cd1727ed-3473-42a2-a7da-4faafafec72b/final-1.mp4
:return: video file
"""
tasks_dir = utils.task_dir()
video_path = os.path.join(tasks_dir, file_path)
file_path = pathlib.Path(video_path)
filename = file_path.stem
extension = file_path.suffix
headers = {
"Content-Disposition": f"attachment; filename={filename}{extension}"
}
return FileResponse(path=video_path, headers=headers, filename=f"{filename}{extension}", media_type=f'video/{extension[1:]}')

0 comments on commit b9b9bea

Please sign in to comment.