meetbot.dev

bot api · microsoft teams

오늘 사용 가능

Microsoft Teams, 녹화됨.

Drop a teams.microsoft.com or teams.live.com URL into POST /v1/bots; we join via the web client as an anonymous guest, capture per-speaker audio, and emit a signed webhook with the manifest path on exit.

개요

왜 존재하는가.

설계상 web 클라이언트만. 네이티브 Teams SDK 키 불필요, 등록할 설치 가능한 Teams 앱 없음, 테넌트의 관리자 동의 없음. Bot은 Puppeteer가 조종하는 Chrome을 구동하여 게시한 URL로 teams.microsoft.com/meetingjoin을 로드하고, displayName으로 참여 양식을 채우고, 호스트의 입장 허용을 위해 lobby에 도착합니다. Meet과 Zoom 어댑터와 같은 Docker 컨테이너, 같은 오케스트레이터, 같은 webhook 계약.

자막 + 이름. Teams는 bot의 Chrome 안에서 가로채는 데이터 채널을 통해 확정된 자막 이벤트를 전송합니다 — 자막 UI를 DOM 스크레이프하지 않으므로 참가자가 창 크기를 조정하거나 패널을 옮겨도 자막이 떨어지지 않습니다. 실제 참가자 이름은 People 패널 (Teams가 UI 리디자인을 통해 안정적으로 유지)에서 옵니다. 오디오는 Meet 어댑터처럼 WebRTC SSRC 매핑을 키로 화자별입니다.

아직 없는 것. compliance bot 경로 없음 — 그것은 /product/compliance-recording-api Q4 로드맵 항목입니다. Teams Live Events (broadcast, 회의 아님) 없음. Skype-for-Business 레거시 회의 없음 (어쨌든 MS가 deprecate). 그 외 모든 것 — 예약된 Teams 회의, 즉석 meet-now 세션, 채널 회의, breakout rooms (단일 룸) — 은 web 어댑터가 오늘 처리하며 Meet과 Zoom과 같은 평면 시간당 $0.30입니다.

받게 되는 것

계약, 명확하게.

item

Web-client adapter

Xvfb 안의 Puppeteer + Chrome. Teams SDK 키 없음, 테넌트의 관리자 동의 없음 — bot이 익명 게스트처럼 회의 URL에 참여.

item

Captions data-channel intercept

페이지 안에서 Teams의 자막 이벤트 WebSocket을 탭하여 자막이 UI 리디자인과 창 크기 조정에 안정적입니다.

item

People-pane name mapping

People 패널의 실제 참가자 이름을 WebRTC SSRC를 통해 화자별 오디오와 결합. JSONL에 'speaker_2' 익명 없음.

item

Lobby + admit

Bot이 lobby에서 주최자의 허용을 기다립니다. 구성된 창 안에 아무도 허용하지 않으면 webhook에 lobby_timeout sub-code.

item

Tab video + chat

VP9 탭 캡처와 수신 채팅 메시지, Meet/Zoom 출력과 같은 형태. 이미 bot API를 소비하고 있다면 drop-in.

item

Sub-codes on exit

host_denied_admission, lobby_timeout, removed_from_meeting, meeting_ended, recording_disabled — 완료 webhook에서 표면화.