Setup
1. Google Cloud Console
Enable Google Calendar API + Google Meet REST API v2. Credentials > OAuth 2.0 Client ID > Web application. Redirect URI: https://[tenant].studeia.com/api/institution/video-provider/callback/google-meet.
2. Studeia
Settings > Video Provider > Google Meet > Connect > paste Client ID + Secret > Authorize (admin consent flow). Tokens stored AES-256-GCM encrypted.
How it works
Studeia GoogleMeetAdapter.createMeeting() → Calendar API: events.insert with conferenceData.createRequest → Google returns event + hangoutLink. Student joins via joinMethod=external (new tab).
Recording sync
Cron /api/cron/recording-sync every 15min: queries Meet REST API v2 GET /v2/conferenceRecords/{name}. Updates recordingUrl + creates LiveClassTranscription if transcript available.
Recording must have been STARTED by host during meeting. If host forgot: no recording to sync.
Limitations vs Zoom/Teams
| Feature | Google Meet | Zoom | Teams |
|---|---|---|---|
| Create meeting via API | Yes | Yes | Yes |
| End meeting via API | NO | Yes | NO |
| Start recording via API | NO | Yes | NO |
| Get recording via API | Yes | Yes | Yes |
| Auto transcript | Yes (Workspace Edu+) | Yes (VTT) | Yes (VTT) |
| Webhook lifecycle | NO (polling only) | Yes | Yes (Graph Notifications) |
When NOT to use Google Meet
- ❌ School without paid Workspace (1h limit per meeting)
- ❌ Want automatic recording without depending on host clicking
- ❌ Want iframe embed (use BBB)
- ❌ Want webhook meeting events