Open-source project
SwaggyMacro/LottieViewConvert avatar
SwaggyMacro/LottieViewConvert

LottieViewConvert: turning Telegram stickers into GIF, WebP or MP4

A powerful cross-platform desktop application for converting TGS (Telegram Stickers), Discord animmated stickers and Lottie animations to various formats including GIF, WebP, APNG, MP4, MKV, AVIF, and WebM. Support download telegram sticker from sticker link. 电报、Discord、Lottie动画转换工具,支持 Gif、WebP、APNG、MP4 等常见格式,支持直接下载电报、Discord贴纸包。

641 stars26 forksC#MIT

At a glance

What is it?
LottieViewConvert is a C# desktop application for converting Telegram TGS stickers, Discord animated stickers and Lottie animations into GIF, WebP, APNG, MP4, MKV, AVIF and WebM. It ships with an installer for its two external encoders, a batch mode, and a workflow that downloads a whole sticker set from a Telegram link once you supply a bot token.
Who is it for?
LottieViewConvert suits people and teams who work with Telegram or Discord sticker sets and need to turn animated stickers into a format their target platform accepts, whether that is a GIF for a chat, a WebP for a website, or an MP4 for video.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 71 days ago.
What is it written in?
Mainly C#, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 22, 2026, and from our analysis. They are not legal advice.

Editorial analysis

A desktop converter for sticker formats nobody else handles well

LottieViewConvert is a cross-platform desktop application for converting TGS, the Telegram sticker format, and Lottie animations into other formats. The project description is blunt about the audience: it converts Telegram stickers, Discord animated stickers and Lottie animations, and it can download a Telegram sticker set from a link.

The problem is a format gap. Telegram stickers arrive as .tgs files, which are gzipped Lottie JSON, and Discord animated stickers are Lottie as well. Both are fine inside their own apps and awkward everywhere else, so anybody who wants to reuse a sticker in a website, a video, a chat that is not Telegram, or an image format, has to convert it. Doing that by hand means finding a decoder, unpacking the tgs, and finding an encoder that produces what you want, per file.

This application is that pipeline with a user interface around it. It is written in C# with the Avalonia UI framework, which is what makes it cross-platform for Windows, macOS and Linux, and the interface is built with SukiUI. The licence is MIT.

The repository structure is conventional for a .NET solution: LottieViewConvert.sln at the root, the LottieViewConvert/ project directory, a Lottie/ directory, a LottieViewConvert.Test/ directory for the tests, an images/ folder for the screenshots the README uses, and a second readme, readme_cn.md, for the Chinese documentation. The README also links a Chinese version of the interface, and the badge at the top shows the current version as 1.3.4.

Two input formats, seven output formats

The supported formats list is short and worth reading in full.

On the input side there are two entries: .tgs for Telegram sticker files and .json for Lottie animation files. The feature list is slightly broader and also mentions .lottie, so the tool appears to accept the packaged Lottie form as well, even though the dedicated formats section lists only .tgs and .json. If a packaged .lottie file matters to you, that is worth checking rather than assuming.

On the output side there are seven: .gif for animated GIF, .webp for animated WebP, .apng for animated PNG, .mp4, .mkv for Matroska, .avif for the AV1 Image File Format, and .webm.

The list covers the three animated image formats that work in a browser, the three container formats that work in a video editor or a chat, and AVIF, which is the interesting outlier. AVIF is an image format, so an animated AVIF is a newer target than the rest, and whether the encoder chain produces an animated AVIF that plays in the clients you care about is a question to test with one file rather than a whole batch.

The differentiation is in the sticker side rather than the format list. A generic Lottie renderer can output a GIF, but taking a Telegram sticker pack URL and turning it into a folder of finished assets is a workflow this application does directly, and the README shows that path in detail.

gifski and FFmpeg do the encoding, and the app can install them for you

The application does not encode anything itself. The README lists two required dependencies that must be available in your PATH: gifski for high-quality GIF conversion, and FFmpeg for the video formats MP4, MKV and WebM. The technology stack section also names ImageMagick for WebP processing, and SkiaSharp Skottie for rendering the Lottie animation in the preview.

The practical difficulty of a tool with external binaries is setup, and this project attacks that directly. The README says the application can install the dependencies automatically, and the route is to run it and go to Settings, then Dependencies, and it will install gifski and FFmpeg for you.

Two limits are stated. The automatic installation of gifski only supports x64 platforms, so on an ARM64 machine you have to install it manually. And the README says, in as many words, that it is only tested on Windows and Ubuntu now. That is a short, honest line that a lot of projects would leave out.

For manual installation, the README gives per operating system instructions. On Windows, through Chocolatey:

bash
choco install gifski ffmpeg

And on macOS, through Homebrew:

bash
brew install gifski ffmpeg

The instructions then say to verify the installation, which is worth doing rather than assuming:

bash
gifski --version
ffmpeg -version

A GUI application that shells out to command line encoders can fail with a confusing error when a binary is missing or the PATH is wrong, so the version check is a cheap insurance policy before you queue a hundred files.

Downloading a Telegram sticker set by URL, with a bot token

The sticker download feature is the part that makes this more than a converter, and it has a specific procedure.

You launch the application, then go to Settings, then Telegram, and enter your bot token. The README points at BotFather as the way to get one. If you need a proxy, there is a Settings, then Proxy option for that.

Then you go to the Tgs Download page, paste the sticker or emoji set URL, with the example given as a t.me/addstickers/ link, and click Download to fetch all the stickers in the set.

Discord is covered by a parallel feature, described as parsing and downloading a Lottie sticker set from Discord, without the README detailing the steps in the same way.

The bot token requirement is worth thinking about before you plan a workflow around it. Downloading a set needs a bot, and the bot token is a credential you are pasting into a desktop application, so the trust question is who supplies it. For a personal set it is your own token. For a team pipeline, the credential has to be distributed to whoever runs the app, which is a different risk profile from a script that fetches a public file. The README does not discuss how the token is stored, so treat that as something to verify in your own environment rather than assume.

Once the set is local, the conversion path is the ordinary one, so the download feature is a way of removing a manual step, not a separate application.

Batch mode, quality presets and the settings that actually change output

The application has a single conversion path and a batch path, and the batch path is the one that matters for a sticker set.

For a single file you select the source with a Browser button on the home page or by dragging and dropping TGS and Lottie files, choose an output format, optionally adjust the settings, and click Convert.

For batch work you go to the Factory page, browse for a folder containing TGS or Lottie files or drag the folder in, set the same settings, and click Start. The README describes concurrent tasks for faster batch conversion, a real-time preview of animations before conversion, and progress tracking for each file.

The settings are where the output is actually decided. Frame rate runs from 1 to 240 fps, with a note that 100 fps is the maximum for GIF only. Resolution is adjustable, playback speed runs from 0.1x to 10.0x, and quality is set through presets named Low, Medium, High or Custom.

That last set of knobs is also the main source of surprises. A sticker played at 10x speed in a chat looks different from the original, and a GIF at 240 fps will be enormous unless the quality preset compensates. The GIF constraint is the one to internalise, because animated GIF has no frame rate story worth the name and the encoder, gifski, is optimised for it, so a 240 fps request will not be honoured the way an MP4 request would be.

Building it yourself with the .NET SDK

The build prerequisites are the .NET 8.0 SDK and either Visual Studio 2022 or JetBrains Rider, and the build steps are the standard dotnet ones.

bash
git clone https://github.com/SwaggyMacro/LottieViewConvert.git
cd LottieViewConvert
dotnet restore
dotnet build --configuration Release
dotnet run --project LottieViewConvert

The last command starts the application, which is the quickest way to check your environment before you commit to the automated dependency installation.

Publishing a self-contained build per platform is three commands:

bash
dotnet publish -c Release -r win-x64 --self-contained

with the same command using osx-x64 for macOS and linux-x64 for Linux. Note that the runtime identifiers in the README are the x64 ones, which is consistent with the x64 restriction on the automatic gifski installation, and that a self-contained publish bundles the .NET runtime rather than requiring it on the target machine.

