GitHub - navicstein/meetbots: A Google Meet & Zoom bots to record audio &am...
source link: https://github.com/navicstein/meetbots
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
This project is far from perfect but only showcases the possibility of recording audio & video streams from a google meeting or zoom call without much users interactivity, kinda like a personal assistant
The idea is, when a user want a bot to join any call, he opens a modal & inputs the url(meet) or meetingId & passcode (zoom) then the server creates an ECS task that runs only on the bot on a docker
Features
- Be able to join meeting on behalf of a user
- Be able to record audio & video streams from meetings
- Ability to scale on AWS fargate (deployment via pulumi)
- S3 bucket upload support (soon)
This project has 3 main services
- Frontend (react app)
- Bot agent
- Graphql server
Screenshots
Running the graphql-server
the server is built with gqlgen, schema first graphql approach
cd into ./api/gql-server
& run
$ BOT_MODE=remote go run .
or create an .env
file
This should give you a playground url you can interact with the bot without the frontend
DBG server.go:37 > connect to http://localhost:8080/ for GraphQL playground
Testing the bot alone without server
to see the bot in action create an .env in the ./api/bots
directory, either of a meet
or zoom
type for example
# for google Meet
ID="random-id"
NAME="Bot username"
URL=https://meet.google.com/rck-cbnr-smb
TYPE=meet
# for zoom
ID="you-id"
PASSCODE=538Eah
MEETINGID=88975667556
NAME="Bot username"
TYPE=zoom
then from that same api/bot
directory, run
$ go run .
This will run quickly send the bot to the meeting & you should see the browser, this is done by ECS RunTask
in gql-server on production
basically, the goal is to run a single bot on one container, why? if two bots are recording in the same container & using the same CPU, the audio will appear to be stuttered and affect audio quality
build and check the bot docker locally
from the API directory
$ docker build -t meetbot . -f bot.Dockerfile
Deployment
only deployed for testing!
Deployment is done via Pulumi & can be accessed via ./api/deployment
refer to pulumi docs for more info
limitations
- Recorded videos only lives on filesystem (S3 support comming soon)
- performance: the bot may not always work smoothly and may experience delays or errors when joining or recording meetings.
- compatibility: zoom agent doesnt work in certain deployed locations, see zooms supported locations
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK