Skip to content

0.0.5

Latest
Compare
Choose a tag to compare
@lance13c lance13c released this 15 Apr 12:18
· 5 commits to main since this release
02d9ce3

Background

This app compresses video files over 50MB in the Github pull requests. Taking 350MB videos down to less than 100MB.
It is helpful if you accidentally record more than 100MB (the github limit) for a demo video you wish to put in a Github PR.

Enjoy larger video uploads, while keeping your proprietary company data from leaving your machine.

Limitations / Requirements

  • The application currently only works on MacOS with M-series chips.
  • The Chrome Browser (other chromium based browsers are unsupported right now, but can work with manually manifest file changes)

How to Install

If something doesn't work, please post about your problem in a reply. Thank you.

This installation video file went from 231.7MB to 20.82MB

gvc-288699017-output-M.-.Github.Video.Compressor.Installation.mp4
  1. Unzip the folder you downloaded.
  2. Transfer "GithubVideoCompressor.app" into your Applications folder. Right-click "GithubVideoCompressor.app" and press "Open." A warning message will pop up, click "Open". It may take a few attempts to open it. Just keep trying. It should eventually work. The app does take 3 seconds to boot the UI.
  3. When the app opens, follow the three installation steps in the app.
  4. Once installed, completely close the application. The compression cannot work if the app is running in the background.

Benefits

  • Security - All compressing happens local on your machine. Avoid accidentally uploading proprietary company data to potentially malicious "free" video compression servers.
  • Usability - It just works. It handles the whole compression pipeline out of the box. Attach or drop a video file in the Github pull request comment or description box, and it will compress and upload the video the same way Github does. (Only compresses videos above 50MB)
  • No Background App - The desktop app only boots and runs when it is in use. It is never takes up machine resources unnecessarily.
  • Speed - Compression combined with the upload time should be nearly equivalent or faster than directly uploading 50MB videos to Github (depends on internet speed and computer resources).

Troubleshooting

  • The log file can be found here on Mac: ~/Library/Application Support/github_video_compressor_app/logs.
  • If the manifest file is edited or updated after installing the chrome extension. The chrome extension might need to be toggled on and off.
  • You can also check chrome extension errors in the service worker chrome:https://extensions/, and click the link Inspect views service worker link. You may need to enable "Developer mode" in the top right corner of the Chrome Extensions manager.

How it works

This combines a Chrome extension with a desktop application to provide the fastest native video compression available.

When you drop a video into a Github PR, the chrome extension detects that video and captures it. The chrome extension then sends a Native Messaging request to the desktop app to boot. The desktop app sends back a token used for authentication and starts a local HTTP server on port 7777. The chrome extension then sends the video to the HTTP server authenticating the connection with the token. The desktop application compresses the video with your machine's native ffmpeg and returns the compressed video to the chrome extension via an HTTP response. Then it will attempt to upload the video to Github, and then insert the correct link to that video back in the comment/description textarea.

Other considerations.
Why not use ffmpeg-wasm?
What is the purpose of using the Native Message API.

These were all deliberate choices that will be discussed in an upcoming blog post.

Possible Future Improvements

  • Better chrome extension error notifications.
  • Knowing if the chrome extension is working or not (it is currently not clear if it is running).