For end users, the README's getting started is simpler: download the latest release from the Releases page, extract the archive to a preferred location, and run the application executable. There is no installer, which also means no system integration, and no auto update, so keeping track of the version is on you.

The stack, the licence and the release line

The technology stack section is short enough to reproduce in a sentence. The framework is C# with Avalonia UI. The architecture is ReactiveUI for the MVVM pattern. The rendering is SkiaSharp Skottie for Lottie animation rendering. The WebP processing is ImageMagick. And the dependencies are gifski and FFmpeg.

That is four external pieces of tooling around a .NET application, which is the main operational consideration. The application orchestrates encoders that live outside it, so a deployment has to carry the binaries, and the PATH has to be right in whatever environment the application launches from. A service account with a restricted PATH is the classic way this breaks.

The licence is MIT, and the README points at the LICENSE file for the details, with the standard pull request process outlined for contributors, including opening an issue before a major change.

On releases, the history is slow and deliberate. v1.3.2 is dated 2026-01-17, v1.3.3 on 2026-06-03, and v1.3.4 on 2026-08-13, and the last push to the repository was on 2026-08-13 as well. The badge in the README shows the same 1.3.4 version, so the released build and the branch head agree.

The project also lists related work at the end of the README, including lottie-converter for rendering After Effects animations on the web, rlottie as a platform independent standalone library, gifski as a GIF encoder based on libimagequant, FFmpeg itself, and SkiaSharp. For a reader who wants to know how the pieces fit together, that list is a map of the ecosystem the application sits in.

Editorial conclusion

LottieViewConvert suits people and teams who work with Telegram or Discord sticker sets and need to turn animated stickers into a format their target platform accepts, whether that is a GIF for a chat, a WebP for a website, or an MP4 for video. It does not suit a developer who needs a library rather than an application, and it does not suit a Linux workstation on ARM64 who expects the automatic dependency setup to work, because the README limits automatic gifski installation to x64 platforms and states the app is only tested on Windows and Ubuntu. Check three things before you rely on it: that the output format you need is in the list of seven, that the platform you are on is one where the dependencies install cleanly, and that the batch settings you choose match the target, since the README notes the frame rate range is 1 to 240 fps but 100 fps for GIF only. The last push to the repository was on 2026-08-13 and the newest release is v1.3.4 from the same day.

Frequently asked questions

What can LottieViewConvert convert?

It converts Telegram TGS stickers and Lottie animation files into GIF, WebP, APNG, MP4, MKV, AVIF and WebM. The supported formats section lists .tgs and .json as inputs, and the feature list also mentions .lottie files.

Does LottieViewConvert need any external dependencies?

Yes, gifski for GIF conversion and FFmpeg for the video formats, both of which must be available in your PATH. The application can install them for you from Settings, then Dependencies, but the automatic gifski installation only supports x64 platforms and the README says the app is only tested on Windows and Ubuntu.

How do I download a Telegram sticker set with LottieViewConvert?

Add your bot token under Settings, then Telegram, configure a proxy there if needed, open the Tgs Download page, paste the sticker or emoji set URL and click Download. You can obtain a token by creating a bot with BotFather.

Which settings control the conversion output?

Frame rate from 1 to 240 fps, with 100 fps as the maximum for GIF only, plus resolution, playback speed from 0.1x to 10.0x, and quality settings chosen from Low, Medium, High or Custom presets. Batch work runs from the Factory page.

How do I build LottieViewConvert from source?

With the .NET 8.0 SDK and either Visual Studio 2022 or JetBrains Rider, clone the repository, run dotnet restore, dotnet build --configuration Release and dotnet run --project LottieViewConvert. Self-contained builds are produced with dotnet publish -c Release -r win-x64 --self-contained and the osx-x64 or linux-x64 equivalents.

Official sources

  1. Issues
  2. License: MIT
  3. README
  4. Releases
  5. SwaggyMacro/LottieViewConvert on GitHub
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/swaggymacro-lottieviewconvert.svg)](https://hysenlabs.com/projects/swaggymacro-lottieviewconvert)

Was this useful?