Skip to main content

A powerful, versatile and simplistic FOSS python package and CLI to turn videos into GIFs and vice-versa.

GitHub PyPI GitHub repo size GitHub GitHub

Usage

You can use FIG's built-in CLI to convert videos to GIFs through the Command-Line.

Usage: fig [OPTIONS] FILENAME                                          
                                                                              
Options:                                                                      
  -o, --output TEXT               Output filename                             
  -g2v, --gif2video               Convert a gif to a video (options: disable- 
                                  dither, low-quality, shit-optimize, ffmpeg  
                                  are disabled)                               
  -w, --width INTEGER             Width of the gif (must be 16 or bigger)     
  -fr, --fps-reduction INTEGER    Divide fps by this number (must be bigger   
                                  than 0 and can't be bigger than the original
                                  fps)                                        
  -lq, --low-quality              Prioritize speed and size over quality      
  -dd, --disable-dither           Disable dither to increase quality but cause
                                  color banding (disables low-quality)        
  -so, --shit-optimize            Optimize the gif but make it look bad       
                                  (requires gifsicle)                         
  -f, --ffmpeg                    Use ffmpeg for higher quality conversion    
                                  (requires ffmpeg) (enables dithering)       
  -t, --text TEXT                 Text to add to the gif                      
  -ts, --text-style [top|bottom|caption]                                      
                                  Style of text to add to the gif             
  -v, --version                   Show the version and exit.                  
  --help                          Show this message and exit.
Usage: fig-download [OPTIONS] SEARCH                                       
                                                                              
Options:                                                                      
  -s, --service [tenor|youtube|other]                                         
                                  Service to download from                    
  -o, --output TEXT               Output filename                             
  -ak, --api-key TEXT             API key for Tenor                           
  -c2v, --convert2video           Convert to a video (options: disable-dither,
                                  shit-optimize, ffmpeg are disabled)         
  -w, --width INTEGER             Width of the gif (must be 16 or bigger)     
  -fr, --fps-reduction INTEGER    Divide fps by this number (must be bigger   
                                  than 0 and can't be bigger than the original
                                  fps)                                        
  -lq, --low-quality              Prioritize speed and size over quality      
  -dd, --disable-dither           Disable dither to increase quality but cause
                                  color banding (disables low-quality)        
  -so, --shit-optimize            Optimize the gif but make it look bad       
                                  (requires gifsicle)                         
  -f, --ffmpeg                    Use ffmpeg for higher quality conversion    
                                  (requires ffmpeg) (enables dithering)       
  -t, --text TEXT                 Text to add to the gif                      
  -ts, --text-style [top|bottom|caption]                                      
                                  Style of text to add to the gif             
  -v, --version                   Show the version and exit.                  
  --help                          Show this message and exit.

Or you could use FIG as a Python package.

import fig

fig.video2gif("myvideo.mp4")  # Convert video to GIF
fig.gif2video("myvideo.gif")  # Convert GIF to video

Installation

pip install fig-converter
  • In order to use the shit-optimize option you'll need to install gifsicle:

    While running the installation, on MacOS the setup will automatically install gifsicle using Brew.

    On Linux you will need to install gifsicle using apt-get as follows:

    sudo apt-get install gifsicle
    

    On Windows you will need to download and install the correct port of the library for your OS.

  • In order to use the ffmpeg option you'll need to install FFmpeg:

    There are a variety of ways to install FFmpeg, such as the official download links, or using your package manager of choice (e.g. sudo apt install ffmpeg on Debian/Ubuntu, brew install ffmpeg on OS X, etc.).

    Regardless of how FFmpeg is installed, you can check if your environment path is set correctly by running the ffmpeg command from the terminal, in which case the version information should appear, as in the following example (truncated for brevity):

    $ ffmpeg
    ffmpeg version 4.2.4-1ubuntu0.1 Copyright (c) 2000-2020 the FFmpeg developers
      built with gcc 9 (Ubuntu 9.3.0-10ubuntu2)
    

    Note: The actual version information displayed here may vary from one system to another; but if a message such as ffmpeg: command not found appears instead of the version information, FFmpeg is not properly installed.

Comparison

Comparison against shitty online GIF conversion tools

All GIFs are available in the gif_comparison folder for you to compare.

All of the information here was submitted in a survey.

Time Size Quality Easy To Use Versatile Ads Worked
FIG 8s (Fastest) 15.3MB (With Certain Settings FIG Can Reach 5.7MB) 9/10 (Highest Quality) Yes Yes (Most Versatile) 0 Yes (Most Worked)
ezgif.com 10s 16.4MB 8/10 Yes Yes 4 Yes
cloudconvert.com 10s 5.17MB (Smallest) 4/10 No No 0 Yes
veed.io 0 No
image.online-convert.com 13s 5.7MB 5/10 Yes Kinda (no FPS option) 3 Yes
convertio.co 15s 46.8MB (No Option to Change Resolution) 4/10 Yes No 2 Yes
img2go.com 13s 5.7MB 5/10 Yes No 2 Yes
create.vista.com 16s 14.4MB 8/10 Yes Yes 0 Yes
onlineconverter.com 8s 5.17MB (Smallest) 4/10 No No 3 Yes

About Us

We are a duo of independent university students and professional programmers who love contributing to the world of FOSS. Our goal is to improve our skills as developers and to make the world a better place by replacing shitty online GIF conversion tools with FOSS.

Credits

  • opencv-python (Special Thanks! Super Fast)
  • click (Special Thanks! Made Our CLI Amazing)
  • numpy (Special Thanks! Awesome Work)
  • pygifsicle
  • gifsicle
  • Pillow (Special Thanks! Great Project)
  • more-itertools (Special Thanks! Keep Up The Good Work)
  • tqdm (Special Thanks! Made Our CLI SOO Much Better)
  • imageio (Special Thanks! Cheers)
  • FFmpeg (Special Thanks! Amazing Project)
  • requests (Special Thanks! The Simplest Web Library!)
  • yt-dlp (Special Thanks! The Best youtube-dl Fork!)
  • tldextract (Special Thanks! Amazing Library!)
  • art (Special Thanks! Awesome fonts!)
  • cpython (Special Thanks! Couldn't Have Done This Without You)
  • FIG (Super Mega Special Special Thanks!!! One Of The Best FOSS Projects Out There)

Metadata

Release files for fig-converter 2.9.7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for fig-converter 2.9.7
File Size Uploaded
fig-converter-2.9.7.tar.gz 98.2 kB Details

Release files / fig-converter-2.9.7.tar.gz

Download URL fig-converter-2.9.7.tar.gz
Size 98.2 kB
Tags Source
SHA-256 checksum
How to use checksums
da8af505d11aecca2e0d60a75d70c594ef5ac9416869d599fa36c0dce7e6ef80
BLAKE2b-256 checksum
How to use checksums
7e75ca771d5eab96acd4d7c97998f81555861cdbb1cbe2c803fc067673afacf7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.10.6

Release history Release notifications | RSS feed

This release

2.9.7 This release

1 release file

2.9.6

1 release file

2.9.0

1 release file

2.8.0

1 release file

2.7.1

1 release file

2.7.0

1 release file

2.6.0

1 release file

2.5.1

1 release file

2.5.0

1 release file

2.0.1

1 release file

1.7.0

1 release file

1.6.0

1 release file

1.5.0

1 release file

1.0.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page