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"})