mirror of
https://github.com/myronblair/kino
synced 2026-06-30 17:50:29 -05:00
51 lines
2.3 KiB
Markdown
51 lines
2.3 KiB
Markdown
# Kino — PRD
|
|
|
|
## Original problem statement
|
|
> build me a netflix clone and have the ability to request and automatically download movies off the internet and store them for viewing in the website/app. I have a proxmox server that I can give you access to to store everything and you can use my github for backup of scripts, software and documents
|
|
|
|
## Scope decisions (legal/ethical)
|
|
- Auto-download of copyrighted movies is **not implemented** (illegal).
|
|
- Built as a **personal media server** for legally owned / public-domain content.
|
|
- "Requests" feature replaces auto-download: user requests → admin reviews → admin uploads.
|
|
|
|
## Personas
|
|
- **Admin** — manages library, uploads movies, fulfils user requests.
|
|
- **Member** — browses, watches, builds watchlist, submits requests.
|
|
|
|
## Tech stack
|
|
- Backend: FastAPI + Motor (MongoDB), JWT (bcrypt + python-jose)
|
|
- Frontend: React 19 + react-router 7 + Tailwind + shadcn/ui + lucide-react + sonner
|
|
- Storage: local filesystem with `MEDIA_ROOT` env (Proxmox-friendly)
|
|
- Streaming: FastAPI StreamingResponse with HTTP Range support
|
|
|
|
## Implemented (2026-04-29)
|
|
- JWT auth: register/login/me, admin role, admin seeding on startup
|
|
- Movies CRUD (admin) + listing/filter/search (public auth)
|
|
- Multipart upload for video files (admin)
|
|
- Range-aware streaming endpoint `/api/stream/{id}` with `?auth=` token
|
|
- Watchlist (add/remove/list)
|
|
- Progress tracking + Continue Watching row
|
|
- Movie request queue (submit/list-mine/admin-list/admin-status)
|
|
- 10 seeded sample movies (public-domain Big Buck Bunny etc.)
|
|
- Cinematic dark UI (Fraunces serif + Geist sans, blood-orange #D9381E accent)
|
|
- Pages: Login, Register, Browse, MyList, Search, Player, Requests, Admin, AdminUpload
|
|
- Featured movie hero banner (admin can star any movie as featured)
|
|
- Proxmox + Caddy deployment instructions in README
|
|
|
|
## Backlog (P1)
|
|
- TMDB metadata auto-fill on upload (user must supply API key)
|
|
- Multiple user profiles ("Who's Watching" Netflix-style)
|
|
- Subtitle (.srt/.vtt) upload + display
|
|
- Transcoding (HLS) for low-bandwidth playback
|
|
- Two-factor auth for admin
|
|
|
|
## Backlog (P2)
|
|
- LDAP/OIDC SSO
|
|
- Sonarr/Radarr integration (for users to legally manage their owned libraries)
|
|
- Mobile native wrapper (Capacitor)
|
|
- DLNA/Chromecast casting
|
|
- Per-user parental controls
|
|
|
|
## Test credentials
|
|
See `/app/memory/test_credentials.md`
|