mirror of
https://github.com/myronblair/kino
synced 2026-06-30 17:50:29 -05:00
2.3 KiB
2.3 KiB
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_ROOTenv (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