This project is a Dockerized Python application that emulates video and audio drivers for recording purposes. It uses nodriver to launch Chrome and record Google Meet conferences. The application is managed via a RabbitMQ message broker.
In addation, it deploys web-server on FastApi in order to upload contents to a client. Photos are not stored, videos vice verse — stored in docker volume.
/download/{filename}— request for downloading contents- Use port
12390for VNC,12396— for web-server
{
"type": "screenshot | time | stop",
"body": "<data>",
"user_id": "<user_id>",
"filepath": "<file_path>"
}type: One of the Req commands:screenshot: Capture a screenshot.time: Retrieve the current timestamp.stop: Stop the recording.
{
"type": "started | error | succeded | busy",
"body": "<data>",
"user_id": "<user_id>",
"filepath": "<file_path>"
}type: One of the Res responses:started: Recording started successfully.error: An error occurred.succeded: Recording completed successfully.busy: The system is currently busy.
gmeet_tasks: Queue for recording tasks. Send here request for starting recordgmeet_manage: Queue for control commands. Send here request for managing recordgmeet_res: Queue for responses. Response is sent here
▶️ To start recording, send a Req.START message togmeet_tasks.- 🖼 To take a screenshot, send a Req.SCREENSHOT message to
gmeet_manage. - ⛔ To stop recording, send a Req.STOP_RECORD message to
gmeet_manage. - 📬 Responses will be received with Res statuses on
gmeet_res.
- Make sure you have
poetryand docker desktop installed - Run docker engine
git clone https://github.com/ConfereeBot/GMeetBot.gitpoetry installpre-commit install- Choose appropriate configuration in "Run and Debug"
- Run debug (
f5in vs code)
- Clone
git clone https://github.com/ConfereeBot/GMeetBot.git && cd GMeetBot - Configure
.envin the current folder - Run project
docker compose up -d --build