This script is written in python, and it keeps migrating your all recorded videos/sessions from Big Blue Button server to your desired s3 bucket.
$ cd /var/bigbluebutton/published/presentation
$ sudo su
$ export LC_ALL=C
$ apt install python-pip
$ pip install awscli
$ pip install boto3
$ pip install python-magic==0.4.15
$ wget https://raw.githubusercontent.com/rohitcoder/BBB-AWS-S3/master/bbb-s3.py
- Follow this video https://youtu.be/665RYobRJDY
- Note: At this step https://youtu.be/665RYobRJDY?t=101 you have to search "S3 Full Access" and then go ahead.
$ export AWS_ACCESS_KEY_ID=PASTE_AWS_KEY_ID_HERE
$ export AWS_SECRET_ACCESS_KEY=PASTE_AWS_SECRET_HERE
$ aws configure
AWS Access Key ID [None]: PASTE_AWS_KEY_ID_HERE
AWS Secret Access Key [None]: PASTE_AWS_SECRET_HERE
AWS region name [None]: Press enter without typing anything
Default output format [None]: Again, press enter without typing anything
Now, Lets edit bbb-s3.py
open bbb-s3.py
with any editor and edit value for BUCKET_NAME, DELETE_SERVER_FILES.
DELETE_SERVER_FILES => SET value "True" if you want to delete recordings from Local EC2 instance after gettting uploaded to s3, default value is False
Now, lets configure our s3 path with BBB
$ cd /var/bigbluebutton/playback/presentation/2.0/lib
$ vi writing.js
Here you need to change value of url to your s3 bucket address and add meetinID variable at end.
- Make sure your bucket is publicly accessible.
- Open your s3 bucket settings in aws console, and click on Permissions->CORS configuration and add this
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>HEAD</AllowedMethod>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>
Now, you need to setup a cron to automate this upload process
$ crontab -e
add this to your crontab
This will run bbb-s3.py after every 5 minutes.
*/5 * * * * /usr/bin/python /var/bigbluebutton/published/presentation/bbb-s3.py
It should look like this
Now, you are ready to go, it should work on your side!
For any question, you can create issues under this repo, and i'll try to answer your question ASAP! 🤟
You can follow me or add me on https://twitter.com/@rohitcoder & https://linkedin.com/in/rohitcoder