SoftwareSeptember 24, 20266 min read

How Can You Record Microsoft Teams Meetings Without a Bot?

Three ways to record Microsoft Teams meetings without a bot: Microsoft's native Teams APIs, OS-level capture APIs, or a desktop recording SDK. Here's how they compare.

TL;DR: When it comes to recording meetings, you should use a desktop recording SDK if you need both real-time and post-meeting data. Use Microsoft Graph if you only need post-meeting data and can obtain the right access.

Building a product like an AI meeting assistant or transcription app and looking to record Microsoft Teams meetings? You essentially have three options: use Microsoft's native Teams APIs, build local capture using operating system APIs or device native APIs, or record the meeting through a desktop application.

Method 1: Using Microsoft's Native Teams APIs for recording meetings without a bot

Best for: Products that only need post-meeting data and can work around Microsoft Teams' restrictive settings

For post-meeting workflows, Microsoft Graph lets you retrieve Teams recordings and transcripts after they have been generated. If your app uses organization-wide application permissions such as OnlineMeetingRecording.Read.All and OnlineMeetingTranscript.Read.All, approval from the customer's Microsoft 365 administrator and the applicable access policies is required. This delays onboarding because users need their administrator or IT team's involvement before they can retrieve Teams recordings and transcripts.

For real-time meeting data, Microsoft does not support a botless option. Instead, Microsoft's native option is the Real-time Media Platform which requires an application-hosted media bot. You cannot use native Microsoft Teams APIs to access live meeting audio and video without a bot.

When using the Real-time Media Platform, the bot must be built in C#/.NET and deployed on supported Azure infrastructure, and each active media session is pinned to the VM instance that accepted the call. This requires extra hosting costs, maintenance work, and complexity.

Limitations of Microsoft's Native Teams APIs for recording meetings without a bot

Microsoft Teams can retrieve recordings and transcripts after a meeting, but requires the right app permissions and settings in the customer's Microsoft 365 environment. The administrator who manages that environment (usually the customer's IT team or an external IT provider) controls whether customers can access meeting transcripts.

If your desktop meeting recorder relies on native Teams APIs like Microsoft Graph, users may need their administrator's approval before those features work. If they don't know whom to contact or can't obtain approval, they won't be able to use the desktop app's recording and transcript features.

If transcript API access is disabled, Microsoft returns a 403 Forbidden response even when your app has the required Graph permissions. As previously mentioned, for real-time meeting artifacts, Microsoft does not provide a native botless option. So if you want both real-time and post meeting data, you need to maintain two separate integration paths.

Method 2: Using ScreenCaptureKit and WASAPI for recording meetings without a bot

Best for: Capturing only audio on one specific operating system

There are also operating-system-level capture APIs that you can use for botless recording, such as ScreenCaptureKit on macOS and WASAPI on Windows, but they require developers to build the infrastructure around them.

These APIs let you capture media directly from the user's device, so recording does not depend on the customer's Teams configuration and does not require a Teams bot. ScreenCaptureKit and WASAPI allow you to process the captured media in real time or store it for post-meeting use, though their functionality is limited.

The main limitation is that native APIs only provide the underlying capture primitives. You still need to build the application logic for meeting detection, recording, storage, synchronization, transcription, speaker attribution, and failure handling yourself.

A more complete option is to use a desktop recording SDK. It provides a botless solution for both real-time and post-meeting data without requiring you to build the underlying capture stack from scratch, and it does not depend on Microsoft Teams admin configuration.

Method 3: Using a Desktop Recording SDK for recording meetings without a bot

Best for: Capturing meetings on all platforms and operating systems

A desktop recording SDK can be added to an Electron desktop application with a lightweight integration. Once configured, a desktop recording SDK can capture meeting audio, video, participant data, and real-time events, while also generating live speaker-attributed transcripts during the call.

The SDK also includes automatic meeting detection, which is especially useful for end-user applications. When recording through an application built with a desktop recording SDK, users do not need to manually start each recording or configure a Microsoft Teams specific recording workflow beforehand. The meeting can be detected and captured from the desktop application itself, reducing the amount of setup your product has to push onto the end user.

Install the SDK through npm:

npm install @recallai/desktop-sdk

Then initialize it when your Electron application starts:

const RecallAiSdk = require("@recallai/desktop-sdk");

RecallAiSdk.init({
  apiUrl: "https://us-west-2.recall.ai"
});

A Desktop Recording SDK offers bot-free Teams recording that can produce both real-time and post-meeting data. As your end-users expand to Zoom, Google Meet, or different supported desktop environments, you can keep the same recording layer instead of adding a new platform-specific integration each time.

Microsoft Teams APIs vs a Desktop Recording SDK

RequirementMicrosoft Teams native APIsDesktop Recording SDK
Real-time accessSupported but no botless option.Supported.
Post-meeting artifactsMeeting transcripts, meeting audio/video recordings.Meeting transcripts, meeting audio/video recordings.
Platform coverageMicrosoft Teams only.Supports Microsoft Teams, Zoom, and Google Meet, and in-person meetings.
Customer configurationDepends on Microsoft 365 permissions, tenant policies, and application access configuration.Primarily depends on local desktop and OS permissions rather than the customer's Teams API configuration, while requiring less development work than building directly with operating-system capture APIs.
Scaling to other platformRequires a separate integration for every provider.Integrated with both macOS and Windows, and works across both meeting platforms and in-person meetings.

As the comparison shows, a desktop recording SDK gives you access to the meeting data your product needs without requiring you to build the capture stack or maintain separate Teams integrations for real-time and post-meeting data. A desktop recording SDK also supports Zoom, Microsoft Teams, and Google Meet across supported macOS and Windows environments, so the same recording layer can continue working as users move between meeting platforms.

That advantage becomes even more important as your user base grows. Customers may have different tenant policies, permissions, and meeting configurations, and users may move between Microsoft Teams, Zoom, and Google Meet. A single desktop recording layer keeps those differences from becoming separate integration and reliability problems inside your product.