meetbot.dev

bot api · microsoft teams

disponível hoje

Microsoft Teams, gravado.

Coloque URL teams.microsoft.com ou teams.live.com em POST /v1/bots; entramos via cliente web como convidado anônimo, capturamos áudio por falante, e emitimos webhook assinado com rota do manifesto na saída.

visão geral

Por que isso existe.

Apenas cliente web, por design. Sem chave de SDK nativo Teams necessária, sem app instalável Teams para registrar, sem consentimento de admin no seu tenant. O bot dirige um Chrome pilotado por Puppeteer que carrega teams.microsoft.com/meetingjoin com a URL postada, preenche o form de entrada com seu displayName, e pousa na sala de espera para o host admitir. Mesmo container Docker, mesmo orquestrador, mesmo contrato de webhook que adaptadores Meet e Zoom.

Captions + nomes. Teams envia eventos de caption finalizados através de canal de dados que interceptamos dentro do Chrome do bot — não raspamos o DOM da UI de captions, então captions não caem quando participantes redimensionam janelas ou movem painéis. Nomes reais de participantes vêm do painel People (que Teams mantém estável através de redesigns de UI); áudio é por falante indexado pelo mapeamento SSRC do WebRTC igual o adaptador Meet.

O que ainda não está aqui. Sem caminho de bot de compliance ainda — esse é o item de roadmap Q4 /product/compliance-recording-api. Sem Teams Live Events (broadcast, não reunião). Sem reuniões legacy Skype-for-Business (depreciado pela MS de qualquer forma). Para tudo mais — reuniões Teams agendadas, sessões meet-now ad-hoc, reuniões de canal, breakout rooms (sala única) — o adaptador web lida hoje, no mesmo $0,30/h plano que Meet e Zoom.

o que você recebe

O contrato, detalhado.

item

Adaptador web-client

Puppeteer + Chrome dentro de Xvfb. Sem chave SDK Teams, sem consentimento admin no seu tenant — bot entra na URL como qualquer convidado anônimo.

item

Intercept de canal de dados de captions

Tapamos o WebSocket de eventos de caption do Teams dentro da página para captions serem estáveis através de redesigns de UI e redimensionamentos.

item

Mapeamento de nomes do painel People

Nomes reais de participantes do painel People, juntados a áudio por falante via SSRC do WebRTC. Sem anonimato 'speaker_2' no JSONL.

item

Sala de espera + admissão

Bot espera na sala de espera para o organizador admitir. Sub-código lobby_timeout no webhook se ninguém admite na janela configurada.

item

Vídeo de aba + chat

Captura de aba VP9 e mensagens de chat entrantes, mesmo formato que saídas Meet/Zoom. Drop-in se já consome a API do bot.

item

Sub-códigos na saída

host_denied_admission, lobby_timeout, removed_from_meeting, meeting_ended, recording_disabled — surgem no webhook de finalização.