Effortlessly move your Zoom recordings to Backblaze for cheap storage and sharing
Because money (USD / month):
Storage / Platform | Zoom | Backblaze |
---|---|---|
30GB | 10 | 0.21 |
200GB | 40 | 1.06 |
1TB | 100 | 7.00 |
5TB | 500 | 35.00 |
Yes, this is not a mistake.
And I am assuming 10% view rate here, which is very high for me, so it's even cheaper in Backblaze reality.
Use great Cloud Storage Cost Calculator to check your savings with your cloud storage provider of choice.
- Choose if you'd like to do it from your laptop or server. You'd need fast internet and free space on the disk to fit the largest of your recordings (files are deleted upon upload).
- Clone or download the repo
- Get all dependencies
pip3 install -r requirements.txt
- Rename
example.env
to.env
and open it with an editor - Register for Zoom Dev account and create a new app, generate a login token and paste it into .env
- Register for Backblaze, create a bucket, drop it's name into .env file
- Create a new auth key in Backblaze, drop it's ID and the Key into .env file
- Choose a range of dates you'd like to move. If not sure — export a list of all recording from zoom web interface and check it's first and last line — and drop them into
.env
file - Check that all dependencies are met and run the app
python3 zoom-importer.py
. It should show you the dates, meeting names and download/upload notifications along with some stats: time elapsed, data cleaned from Zoom and cleanup speed. - Add your credit card to Backblaze on billing page, so you are not blocked when you hit 10GB free limit.
- Profit
I do save audio track, chat transcripts and one video file recording per meeting. Video file is selected to retain maximum information with following priorities: shared_screen_with_gallery_view
, gallery_view
, shared_screen_with_speaker_view
, speaker_view
, shared_screen
. First hit from the list is saved, other videos are discarded.
You might want to preserve different set of files, this can be tuned in lines 62-72. Complete list of recording file types can be found here.
I am not a professional python developer and code might be obscene without me realising it. Sorry about that, pull requests are very welcome.
This script worked for my 3 years worth of recordings: 3k meetings, 1,3TB of storage in Zoom, but might break in your case. Please open an issue via GitHub and include tracebacks, I will do my best to fix them.
There are two approaches to move new recordings from Zoom to Backblaze automatically:
-
Run this script periodically, on the end of the day, e. g.
-
Subscribe to a 'zoom recording completed' webhook from zoom and run this script when said webhook is fired — I recommend this excellent webhook server for that.
Alternatively, use some of this lively tools for AWS (I am personally too scared to ops AWS, but you might be more experienced or braver):
- https://github.com/danielsoneg/egd-zoom_aws_sync
- https://github.com/openlibraryenvironment/serverless-zoom-recordings
- https://github.com/Speeeddy/zoom-recording-s3-exporter
- https://github.com/ColoredCow/zoom-s3-recording-migrations-lambda
- https://github.com/loneJogger/zoom-archiver
- https://github.com/benniemosher/recordings-archiver