meetbot.dev

bot api · microsoft teams

disponible hoy

Microsoft Teams, grabado.

Mete una URL teams.microsoft.com o teams.live.com en POST /v1/bots; nos unimos vía el cliente web como invitado anónimo, capturamos audio por hablante, y emitimos un webhook firmado con la ruta del manifiesto al salir.

resumen

Por qué existe esto.

Solo cliente web, por diseño. Sin clave de SDK nativo de Teams requerida, sin app instalable de Teams que registrar, sin consentimiento de admin en tu tenant. El bot conduce un Chrome pilotado por Puppeteer que carga teams.microsoft.com/meetingjoin con la URL que enviaste, rellena el formulario de unión con tu displayName, y aterriza en la sala de espera para que el host admita. Mismo contenedor Docker, mismo orquestador, mismo contrato de webhook que los adaptadores Meet y Zoom.

Captions + nombres. Teams envía eventos de caption finalizados a través de un canal de datos que interceptamos dentro del Chrome del bot — no raspamos el DOM de la UI de captions, así los captions no se caen cuando los participantes redimensionan ventanas o mueven paneles. Los nombres reales de participantes vienen del panel People (que Teams mantiene estable a través de sus rediseños de UI); el audio es por hablante indexado por el mapeo SSRC de WebRTC igual que el adaptador Meet.

Lo que aún no está aquí. Sin camino de bot de cumplimiento aún — eso es el item de hoja de ruta Q4 /product/compliance-recording-api. Sin Teams Live Events (broadcast, no reunión). Sin reuniones legacy de Skype-for-Business (deprecado por MS de todas formas). Para todo lo demás — reuniones Teams programadas, sesiones meet-now ad-hoc, reuniones de canal, breakout rooms (sala única) — el adaptador web lo maneja hoy, al mismo $0,30/h plano que Meet y Zoom.

lo que recibes

El contrato, detallado.

item

Adaptador web-client

Puppeteer + Chrome dentro de Xvfb. Sin clave SDK de Teams, sin consentimiento de admin en tu tenant — el bot se une a la URL de reunión como cualquier invitado anónimo.

item

Intercepción de canal de datos de captions

Tapamos el WebSocket de eventos de caption de Teams dentro de la página para que los captions sean estables a través de rediseños de UI y redimensionamientos de ventana.

item

Mapeo de nombres del panel People

Nombres reales de participantes del panel People, unidos a audio por hablante vía SSRC de WebRTC. Sin anonimato 'speaker_2' en el JSONL.

item

Sala de espera + admisión

El bot espera en la sala de espera para que el organizador admita. Sub-código lobby_timeout en el webhook si nadie admite dentro de la ventana configurada.

item

Vídeo de pestaña + chat

Captura de pestaña en VP9 y mensajes de chat entrantes, misma forma que las salidas Meet/Zoom. Drop-in si ya consumes la API del bot.

item

Sub-códigos a la salida

host_denied_admission, lobby_timeout, removed_from_meeting, meeting_ended, recording_disabled — surgen en el webhook de finalización.