|
import os |
|
from fastapi import FastAPI, Header, Request |
|
from fastapi.responses import JSONResponse |
|
from typing import Annotated |
|
from fetchYoutubeSubtitle import fetchSubtitle, fetchSubtitleUrls |
|
|
|
token = os.getenv("APP_KEY") |
|
app = FastAPI() |
|
|
|
@app.get("/") |
|
def read_root(request:Request): |
|
print(request.headers) |
|
print(request.client.host) |
|
print(request.client.port) |
|
return {"Hello": "World!"} |
|
|
|
|
|
@app.get("/json") |
|
def read_json(): |
|
return JSONResponse(content={"Hello": "World!"}) |
|
|
|
|
|
@app.get("/subtitle/") |
|
async def get_subtitle(url: str, subtype: str="srt", x_token: Annotated[str | None, Header()] = None): |
|
if token != x_token: |
|
return JSONResponse({"error": "Invalid token"}) |
|
subtitle = await fetchSubtitle(url,subType=subtype) |
|
return JSONResponse(content=subtitle) |
|
|
|
|
|
@app.get("/subtitle-urls/") |
|
async def get_subtitleUrls(url: str, x_token: Annotated[str | None, Header()] = None): |
|
if token != x_token: |
|
return JSONResponse({"error": "Invalid token"}) |
|
subtitles = await fetchSubtitleUrls(url) |
|
return JSONResponse(content=subtitles) |