A real-time emotion detection tool for video meetings. Captures frames from your video call and displays detected emotions as beautiful popups.
pip install fastapi uvicorn opencv-python pillow transformers torchSave your main.py file and run:
python main.pyYou should see:
INFO: Uvicorn running on http://127.0.0.1:8000
Keep this terminal open! The API needs to keep running.
- Go to
chrome://extensions/ - Turn on Developer mode (top-right toggle)
- Click Load unpacked
- Select your
emotion-detectorfolder - A purple icon should appear in your toolbar
- Open a video call (Google Meet, Teams, Zoom)
- Click the purple icon
- Enter API endpoint:
http://127.0.0.1:8000/detect/file - Enter your name
- Click Start Detection
- Watch emotion popups appear! ✨
| Component | Location | Purpose |
|---|---|---|
| Backend API | http://127.0.0.1:8000 |
Analyzes images, returns emotions |
| Chrome Extension | In your browser toolbar | Captures video frames, sends to API, shows popups |
- You click "Start Detection" in the Chrome extension
- Extension captures a frame from your video call every 1.5 seconds
- Frame is sent to the API running on your computer
- API analyzes the face and detects emotion (Happy, Sad, Angry, etc.)
- Emotion popup appears on your screen in real-time
- Data is logged for later export as JSON
- Click Export Logs in the extension popup
- A JSON file downloads with timestamps and emotions
- Use it for analysis or reporting
Example log:
[
{
"timestamp": "2025-01-15T10:30:45.123Z",
"participant_name": "You",
"emotion": "HAPPY"
},
{
"timestamp": "2025-01-15T10:30:46.500Z",
"participant_name": "You",
"emotion": "NEUTRAL"
}
]- Python 3.8+
- Chrome/Chromium browser
- 4GB RAM (minimum)
- Internet connection (for first-time model download)
- Emotions are detected locally on your computer (no cloud upload)
- Data is stored in browser storage, exportable as JSON
- Works on Google Meet, Microsoft Teams, Zoom, and any video site
- Keep the API terminal window open while using the extension
- Detect multiple people: Modify
emotion_capture.pyto detect all faces instead of just the largest one - Real-time dashboard: Build a web dashboard to visualize emotions over time
- Custom emotions: Train the model with your own emotion labels
- Sound notifications: Add audio alerts when specific emotions are detected
- Cloud deployment: Deploy the API to Vercel, AWS, or Heroku for remote use
- Video recording: Save video clips with emotion timestamps