vedio / app.py
sathish2352's picture
Update app.py
94cc57f verified
from fastapi import FastAPI, Query
from fastapi.responses import FileResponse, JSONResponse
import yt_dlp
import uuid
import os
app = FastAPI()
@app.get("/download")
def download_video(url: str = Query(..., description="Video URL to download")):
video_id = str(uuid.uuid4())
output_file = f"{video_id}.mp4"
with open("cookies.txt", "r") as f:
print(f.readline()) # just to check access
ydl_opts = {
'format': 'best',
'outtmpl': output_file,
'cookiefile': f # <-- Use the exported cookie file here
}
try:
with yt_dlp.YoutubeDL(ydl_opts) as ydl:
ydl.download([url])
return FileResponse(path=output_file, media_type="video/mp4", filename="video.mp4")
except Exception as e:
return JSONResponse(status_code=400, content={"error": str(e)})
finally:
if os.path.exists(output_file):
os.remove(output_file)