50 lines
1.8 KiB
Python
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"}) |