The main purpose of the google-meet-visitor is just to visit calls in google meet.
The main feature is that you can record calls.
It will automate all the user actions, i.e join a call, mute the browser micro and cam, submit that you are in the call, etc.
git clone git@github.com:KR1470R/google-meet-visitor.git
npm ci
All the config parameters are stored in the .env file in root of the project.
Variables with asterisk* are important, you won't be able to run the program without them!
USER_DATA_DIR* - specify the path to your google chrome profile directory. See here.
TARGET_CALL_LINK* - link to your google meet call.
CALL_TIMER_MINUTES* - how many minutes the visitor must stay at call
OUTPUT_RECORD_TAB - custom path to folder for output records. By default is dist/records/
in the root.
WIDTH_PX - width of browser window. By default 1000.
HEIGHT_PX - height of browser window. By default 800.
MINIMIZED - true or false. If true, the window of the browser will be minimized and if false - maximized. By default false.
MUTE - true or false. If true, the browser will be totally muted. By default false.
RECORD_TAB - true or false. If true, the visitor will record the call. By default false.
ASK_JOIN_WAIT_MIN - how many minutes await for host of call accept your "ask to join" request(default 10).
IGNORE_ERRORS - skip printing errors(aka "some element not found", etc) - true/false(default false, recomended for debuging).
GMEET_MIC_MUTE - mute gmeet micro, by default false.
GMEET_CAM_MUTE - mute gmeet webcam, by default false.
You also can specify your link to call, user profile path and other config parameters by directly specifying such command-line arguments.
--user-data-dir=
or --u=
overrides USER_DATA_DIR
--target-call-link=
or --t=
overrides TARGET_CALL_LINK
--call-timer-minutes=
or --timer=
overrides CALL_TIMER_MINUTES
--output-record-tab=
or --o
overrides OUTPUT_RECORD_TAB
--minimized
overrides MINIMIZED
--mute
overrides MUTE
--record-tab
or --r
- overrides RECORD_TAB
--width=
or --w=
overrides WIDTH_PX
--height=
or --h=
overrides HEIGHT_PX
--ask-to-join-wait=
or --ask-min=
overrides ASK_JOIN_WAIT_MIN
--ignore-errors
or --i
overrides IGNORE_ERRORS
--gmeet-mic-mute
or --gmm
overrides GMEET_MIC_MUTE
--gmeet-cam-mute
or --gcm
overrides GMEET_CAM_MUTE
npm run start -- --u="path/to/user-data-dir/" --t="https://meet.google.com/..." --timer="50" --o="/path/to/output/folder/" --minimized --mute --r --w=1000 --h=800 --ask-min=123 --i
--
after npm run start
.
npm run make # build the program, run after every changes you made in the project.
npm run start # run the visitor, you have not build the project every time if you have already build it.
β
To stop the program before he finishes work, click Ctrl+C
- the visitor will save a video(if recording) and stop immediately!
The main purpose of using user data directory is to automate authorization of user in google meet.
Don't worry, it doesn't steal your data.
- Open your google chrome with your already authorized google account.
- Type
chrome://version/
in your address bar and click enter. - Copy the path from Profile Path row.
- Now you can use this path either for USER_DATA_DIR variable in your config or in
--user-data-dir=
in CLI arguments.
Well, on the initial stages of the development that was thought that visitor should run with headless option,
at least for non-recording mode.
But, i faced with a lot of problem by doing it, i couldn't even join to call with headless mode,
i have tried a lot of options, nevertheless google meet just have blocked it.
So the only solution i came up with is just use minimized mode.
This occurs because chromedriver requires 0 opened Chrome instances.
To fix that problem, you should close all Chrome instances and run the program again.
- To fix the interruption when leaving a call by Ctrl-C.