/zoom-importer

Effortlessly move your Zoom recordings to Backblaze for cheap storage and sharing

Primary LanguagePythonMIT LicenseMIT

Zoom-importer

Effortlessly move your Zoom recordings to Backblaze for cheap storage and sharing

Why?

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.

Quick start guide

  1. 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).
  2. Clone or download the repo
  3. Get all dependencies pip3 install -r requirements.txt
  4. Rename example.env to .env and open it with an editor
  5. Register for Zoom Dev account and create a new app, generate a login token and paste it into .env
  6. Register for Backblaze, create a bucket, drop it's name into .env file
  7. Create a new auth key in Backblaze, drop it's ID and the Key into .env file
  8. 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
  9. 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.
  10. Add your credit card to Backblaze on billing page, so you are not blocked when you hit 10GB free limit.
  11. Profit

Tuning

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.

Code quality, bugs and feature requests

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.

Automatically move new recordings

There are two approaches to move new recordings from Zoom to Backblaze automatically:

  1. Run this script periodically, on the end of the day, e. g.

  2. 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):