Skip to content
Studeia Docs

Multi-provider live classes (BBB, Zoom, Teams, Meet)

Studeia supports 4 video providers: BigBlueButton (iframe), Zoom (S2S OAuth), Teams (Graph API), Google Meet (OAuth Calendar). Adapter pattern, webhook lifecycle, recording sync via cron.

By Studeia Team 2026-05-23 6 min
Resposta curta

Studeia's live classes work with the provider your institution already uses: BigBlueButton, Zoom, Microsoft Teams or Google Meet, with a per-class selector. Credentials are encrypted (AES-256-GCM), recordings are synced automatically and the transcript (Zoom/Teams) can be ingested into the AI tutor. You run live classes inside the platform, without depending on a single video vendor.

Supported providers

ProviderAuthJoinRecordingsTranscript
BBBsharedSecretiframeYes, native APIText provided
ZoomServer-to-Server OAuthnew tabWebhook + cronVTT auto
TeamsClient Credentialsnew tabGraph API + cronVTT auto
Google MeetOAuth + Calendar APInew tabCalendar API + cronManual in Meet

Adapter pattern

resolveVideoProvider(tenantId, liveClass?) cascades:

  1. liveClass.videoProvider (if specified)
  2. VideoProviderConfig.isDefault
  3. Tenant.config.bbb (legacy backward compat)
  4. BBB env vars (global fallback)

Webhooks and recording sync

  • POST /api/webhooks/video/zoom β€” meeting events + recording.completed
  • POST /api/webhooks/video/teams β€” Graph notifications
  • GET /api/cron/recording-sync β€” polling every 15min as fallback

Credentials

Stored in VideoProviderConfig with AES-256-GCM. Unique: [tenantId, provider].

Limitations

  • BBB: needs self-hosted instance (or managed BBB provider). Cost: $20-200/month.
  • Zoom: duration limit per tier (free=40min, paid=unlimited).
  • Teams: endMeeting not supported via API.
  • Google Meet: recording/transcription started manually by host.
  • Streaming to YouTube/Twitch: not natively supported.

See also

FAQ

What video provider does Studeia use?

4 options: BigBlueButton (default, iframe embed, open-source), Zoom (Server-to-Server OAuth), Microsoft Teams (Azure AD Client Credentials), Google Meet (OAuth admin consent). Admin chooses per tenant (VideoProviderConfig default) or per specific lesson (LiveClass.videoProvider override).

Do BBB and Zoom work the same way for students?

Not exactly. BBB supports iframe embed (joinMethod='iframe', student sees lesson inside Studeia). Zoom, Teams and Meet open in new tab (joinMethod='external', X-Frame-Options blocks iframe). UI shows card with countdown + 'Join' button for these 3.

Are recordings available?

Yes, automatically. Provider webhook notifies when recording is ready + cron /api/cron/recording-sync runs every 15min as fallback. recordingUrl saved in LiveClass. For Zoom/Teams: VTT transcript also captured (creates LiveClassTranscription that can be ingested in RAG).

Can I restrict live class to a specific group?

Yes. LiveClass.classGroupId optional. When set: only students from that group see and can join (critical rules 45-48). Without classGroupId: all enrolled in course see.

Veja tambem

Multi-provider live classes (BBB, Zoom, Teams, Meet)