[New Plugin] Smart Video Compressor: compress videos in the browser before they upload

Hi all, I made a plugin for a problem I kept seeing here: users upload huge phone videos and the upload is slow, fails, or eats your storage.

Smart Video Compressor is an input element. You set a maximum size in MB, the user picks or drops a video, and it’s compressed in their browser until it fits. Then it’s saved to your app’s own Bubble storage, so there’s no S3 or other service to set up. Videos that already fit are uploaded as they are.

It uses the browser’s built-in video encoder (WebCodecs), so on most computers it’s quick and runs on the graphics hardware rather than in a WebAssembly copy of FFmpeg.

What you get in the editor:

  • Fields: Maximum size (MB), Make private and attach to, Placeholder, This input is disabled, License key
  • States: Value (the saved file), Status, Progress (%), Original and saved size, Was compressed, Error message
  • Events: a video is chosen, the video is ready, compressing or saving failed

The element is just a click-and-drop target in your own styling. Progress and results come through states, so you build that UI the way your app looks.

It’s free to install and works without a key in your app’s test version. A live site needs a license key: $6 a month or $60 once.

Demo: Smart Video Compressor | Live demo
Setup guide and a native Bubble example: Smart Video Compressor | Live demo
Plugin: Smart Video Compressor Plugin | Bubble

It’s web only for now. Happy to answer questions or hear what breaks.