Skip to content

simula67/meeting-auto-attender

Repository files navigation

Description

Python program to automatically join the online meetings. The program picks meetings from meetings.xlsx, meetings.json or directly from Outlook (Picking up meetings from Outlook is supported only on Windows).

Only Zoom, WebEx and MS Teams are supported for video conferencing at the moment.

This program uses UI automation and is hence subject to errors. For example, Chrome may prompt user to click additional buttons to open Zoom ('Open these types of links in Zoom app'). Zoom may change its UI, causing this program to stop working.

USE WITH CAUTION.

Platforms

Windows, Linux and macOS.

Input format

The input should be in the given format:

Time : dd-mm-yyyy hh:mm (24-hour format)

Meeting URL: https://us02web.zoom.us/j/85071211231231231 (string)

Meeting ID : 123456123 (string)

Meeting Password : 1234 (string)

Comment: Example meeting (string)

Please refer the example in meetings.xlsx or meetings.json.

These example meetings should get skipped when the program is run since they started a long time ago. There is no need to remove them from these files, as long as MAX_LATENESS_FOR_MEETING is not changed in constants.py.

Modules used

pyautogui - https://pyautogui.readthedocs.io/en/latest/

openpyxl - https://openpyxl.readthedocs.io/en/stable/

PIL - https://pillow.readthedocs.io/en/stable/

PyWin32 - https://github.com/mhammond/pywin32

Pre-Requirements

  1. Zoom, WebEx, MS Teams apps
  2. Web browser (Chrome, Firefox etc. Make sure it has pop-up enabled to open Zoom app)
  3. Python - Download and install from https://www.python.org/downloads/

Steps to use

  1. Open a command prompt and type following command (installing modules - Pyautogui, Openpyxl, Pillow, pywin32)

(Please note that you need to uncomment the pywin32==306 line from requirements.txt for using the 'Pick meetings from Outlook' feature on Windows.)

pip install -r requirements.txt

This is command only needs to be run once, during setup. Afterward, run the main.py file as mentioned in step 5 to use the script over and over again.

Installation of pywin32 may fail on non-Windows systems. This is only required for picking up meetings from Outlook and therefore, this feature is not supported on non-Windows platforms. The rest of the program should continue to run even without this module.

  1. Optionally, open meetings.xlsx and enter the schedule of the day in the Excel sheet in the correct columns in the correct format.

Time : dd-mm-yyyy hh:mm Meeting ID : 123456123 (string)(not required if meeting link is provided) Meeting Password : 1234 (string)(not required if meeting link is provided) Comment: Example meeting (Optional)

Please follow the format that is specified.

Or, again optionally, you can use meetings.json and enter the meeting details there.

The program will combine the meetings it obtained from all sources (meetings.xlsx, meetings.json and Outlook)

  1. Run Zoom, WebEx and MS Teams. Log in with your username and password, if you want to join meetings as a particular user.

  2. Close all other window and have a clean desktop.

  3. Run main.py.

  4. Do not close the terminal window where the program is running.

Watch the terminal window for error messages.

Errors

  1. Mouse losing control: quickly move the mouse as far up and left as you can
  2. Program stuck in infinite loop: in the command prompt spam CTRL + C, re-run main.py to restart
  3. Any other errors will show up in the command prompt window if not it ll close re-run main.py to restart
  4. Do not let the computer sleep when there is long intervals between meetings

Future work

Add support for Google Meet.

Notes

Zoom has functionality to automatically keep audio and video disabled when joining a meeting. WebEx has similar functionality

It is highly advisable to have those enabled and not rely on functionality provided in this app. This is because this app uses UI automation, and it will be less reliable than Zoom's or WebEx's own settings.

Troubleshooting

Changes in UI elements between machines

Please note that some of the images supplied with this project were taken with "Dark Mode" turned on. It is possible that the images that are provided in this repository do not match the UI elements on your machine. This could be because of fonts, themes, mode etc. being different on your machine. If the corresponding UI elements are different on your machine, the program might exit with the following error:

Timeout exceeded while waiting for image <image> to be available. Timeout was <x> seconds

If you take screenshots of the UI elements provided in the "images" folder and replace them, that should solve this problem.

Unfortunately, it is not easy to provide all possible versions of these images as part of this project. You can also play with the confidence value in the automator.py to solve this problem. However, if the confidence is too low, it can cause mis-clicks, therefore, this method is not recommended.

Credit

Initial version from https://github.com/Kn0wn-Un/Auto-Zoom has been re-written almost entirely.

About

Python program to automatically join online meetings.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages