The ultimate next-generation open-source cinematic streaming platform and TMDB indexer — now with anime.
✨ Features • 🏗️ Architecture • 🚀 Getting Started • 📁 Structure • 🔌 API • ⚖️ Legal
AniXFlix is a state-of-the-art, high-performance streaming directory built with Next.js App Router, React, and Tailwind CSS.
It has two catalog worlds:
- 🎬 Movies & TV — metadata from the TMDB API, playback via curated third-party embed servers.
- 🎌 Anime — metadata from AniList, streaming sources aggregated by the built-in
anixanimeprovider layer (12 providers), served through Next.js API routes with an HLS proxy.
Note: AniXFlix is an indexer. It does not host, store, or stream any media files on its own servers.
- 🎨 Premium Aesthetic: Glassmorphism, dynamic gradients, micro-animations, and a responsive layout from mobile to 4K TVs.
- 🎬 Movies & TV Catalog: Trending, popular, top-rated, cast details, similar content, and season/episode browsing powered by TMDB.
- 🎌 Anime Catalog: AniList-powered discovery with episode lists, SUB/DUB toggle, and multi-provider failover (ReAnime, AniKoto, AnimeGG, AniNeko, AniBD + more).
- ⚡ Dynamic Image Proxy: The
/api/images/[type]/[id]route resolves titled English backdrops from TMDB on the fly via cache-controlled302 Redirects— fast loads, no rate-limit pressure, no UI flashes. - 📡 HLS Proxy: The
/api/anixanime/proxyroute rewrites HLS playlists/keys and subtitles so streams play in-browser with one custom player. - 🖥️ Multi-Server Players: One-tap server switching for both movies/TV (
components/player) and anime (AniXAnimePlayer+AniXCustomPlayer). - 💾 Local-First State: Watchlist, history, and continue-watching in Zustand + LocalStorage. Your data never leaves your device.
- 🔍 Global Search: Instant debounced search modal across movies, TV, and anime.
- 📱 Mobile Optimized & APK Ready: Responsive design plus a Flutter WebView wrapper in
AniXFlixApk/(Android).
- Framework: Next.js 16 (App Router)
- Language: TypeScript
- Styling: Tailwind CSS 4, shadcn/ui, Lucide icons
- State: Zustand (persisted) for watchlist, history, and continue-watching
- Data Sources: TMDB (movies/TV), AniList (anime metadata),
anixanimescrapers (anime streams)
Movies/TV page → TMDB metadata → embed server iframe (AnixHub, RozgarLelo, …)
Anime watch page → /api/anixanime/episodes|watch → anixanime providers → HLS via /api/anixanime/proxy
Movie-server code that must not appear on the public GitHub lives in:
/private-servers/anixserver2/ # standalone Express streaming server — git-ignored
/private-servers/is in.gitignore, and the old trackedanixserver2/path has been unstaged from git — so the next push removes server code from GitHub while it keeps working on your machine.- Run it locally with
cd private-servers/anixserver2 && npm install && npm run dev. - The web app never imports it (only points at its deployed URL), so the site builds and runs fine without it.
- Node.js 18.x or higher
- A free API key from TMDB
-
Clone the repository
git clone https://github.com/AniXDex/AniXFlix.git cd AniXFlix -
Install dependencies
npm install
-
Configure environment variables
Create a
.envfile in the root (already git-ignored) and add your TMDB key:TMDB_API_KEY=your_v3_api_key_here
NEXT_PUBLIC_TMDB_API_KEYis accepted as a fallback. Never commit.env. -
Run the development server
npm run dev
Open
http://localhost:3000🎉
| Command | What it does |
|---|---|
npm run dev |
Start dev server |
npm run build |
Production build |
npm run start |
Serve production build |
npm run lint |
Run ESLint (ignores private-servers/, .next/, build/) |
After cleanup, run
npm installonce to syncpackage-lock.jsonwith the trimmed dependency list.
app/
(main)/ # pages: home, movies, series, search, detail, play, anime/…, history, my-list
actions/ # server actions: play, search, category, tv, provider
api/
movies/ # TMDB catalog endpoints (public base code)
images/ # backdrop-resolver redirects (public base code)
anixanime/ # anime episodes/watch + HLS proxy (public)
components/
player/ # movie/TV player (MyPlayer, PlayClient, PlayerTabs)
anime/ # anime player, episode list, cards, rows
movie/ # cards, rows, provider row, watchlist button
ui/ # shadcn/ui primitives
lib/ # tmdb, anilist, mapTmdbToAnix, origin, playback, utils, iconsclub
store/ # zustand persisted store (watchlist/history/continue-watching)
types/ # anime + shared types
anixanime/ # anime provider layer: core/ + 12 providers/ + file worker entry
AniXFlixApk/ # Flutter WebView wrapper (Android)
private-servers/ # ⛔ git-ignored: anixserver2 Express server (local only)
public/ # logos, images, robots.txt
| Route | Purpose |
|---|---|
GET /api/movies |
Popular / featured / trending (TMDB) |
GET /api/movies/[movieId] |
Single title, movie-first then TV fallback (TMDB) |
GET /api/movies/public/[publicId] |
Same lookup by public id (TMDB) |
GET /api/images/[type]/[id] |
Best English backdrop → 302 to TMDB CDN |
GET /api/anixanime/* |
Anime gateway: search, map, episodes, watch, stream |
GET /api/anixanime/proxy?url=&referer= |
HLS/segment/subtitle proxy with playlist rewriting |
AniXFlix is a demonstration project and acts purely as an automated search engine and indexer.
- No File Hosting: We do NOT host, upload, or manage any video files, media, or content on our own servers.
- Safe Harbor: All video content is embedded from third-party services and APIs. We have no control over content hosted on third-party servers.
- DMCA: Concerns about the media itself must go to the actual file hosts. We comply with the DMCA and promptly remove indexed links on valid notification — open an issue in this repo.
For takedown requests regarding indexed links, please open an issue or contact us via this GitHub repository.