Python script to automatically join Microsoft Teams meetings. Automatically turns off your microphone and camera before joining. Automatic login and blacklist can be set in the config file.
Always joins the newest meeting and leaves either after a specified time, if you are the last person in the meeting or only if a new one is available (see Configuration options for more information). I also made a short tutorial video on how to set up the bot: https://youtu.be/YgkSOqfIjf4
- Python3 (Download)
-
email/password:
The email/password of your Microsoft account (can be left empty if you don't want to automatically login) -
greeting:
Send custom text into the reply box. For example: "Hi, I'm present." -
run_at_time:
Time the scrip will start. Input is a string of the hour and minute in 24h format if you want it to occur immediately leave this empty. If a time before the current time is given, the next day is used. Also, make sure that you entered your email and password. For example, if you want the script to start searching meetings at 6 in the morning on the next day, you would input06:00
in the config. -
meeting_mode: Change which meetings should be joined. Modes 1, 2 and 3 are available.
1
Both channel and calendar meetings
2
Only channel meetings
3
Only calendar meetings -
organisation_num: If your Teams account is in multiple organisations, as seen in the example below, change the organisation_num to the number of the list item (counting starts from 1)
-
random_delay: If true, adds a random delay (10s-30s) before joining a meeting. Can be useful, so the bot seems more "human-like".
-
check_interval: The amount of seconds to wait before checking for meetings again. Only integer numbers greater than 1 are allowed.
-
auto_leave_after_min: If set to a value greater than zero, the bot leaves every meeting after the specified time (in minutes). Useful if you know the length of your session if this is left a the default the bot will stay in the meeting until a new one is available.
-
leave_if_last: If true, leaves the meeting if you are the last person in it.
-
headless: If true, runs Chrome in headless mode (does not open GUI window and runs in the background).
-
mute_audio: If true, mutes all the sounds.
-
chrome_type: Valid options:
google-chrome
,chromium
,msedge
. By default, google chrome is used, but the script can also be used with Chromium or Microsoft Edge. -
blacklist: A list of Teams and their channels to ignore. Meetings in these channels will not be joined. If you have a Team called "Test1" and, within that, two channels called "General" and "Channel1" and you don't want to join meetings in the "General" Channel:
"blacklist": [
{
"team_name": "Test1",
"channel_names": [
"General"
]
}
]
- blacklist_meeting_re: If calendar meeting title matches a regular expression, it goes to the blacklist. Leave empty to attend all meetings.
If you want to blacklist all the channels in a team, leave the square brackets empty: "channel_names": []
.
- Rename the config.json.example file to "config.json"
- Edit the "config.json" file to fit your preferences (optional)
- Install dependencies:
pip install -r requirements.txt
- Run auto_joiner.py:
python auto_joiner.py
- After starting, teams might be in Grid view, if this is the case change the view to list (How to do)