DEV Community

Cover image for [ShowDev] GiffyPy: A fast, lightweight video editor to crop and trim screen recordings for your README
EffessDev
EffessDev

Posted on

[ShowDev] GiffyPy: A fast, lightweight video editor to crop and trim screen recordings for your README

If you've ever tried adding a GIF or animated WebP of a screen recording to your project's README, you know how annoying it can be. You just want to show people how your product works without spending 20 minutes editing a video, but a few friction points always pop up.

A good README is important. Seeing an app in action builds way more trust than a wall of text. So I built a lightweight video editor called GiffyPy specifically to fix this workflow.

giffypy-cropping

Here are the main issues it solves (or click here to skip directly to the GitHub repository):

1. Removing the taskbar and black borders

In OBS Studio, even if you use Window Capture, you often end up with black bars or the taskbar stuck in the recording:

obs-recording

This happens because OBS forces a specific output resolution instead of locking to the recorded window. Cropping it cleanly in a regular video editor like DaVinci Resolve requires trial and error with resolutions. GiffyPy lets you drag a box and crop your video like an image.

2. Opening instantly and fast seeking

I usually only need to trim the ends and cut out a few middle parts. Waiting for a heavy editor like Clipchamp to load takes longer than the edit itself.

GiffyPy opens in under a second. To keep scrubbing fast, it generates a low-res image sequence during opening the file. When you move the playhead, it switches to the image. When you let go of the mouse, it swaps back to the full-res frame. So unlike Clipchamp, no loading screens while seeking.

3. Optimization

You adjust frame rate, resolution, and quality sliders so your video stays lightweight.

4. Fast exports

Exporting doesn't show a File Explorer pop-up every time. You can either overwrite the original file directly or save a numbered copy.

I'm also planning to add a "Copy to Clipboard" button so you can paste WebP/GIF files directly into READMEs or DEV.to posts. You can check the repo README for the latest updates.

5. Multiple export formats

It currently supports animated WebP, GIF, MP4, WebM, MOV, and MKV.

6. Custom app icon

Not a big feature. But an icon in the taskbar is very important for me:

How it was made

It's built using Python and PySide6. You can check out the code on GitHub:

👉 effessdev/GiffyPy

Note: It requires FFmpeg to work. On Windows, you can install it via the command prompt:

winget install Gyan.FFmpeg
Enter fullscreen mode Exit fullscreen mode

A question on PyInstaller

While opening a video file, the app briefly freezes while loading. This doesn't happen when I run main.py directly, only in the packaged .exe version built with PyInstaller.

Has anyone run into this issue with PyInstaller and PySide6/Qt before? I have no idea why this happens.

What features should I add next?

It largely ticks all my personal boxes right now, but I'd love to know what features would make this more useful for everyone. What should I work on next?

Top comments (0)