CineLens is an intelligent web application that solves the "what movie is this?" problem.
See the codeFeatures • Tech Stack • Getting Started • Deployment • Contributing
CineLens is an intelligent web application that solves the "what movie is this?" problem. By strictly recording a short video clip of a scene, CineLens utilizes Google's Gemini 1.5 Flash model to analyze the visual context—characters, setting, lighting, and costumes—to identify the movie with remarkable accuracy.
Beyond simple identification, CineLens acts as your personal movie assistant, fetching high-quality posters, official information links, and real-time streaming availability, prioritizing free platforms.
Follow these instructions to set up the project locally.
npm install -g pnpm.Clone the repository
git clone https://github.com/yourusername/cine-lens.git
cd cine-lens
Install Dependencies
pnpm install
Configure Environment (Optional for Gemini API)
To use Gemini API, create a .env file in the root directory.
touch .env
Add your Gemini API key to the file:
VITE_API_KEY=your_actual_api_key_here
Note: You can skip this step if you plan to use the local AI mode only.
Run the Application
Start the development server:
pnpm dev
Open your browser and navigate to http://localhost:3000.
CineLens offers two AI modes that you can switch between using the toggle in the header:
Note: Local AI mode uses a two-step approach (vision → captions → identification) which may be less accurate than Gemini's direct vision analysis, but provides a fully private, no-API-key alternative.
To switch modes, simply click the toggle switch in the header. The first time you enable Local AI mode, the models will download and initialize (this may take 1-2 minutes).
CineLens is configured to automatically deploy to GitHub Pages whenever you push to the main branch. To enable Gemini API functionality in your deployed application, you need to add your API key as a GitHub secret.
Get your Gemini API Key
Add the Secret to Your GitHub Repository
VITE_API_KEYAIza...)Trigger Deployment
.env file is now included in .gitignore to prevent accidental commitsVITE_API_KEY secret is correctly set in GitHub📖 For detailed deployment instructions with troubleshooting, see DEPLOYMENT.md
cine-lens/
├── src/
│ ├── components/ # Reusable UI components (Loader, VideoRecorder, etc.)
│ ├── services/ # AI service integration (Gemini API calls)
│ ├── utils/ # Helper utilities (Video frame extraction)
│ ├── App.tsx # Main application controller
│ └── main.tsx # Entry point
├── .env.example # Example environment variables
├── tailwind.config.js # Tailwind CSS configuration
└── vite.config.ts # Vite project configuration
Contributions make the open-source community an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
git checkout -b feature/AmazingFeature)git commit -m 'Add some AmazingFeature')git push origin feature/AmazingFeature)Distributed under the MIT License. See LICENSE for more information.
TypeScript
99.1%
CineLens is an intelligent web application that solves the "what movie is this?" problem.
See the codeFeatures • Tech Stack • Getting Started • Deployment • Contributing
CineLens is an intelligent web application that solves the "what movie is this?" problem. By strictly recording a short video clip of a scene, CineLens utilizes Google's Gemini 1.5 Flash model to analyze the visual context—characters, setting, lighting, and costumes—to identify the movie with remarkable accuracy.
Beyond simple identification, CineLens acts as your personal movie assistant, fetching high-quality posters, official information links, and real-time streaming availability, prioritizing free platforms.
Follow these instructions to set up the project locally.
npm install -g pnpm.Clone the repository
git clone https://github.com/yourusername/cine-lens.git
cd cine-lens
Install Dependencies
pnpm install
Configure Environment (Optional for Gemini API)
To use Gemini API, create a .env file in the root directory.
touch .env
Add your Gemini API key to the file:
VITE_API_KEY=your_actual_api_key_here
Note: You can skip this step if you plan to use the local AI mode only.
Run the Application
Start the development server:
pnpm dev
Open your browser and navigate to http://localhost:3000.
CineLens offers two AI modes that you can switch between using the toggle in the header:
Note: Local AI mode uses a two-step approach (vision → captions → identification) which may be less accurate than Gemini's direct vision analysis, but provides a fully private, no-API-key alternative.
To switch modes, simply click the toggle switch in the header. The first time you enable Local AI mode, the models will download and initialize (this may take 1-2 minutes).
CineLens is configured to automatically deploy to GitHub Pages whenever you push to the main branch. To enable Gemini API functionality in your deployed application, you need to add your API key as a GitHub secret.
Get your Gemini API Key
Add the Secret to Your GitHub Repository
VITE_API_KEYAIza...)Trigger Deployment
.env file is now included in .gitignore to prevent accidental commitsVITE_API_KEY secret is correctly set in GitHub📖 For detailed deployment instructions with troubleshooting, see DEPLOYMENT.md
cine-lens/
├── src/
│ ├── components/ # Reusable UI components (Loader, VideoRecorder, etc.)
│ ├── services/ # AI service integration (Gemini API calls)
│ ├── utils/ # Helper utilities (Video frame extraction)
│ ├── App.tsx # Main application controller
│ └── main.tsx # Entry point
├── .env.example # Example environment variables
├── tailwind.config.js # Tailwind CSS configuration
└── vite.config.ts # Vite project configuration
Contributions make the open-source community an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
git checkout -b feature/AmazingFeature)git commit -m 'Add some AmazingFeature')git push origin feature/AmazingFeature)Distributed under the MIT License. See LICENSE for more information.
TypeScript
99.1%