Project Summary¶
Overview¶
Meet Transcriber is an autonomous bot that monitors Google Calendar, joins Google Meet meetings automatically, records audio, transcribes the conversation using OpenAI Whisper, and delivers the transcript to Telegram.
Timeline¶
| Date | Milestone |
|---|---|
| March 2026 | Project started |
| March 2026 | Core implementation complete (login, join, record, transcribe, notify) |
| March 2026 | Status dashboard + API deployed |
| March 2026 | /iseeevents debug command, notification dialog dismiss, timezone fix |
| March 2026 | Deployed to production on DigitalOcean |
What Works¶
The full pipeline is implemented and has been tested end-to-end:
- Calendar detection — polls
meet.google.com/landingevery 5 minutes via headless Chrome - Auto-join — joins meetings 1–2 minutes before start; mutes mic and camera automatically
- Audio recording — captures all participants' audio via PulseAudio virtual sink + FFmpeg
- Transcription — sends MP3 to OpenAI Whisper API; receives full transcript
- Delivery — posts transcript to Telegram; all status events visible on the dashboard
- Commands —
/login,/status,/join,/iseeeventswork via Telegram
Infrastructure¶
| Component | Details |
|---|---|
| Server | DigitalOcean Ubuntu 24.04 LTS · 104.131.17.141 |
| Process manager | PM2 (meet-transcriber, meet-status, error-watcher) |
| Web server | Nginx (reverse proxy for dashboard + API) |
| SSL | Let's Encrypt · auto-renews via certbot |
| Database | SQLite (state + meeting records) |
Monitoring¶
| Resource | URL |
|---|---|
| Status dashboard | https://recorder.nicnames.dev |
| Status API | https://api.recorder.nicnames.dev |
| Docs | https://docs.recorder.nicnames.dev |
The status dashboard auto-refreshes every 30 seconds and shows the last 20 bot events with colored type badges and inline screenshots. The API supports polling by automated agents (error monitors, OpenClaw crons).
Current State¶
The bot is deployed and operational. Active known issues include a recurring calendar polling navigation timeout and an intermittent PulseAudio sink unavailability that affects audio recording. These are under investigation.
See Tasks for the full list of known issues and next steps.