The Microsoft Teams Helper App is a desktop application that integrates with the Microsoft Teams client to record audio during meetings. It provides seamless audio recording by combining inputs from your microphone and the Stereo Mix.
- Automatic Audio Recording: Starts recording automatically when the meeting state changes.
- Changeable Recording Folder: Modify the default recording folder through the settings menu.
- Lightweight Integration: Uses the local Teams client API to avoid additional permissions or configurations.
- Logs: Logs are saved in the recording folder for troubleshooting.
- Mouse Jiggler: Enable the "Keep Available Status" option in the application's context menu to maintain a green status in Teams.
- Autostart with Windows: Start app on log in.
- Download TeamsHelper-v1.x.exe from (Releases) to your Windows computer that runs the New Teams client
- In Microsoft Teams, enable the Third-Party API (see Microsoft documentation)
- Enable Stereo Mix in your system
- Run the application. You can find it in the system tray
To ensure proper functionality, you may need to enable Stereo Mix on your system:
- Right-click on the speaker icon in the system tray.
- Select "Sounds".
- Navigate to the "Recording" tab.
- If "Stereo Mix" or "Sound Mixer" is listed but disabled, right-click it and choose "Enable".
- If it's not listed:
- Right-click in an empty space and check both "Show Disabled Devices" and "Show Disconnected Devices".
- Look for "Stereo Mix" or "Sound Mixer", right-click, and select "Enable".
- Click "OK" to save your changes.
- Pull Requests, Issues, and Feature Requests are welcomed!
- This integration supports only the New Teams (2.0 client).
- Logs are stored in
app.log
in the recordings folder. - The recordings folder can be changed through the settings menu.
- The app uses the local Teams client API instead of Azure/M365 for simplicity.
- No permissions or app registrations required in Azure.
- Organizations don't need to approve additional exceptions for security policies.
- The app cannot detect meetings joined via other clients, such as mobile or web.
- Before Token Acquisition:
ws://localhost:8124?protocol-version=2.0.0&manufacturer=Kyvaith&device=TeamsHelper&app=TeamsHelper&app-version=1.0
- After Token Acquisition:
ws://localhost:8124?token=<TOKEN>&protocol-version=2.0.0&manufacturer=Kyvaith&device=TeamsHelper&app=TeamsHelper&app-version=1.0
-
Teams -> Client Update:
{ "meetingUpdate": { "meetingState": { "isMuted": false, "isVideoOn": false, "isHandRaised": false, "isInMeeting": true, "isRecordingOn": false, "isBackgroundBlurred": false, "isSharing": false, "hasUnreadMessages": false }, "meetingPermissions": { "canToggleMute": true, "canToggleVideo": true, "canToggleHand": true, "canToggleBlur": false, "canLeave": true, "canReact": true, "canToggleShareTray": true, "canToggleChat": true, "canStopSharing": false, "canPair": false } } }
-
Client -> Teams Request Toggle Mute:
{ "requestId": 1, "apiVersion": "2.0.0", "action": "toggle-mute" }
-
Teams -> Client Request Confirmation:
{ "requestId": 2, "response": "Success" }
-
Client -> Teams Token Refresh:
{ "tokenRefresh": "132cf8d9-403f-4d71-9067-8390160224cb" }
For more details on the legacy Teams API, refer to the Microsoft Teams WebSocket API Documentation.
This project is licensed under the Apache License 2.0. See the LICENSE file for details.
Contributions are welcome! Please open issues or pull requests for new features, bug fixes, or documentation improvements.