{"id":18960615,"url":"https://github.com/adel-bz/bbb-recordings-post-script","last_synced_at":"2026-04-01T03:30:21.249Z","repository":{"id":237481463,"uuid":"794020975","full_name":"adel-bz/BBB-Recordings-Post-Script","owner":"adel-bz","description":"A Ruby code to send Published recordings on BBB to AWS S3","archived":false,"fork":false,"pushed_at":"2024-05-20T08:12:21.000Z","size":7,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-01T04:35:05.854Z","etag":null,"topics":["aws-s3","bigbluebutton","discord-aler"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/adel-bz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-04-30T09:59:17.000Z","updated_at":"2024-05-20T08:12:25.000Z","dependencies_parsed_at":"2024-05-20T09:30:57.363Z","dependency_job_id":"597c0a6b-0989-4f0e-8b45-e7a8f93206e1","html_url":"https://github.com/adel-bz/BBB-Recordings-Post-Script","commit_stats":null,"previous_names":["adel-bz/bbb-recordings-post-script"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adel-bz%2FBBB-Recordings-Post-Script","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adel-bz%2FBBB-Recordings-Post-Script/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adel-bz%2FBBB-Recordings-Post-Script/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adel-bz%2FBBB-Recordings-Post-Script/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/adel-bz","download_url":"https://codeload.github.com/adel-bz/BBB-Recordings-Post-Script/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239958287,"owners_count":19724925,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws-s3","bigbluebutton","discord-aler"],"created_at":"2024-11-08T14:08:37.834Z","updated_at":"2026-04-01T03:30:21.092Z","avatar_url":"https://github.com/adel-bz.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# BigBlueButton S3 Uploader and Discord Notifier\nThis script automates the process of uploading recorded video files from a BigBlueButton server to an AWS S3 bucket and then notifying a Discord channel about the upload.\n\n# Prerequisites\nBefore using this script, make sure you have the following:\n\n- Ruby installed on your system\n- Required Ruby gems installed (optimist, zip, net-http, json)\n- An AWS Account and configured with appropriate permissions\n- Access to a Discord webhook URL for sending notifications\n- Access to the BigBlueButton server with the recordings you want to upload\n\n# Usage\n\n1. Clone this repository to your local machine:\n\n```\ngit clone https://github.com/adel-bz/BBB-Recordings-Post-Script.git\n```\n\n2. Move `post_publish.rb` to `/usr/local/bigbluebutton/core/scripts/post_publish`\n\n```\ncd BBB-Recordings-Post-Script\nmv post_publish.rb /usr/local/bigbluebutton/core/scripts/post_publish\n```\n\n3. Install required gems:\n\n```\ngem install zip \n```\n\n# Configuration\n1. Before running the script, make sure to configure the following environment variables:\n\n- `AWS_ACCESS_KEY_ID:` Your AWS access key ID\n- `AWS_SECRET_ACCESS_KEY:` Your AWS secret access key\n- `AWS_REGION:` The AWS region where your S3 bucket is located\n- `bucket_name:` The name of your S3 bucket\n- `discord_webhook_url:` The URL of your Discord webhook\n- `bbb_domain:` The domain of your BigBlueButton server\n\nTo change Environments edit post_publish.rb\n```\nnano post_publish.rb\n```\n\n2. choosing the recording format as you need:\n\u003e **Note:**\n\u003e If you are using video format for recording, skip this session.\n\nIf you are using presentation format for recordings, you have to change ` published_files = \"/var/bigbluebutton/published/video/#{meeting_id}\"` to `published_files = \"/var/bigbluebutton/published/presentation/#{meeting_id}\"`\n\nto install additional recording processing formats see here:\nhttps://docs.bigbluebutton.org/administration/customize/#install-additional-recording-processing-formats\n\n3. Write a bucket policy to access AWS S3 with specific IPs to download recording files:\n```\n# If you want to access to s3 bucket with all IPs, you can delete the condition section: \"Not Recommended\"\n{\n    \"Version\": \"2012-10-17\",\n    \"Id\": \"S3PolicyId1\",\n    \"Statement\": [\n        {\n            \"Sid\": \"IPAllow\",\n            \"Effect\": \"Allow\",\n            \"Principal\": \"*\",\n            \"Action\": [\n                \"s3:GetObject\",\n                \"s3:PutObject\"\n            ],\n            \"Resource\": \"arn:aws:s3:::bbb-records/*\",\n            \"Condition\": {\n                \"IpAddress\": {\n                    \"aws:SourceIp\": [\n                        \"ip1/32\",\n                        \"ip2/32\",\n                        \"ip3/32\" \n                    ]\n```\n\n\nIf everything is right after each publish recording, recording files are sent to S3, Also some information such as `meeting_id` and `download link` are sent to your Discord channel automatically.\n\n\n# References\n\nhttps://docs.bigbluebutton.org/development/recording/#writing-post-scripts\n\n\n# Contributing\n\nContributions are welcome! If you find any bugs or have suggestions for improvement, please open an issue or submit a pull request.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadel-bz%2Fbbb-recordings-post-script","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fadel-bz%2Fbbb-recordings-post-script","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadel-bz%2Fbbb-recordings-post-script/lists"}