A SvelteKit streaming UI that embeds content from third-party providers and uses TMDB for movie/TV metadata.
- TMDB-powered catalog, search, and filters
- Multiple embed providers (VidSrc, VidLink, 111Movies, 2Embed)
- Auth, watchlist, and comments with moderation
- Server-rendered UI with image proxying
- Basic security controls (CSRF, captcha, rate limiting, CSP)
- SvelteKit + TypeScript + Tailwind CSS
- Prisma + MySQL
- JWT auth, Zod validation
Prereqs: Node.js 18+, pnpm, and MySQL (optional if you only browse content).
- Configure env:
cp .env.example .env- Install deps:
pnpm install- (Optional) DB setup:
pnpm prisma generate
pnpm prisma migrate dev- Run dev server:
pnpm devApp runs at http://localhost:5173
- Set required env vars (at minimum):
JWT_SECRETTMDB_API_KEYMYSQL_PASSWORDMYSQL_ROOT_PASSWORD
- Start:
docker compose up --build- Run migrations:
docker compose exec web pnpm prisma migrate devKey entries in .env.example:
DATABASE_URLJWT_SECRETTMDB_API_KEYTMDB_API_URL- Provider URLs:
VIDSRC_BASE_URL,VIDLINK_BASE_URL,MOVIES111_BASE_URL,EMBED2_BASE_URL
pnpm dev– start dev serverpnpm build– production buildpnpm test– run tests
MIT
This project embeds third‑party content and does not host media files. Use it only with properly licensed content and in compliance with applicable laws. The software is provided “as is” without warranty.


