Skip to content

Converts Lottie Animations (.json / .lottie) and Telegram stickers (*.tgs) to GIF / PNG / APNG / WEBP / WEBM AddAutomate Script. Work on WhatsApp Bot (view gist)

License

Notifications You must be signed in to change notification settings

weskerty/TGStickerDownloader

 
 

Repository files navigation

Lottie Animations (.json) and Telegram Stickers (*.tgs) to GIF/PNG/APNG/WEBP/WEBM converter

CI | Build & Test CD | Release & Push to Dockerhub

TGSDownloader.mp4

Important

Need webp jq

Debian/Ubuntu:

sudo apt-get install webp jq -y

Arch Linux:

sudo pacman -S libwebp jq --noconfirm --needed

Windows:

winget install libwebp -e --scope machine --source winget
winget install jq -e --scope machine --source winget
winget install git -e --scope machine --source winget

To easily transfer Telegram stickers to WhatsApp you can use:

WhatsApp Bot or Telegram Bot

How to use IN DOCKER

There are 2 options:

  • Run using Docker. One-line command, the option requires only Docker installed
  • Download and run compiled executable files. The option requires run-time dependecies installed

Using Docker

Replace with directory with Lottie animations / Telegram stickers and run:

  • Convert to GIF:
    docker run --rm -v <path to directory>:/source edasriyan/lottie-to-gif
  • Convert to PNG:
    docker run --rm -v <path to directory>:/source edasriyan/lottie-to-png
  • Convert to APNG:
    docker run --rm -v <path to directory>:/source edasriyan/lottie-to-apng
  • Convert to WEBP:
    docker run --rm -v <path to directory>:/source edasriyan/lottie-to-webp
  • Convert to WEBM:
    docker run --rm -v <path to directory>:/source edasriyan/lottie-to-webm

You can provide parameters via env variables:

  • HEIGHT: Output image height. Default: 512
  • WIDTH: Output image width. Default: 512
  • FPS: Output frame rate. Default: apng,png,webp - 60; gif - 50
  • QUALITY: Output quality. Default: 90
  • THREADS: Number of threads to use. Default: number of CPUs

Example:

docker run --rm -e HEIGHT=256 -e WIDTH=256 -e FPS=30 -v /home/ed/Downloads/lottie-animations:/source edasriyan/lottie-to-apng

Results will be saved next to each source file in the same directory.

Using compiled executables

  1. Install run-time dependencies. Make sure the path to them present in PATH variable:

    • gifski if you want to convert to GIF
    • ffmpeg if you want to convert to APNG or WEBM
    • img2webp if you want to convert to WEBP
  2. Download executable from releases section of this repo for your OS and arch

  3. In downloaded archive find the following executable scripts:

    • lottie_to_apng.sh
    • lottie_to_gif.sh
    • lottie_to_png.sh
    • lottie_to_webp.sh
    • lottie_to_webm.sh

    All of them have the same CLI:

    $ ./bin/lottie_to_gif.sh -h                       
    usage: ./bin/lottie_to_gif.sh [--help] [--output OUTPUT] [--height HEIGHT] [--width WIDTH] [--threads THREADS] [--fps FPS] [--quality QUALITY] path
    
    Lottie animations (.json) and Telegram stickers for Telegram (*.tgs) to animated .gif converter
    
    Positional arguments:
    path              Path to .json or .tgs file to convert
    
    Optional arguments:
    -h, --help        show this help message and exit
    --output OUTPUT   Output file path
    --height HEIGHT   Output image height. Default: 
    --width WIDTH     Output image width. Default: 512
    --fps FPS         Output frame rate. Default: 50
    --threads THREADS Number of threads to use. Default: number of CPUs
    --quality QUALITY Output quality. Default: 90
    

Build

  1. Install dependencies
    1. Make sure you have C++17 compiler, make, cmake and conan tools installed; otherwise install them
    2. Detect your conan profile
      conan profile detect
      
    3. Install conan dependencies
      conan install --build=missing .
      
  2. Invoke conan preset
    • Linux & MacOS
      cmake --preset conan-release
      
    • Windows
      cmake --preset conan-default
      
  3. Build
    cmake -DCMAKE_BUILD_TYPE=Release -DLOTTIE_MODULE=OFF CMakeLists.txt && cmake --build . --config Release
    
  4. Convert!
    • To convert to GIF:
      ./bin/lottie_to_gif.sh /home/ed/Downloads/animation.json
      
    • To convert to PNG:
      ./bin/lottie_to_png.sh /home/ed/Downloads/animation.json
      
    • To convert to APNG:
      ./bin/lottie_to_apng.sh /home/ed/Downloads/animation.json
      
    • To convert to WEBP:
      ./bin/lottie_to_webp.sh /home/ed/Downloads/animation.json
      
    • To convert to WEBM:
      ./bin/lottie_to_webm.sh /home/ed/Downloads/animation.json
      
    Results will be saved next to each source file in the same directory.

Notices

About

Converts Lottie Animations (.json / .lottie) and Telegram stickers (*.tgs) to GIF / PNG / APNG / WEBP / WEBM AddAutomate Script. Work on WhatsApp Bot (view gist)

Topics

Resources

License

Stars

Watchers

Forks

Languages

  • C++ 50.0%
  • Shell 25.2%
  • Dockerfile 14.3%
  • CMake 10.5%