t0ny54 / bandwidth-hero-proxy3

:zap: Proxy that compresses images to low-resolution

Home Page:https://bandwidth-hero.com/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Bandwidth Hero Data Compression Service

NSP Status

This data compression service is used by Bandwidth Hero browser extension. It compresses given image to low-res WebP or JPEG image. Optionally it also converts image to greyscale to save even more data.

It downloads original image and transforms it with Sharp on the fly without saving images on disk.

This is NOT an anonymizing proxy — it downloads images on user's behalf, passing cookies and user's IP address through to the origin host.

Deployment

ENVIRONMENT_VARIABLES

MIN_COMPRESS_LENGTH=2048 Default=2048 (minimum byte length for an image to be compressible; default 2048 ~2kB)
DISABLE_ANIMATED=1 (Disable small apng passthrough and animated GIF to animated webp conversion (uses temp dir; Can also be "true")
VIDEO_QUALITY_MULTIPLIER Default=10 (The Integer to multiply the 20-80 Quality value (l param) by to get the target video bitrate in kbps. For example, if multiplier is set to 10. Low(20) sets a target bitrate of 200kbps)
AUDIO_QUALITY_MULTIPLIER Default=2 (The Integer to multiply the 20-80 Quality value (l param) by to get the target video bitrate in kbps. For example, if multiplier is set to 2. Low(20) sets a target bitrate of 40kbps)
MEDIA_TIMEOUT Default=7200 (Set the timeout in seconds for outputted Audio and Video streams)
VIDEO_HEIGHT_THRES Default=360 (Set the maximum video height threshold in Pixels. 480 becomes 480p, etc)
VIDEO_WEBM_CPU_USED Default=7 (sets -cpu-used flag in the libvpx-vp9 video encoder. Current valid values at time of writing are (-8 thru 8) Read more about this here)

Heroku

You can deploy this service to Heroku:

Deploy

Deploy to Heroku guide

Self-hosted

Data compression service is a Node.js app which you can run on any server that supports Node.js. Check out this guide on how to setup Node.js on Ubuntu.

DigitalOcean also provides an easy way to setup a server ready to host Node.js apps.

About

:zap: Proxy that compresses images to low-resolution

https://bandwidth-hero.com/

License:MIT License


Languages

Language:JavaScript 99.9%Language:Procfile 0.1%