cd serverless-zoom-recordings
PIPENV_VENV_IN_PROJECT=1 pipenv install --dev
pipenv shell
nodeenv -p
# Installs Node environment inside Python environmentnpm install --include=dev
# Installs Node packages inside combined Python/Node environmentexit
# For serverless to install correctly in the environment...pipenv shell
# ...we need to exit out and re-enter the environmentnpm install -g serverless
# Although the '-g' global flag is being used, Serverless install is in the Python/Node environment
serverless create_domain --aws-profile olf
- Accept the webhook message from Zoom, test for validity
- Invoke the Step Function
- Store recording details in S3 and database
- Get past meeting metadata from Zoom, store in S3 folder
- Get parent meeting metadata from Zoom, store in S3 folder
- Prepare parallel recording retrieval
- Range-based retrieval from Zoom and put to S3 as multi-part upload
- Output file metadata in JSON
- Write recording document to S3 and database
- Move Zoom recording to trash
- Enqueue message to website builder
- Scan through OLF accounts looking for missed meetings
- Search for meetings with disposition entries
- Scan S3 bucket to rebuild event database
- Download the
meeting_recording.json
document and modify to taste - Invoke the reindex_recording endpoint:
sls invoke --stage prod --aws-profile olf --function reindex_recording --path ~/Downloads/recording_document.json
- Retrieve the JSON of the Zoom webhook. (For example, go into the StepFunction execution and pull the JSON from there, then edit to needs.)
- Invoke the invoke_stepfunction endpoint:
sls invoke --aws-profile olf --stage prod --function invoke_stepfunction --path zoom_webhook.json