Files
youtube-microservice/app/api/v2/endpoints/youtube.py

23 lines
734 B
Python

from fastapi import APIRouter
from app.schemas import TaskCreateResponse
from app.schemas import DownloadRequest
from app.tasks import download_youtube
from app.services import YouTubeService
router = APIRouter()
@router.post("/download", response_model=TaskCreateResponse)
async def download_video(data: DownloadRequest):
task = download_youtube.delay(url=str(data.url), quality=data.quality)
return TaskCreateResponse(task_id=task.id, status=task.status)
@router.get("/resolutions")
async def video_resolutions(url: str):
return {"resolutions": YouTubeService.resolutions(url)}
@router.post("/size")
async def video_size(data: DownloadRequest) -> dict[str, int]:
return {"size": YouTubeService.filesize(data)}