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
12390
for 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
poetry
and docker desktop installed - Run docker engine
git clone https://github.com/ConfereeBot/GMeetBot.git
poetry install
pre-commit install
- Choose appropriate configuration in "Run and Debug"
- Run debug (
f5
in vs code)
- Clone
git clone https://github.com/ConfereeBot/GMeetBot.git && cd GMeetBot
- Configure
.env
in the current folder - Run project
docker compose up -d --build