DEV Community

John Doe
John Doe

Posted on • Edited on

Google Meet visitor and recorder

What it does

If you have ever concern to record or just visit some google meet call - here is your helper!
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.

Usage

Installation

git clone git@github.com:KR1470R/google-meet-visitor.git
npm ci
Enter fullscreen mode Exit fullscreen mode

Configuration

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!

Explanation of variables:

USER_DATA_DIR* - specify the path to your google chrome profile directory. [See here][5.1].
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.

Configuration by CLI arguments

You also can specify your link to call, user profile path and other config parameters by directly specifying such command-line arguments.
⚠️Note that command-line arguments will override parameters you specified in .env file!⚠️

List of arguments that overrides .env variables:

--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

Example usage in CLI:

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
Enter fullscreen mode Exit fullscreen mode

⚠️Do not forget specify -- after npm run start.

Run

‼️Before running the visitor, ensure that you have signed in your account.‼️
⚠️It might ask you to login again to ensure that it's you, otherwise visitor will recognize it and give you 5 minutes for login.
Just go to the root directory of the google-meet-visitor and type the command:

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.
Enter fullscreen mode Exit fullscreen mode

✅To stop the program before he finishes work, click Ctrl+C - the visitor will save a video(if recording) and stop immediately!

Contribution

More information you can find on the Github repository
If you have interested in this idea, i would be very glad for your contributions. Any questions, issues and suggestions will welcome!
Thanks for your time and attention.

Top comments (0)