Files
kino-app/memory/PRD.md
T
2026-04-29 14:49:07 +00:00

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_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