Skip to content

psolbach/cinefile

Repository files navigation

👹 Cinefile

Personal movie and streaming watch history database with AI-powered recommendations.

Bildschirmfoto 2026-05-17 um 14 32 17 CleanShot 2026-05-17 at 14 52 56@2x

What it does

  • Smooth UI and CRUD for your watch history
  • Avoid cold starts with several import and ingest methods
  • Keeps track of your watchlist
  • Generates spot-on AI "watch next" recommendations
  • Parses plain-text movies.txt list of titles and ratings
  • Integrates with your existing IMDb library
  • Enriches each entry via the TMDB API (poster, metadata, cast, etc.)
  • Stores everything in a local SQLite database
  • Compare your taste to friends with a shareable fingerprint
  • Built on SOTA web technologies

Setup

cp .env.example .env # replace with your API keys
npm install

Data ingestion

Either use the built in IMDb importer or create a movies.txt at the root (title plus rating):

npm run build:data

Formatting

The built-in parser for your movie.txt at the root is pretty forgiving and allows for some fuzzyness:

Parasite 8.0
The Sopranos S1 9.5
Dune: Part Two 2024 8.0

Fields: Title [Year] [Rating] [-- note]. Year and rating are optional.

Recommendations

We can call Gemini via GCP to generate "watch next" recommendations. The prompt will include your watched list plus ratings and split recommendations into classic movies and new releases. All results are matched against TMDB.

npm run build:ai

Fingerprint

We create a shareable fingerprint across your library and ratings to then compare with other users.

Each rated movie is packed as 4 bytes across the TMDB ID, 1 byte for the rating and a version prefix. A compressed and b64 encoded buffer then produces a short fingerprint.

As two fingeprints are compared, cosine similarity on the shared ratings is calculated to Jaccard scale.

Running

npm run dev # development
npm run build # production build
npm start # production server

Testing

npm test # unit tests
npm run test:e2e # Playwright smoke tests

The e2e suite is a minimal smoke test that boots the app, navigates the key pages, and asserts nothing crashes. See AGENTS.md for details.

Requirements

License

Licensed under GNU GPLv3

About

Personal movie and streaming watch history database with AI-powered recommendations.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors