2022-05-23 13:47:35 -04:00

50 lines
1.8 KiB
Python

from fastapi import FastAPI, Request, Form
description = """
Oki.cx is a API for Converting Youtube Videos to MP4 & MP3. ▶️
## Requests
You can Requst a **MP4** File.
You can Requst a **MP3** File.
"""
from starlette.templating import Jinja2Templates
import models
templates = Jinja2Templates(directory="templates")
app = FastAPI(
title="Oki.cx - YouTube Converter",
description=description,
version="0.1",
terms_of_service="http://oki.cx/youtube-converter/tos",
contact={
"name": "oki.cx",
"email": "cody@oki.cx",
},
license_info={
"name": "MIT License",
"url": "https://gitlab.oki.cx/mrpvtdagger/oki.cx-youtube-converter/-/raw/main/LICENSE",
},
)
@app.get("/")
def home(request: Request):
return templates.TemplateResponse("base.html",{"request": request, "is_hidden": "is-hidden"})
@app.post("/")
def download(request: Request, link: str = Form(...), media_format: str = Form(...)):
response = models.convert_video(link, media_format)
return templates.TemplateResponse("base.html",{"request": request, "is_hidden": "", "url": response["url"], "title": response["title"], "filename": response["filename"], "thumbnail": response["thumbnail"]})
@app.post("/json")
def download(request: Request, link: str = Form(...), media_format: str = Form(...)):
response = models.convert_video(link, media_format)
return {"title": response["title"], "url": response["url"], "title": response["title"], "filename": response["filename"], "thumbnail": response["thumbnail"]}
@app.get("/delete/{filename}")
def delete(request: Request, filename: str):
models.delete_file(filename)
return templates.TemplateResponse("base.html",{"request": request, "is_hidden": "is-hidden"})