ani-web: FastAPI + HLS proxy over anidb.app, vanilla UI

- upstream.py: Cloudflare-proof fetchers (curl_cffi), self-checking
- app.py: /api/* routes + /stream/{token} HLS proxy (CDN has no CORS)
- static/: search -> detail/seasons/episodes -> hls.js player, history
- verified end-to-end: search chainsaw man -> ep1 dub 1080p segment
This commit is contained in:
jozamudi committed 2026-08-19 15:06:43 +00:00
commit e4dde86d85
10 files changed
+1151

No files matched your search

+20
View File
@@ -0,0 +1,20 @@
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>ani-web</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<header>
<a class="logo" href="/" onclick="location.replace('/');return false">ani-web</a>
<form onsubmit="const q=document.getElementById('q').value.trim(); if(q) location='?q='+encodeURIComponent(q); return false">
<input id="q" placeholder="search anime…" autocomplete="off">
</form>
</header>
<main id="main"><p class="muted">Search for an anime to get started.</p></main>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/hls.min.js"></script>
<script src="app.js"></script>
</body>
</html>