New: AI Infographics — turn data and ideas into shareable graphics from one prompt. Try it now
TGS to JSON Converter
Unpack Telegram animated stickers (.tgs files) into the Lottie JSON hiding inside them.
Drop a .tgs file, check the preview, then copy or download the raw Lottie JSON. The gzip layer is unpacked in your browser — nothing is uploaded.
- gzip → json
- Lottie vector
- 512 × 512
- No upload
- sticker.tgsgzip · ≤64 KB
- gunzipDecompressionStream
- animation.jsonlottie · vector
- editable anywhereeditors · players
JSON formatting
Indented output is easier to read and diff. Minified output is what you ship — same animation, fewer bytes.
Loading the lottie-web preview library…
stage empty · awaiting .tgs
Unpacking happens locally — neither the .tgs file nor the extracted JSON leaves your browser tab.
output empty · drop a .tgs file to unpack its lottie json
Make your own animated stickers
Generate Lottie animations with AI, edit them, and export sticker-ready files for Telegram and beyond.
What is inside a TGS file?
A .tgs file is not a video or an image — it is a Lottie animation stored as JSON and then compressed with gzip. That is the whole format. Rename a sticker to sticker.json.gz, run gunzip on it, and you get a readable Lottie file with the usual fields: w and h for the canvas, fr for the frame rate, ip and op for the in and out frames, plus the layers and assets arrays that hold the actual shapes and keyframes.
Extracting that JSON is the step that makes a sticker usable outside Telegram. Lottie editors, After Effects round-trip tools, and design apps all open plain .json, not .tgs. Web and app renderers — lottie-web, dotLottie, lottie-react, and the iOS and Android Lottie libraries — take the JSON as well. And once the file is unpacked you can read it: count layers, find the colour values, adjust timing, or strip parts of the animation before shipping it.
- Format
- Gzip-compressed Lottie JSON
- Canvas size
- 512 × 512 px
- Max duration
- 3 seconds
- Max file size
- 64 KB at 60 fps
How to convert a TGS file to JSON
- 01
Get the .tgs file
In Telegram Desktop, right-click an animated sticker and choose Save As. On mobile, forward the sticker to Saved Messages and download it from Telegram Desktop or Telegram Web.
- 02
Drop it into the converter
The tool reads the gzip header, inflates the payload, parses it as JSON, and checks that the animation has valid canvas dimensions before showing anything.
- 03
Check the preview and stats
You get a live render plus the real numbers: canvas size, frame rate, frame count, duration, and how far the file expanded once decompressed.
- 04
Copy or download the JSON
Copy it straight to the clipboard for a quick paste into an editor, or download it as a .json file named after the original sticker.
Real gunzip, not a rename
The tool checks for the gzip magic bytes 1f 8b and inflates the file with the browser's native DecompressionStream, then validates the result as Lottie.
Preview before you export
The unpacked JSON is rendered with lottie-web, so you can confirm you have the right sticker instead of trusting a filename.
Pretty or minified output
Read the JSON with 2 or 4-space indentation, or switch to minified when you are shipping the file to a website or app.
Nothing leaves the tab
Decompression, parsing, and rendering all happen client-side. No upload, no server round trip, no copy of your sticker anywhere.
TGS to JSON — frequently asked questions
How do I get a .tgs file from Telegram?
Telegram Desktop is the reliable route: open the animated sticker, right-click it, and choose Save As to write the .tgs file to disk. The mobile apps do not expose a save option for animated stickers, so forward the sticker to Saved Messages first and download it later from Telegram Desktop or Telegram Web.
Can I edit the JSON and turn it back into a .tgs sticker?
Yes. The JSON you get here is a normal Lottie file, so you can edit it in any Lottie editor and then re-compress it with gzip to make a .tgs again — our Lottie to TGS tool does that step for you. Keep Telegram's limits in mind when you do: 512 × 512 canvas, up to 3 seconds, and 64 KB for the finished file.
Is my sticker uploaded to a server?
No. The decompression uses the browser's built-in DecompressionStream API and the preview uses lottie-web, both running in the page. Your file is read from disk into memory in this tab and never sent anywhere.
Why is the JSON so much bigger than the .tgs file?
Because .tgs is the same data gzipped. Lottie JSON is plain text full of repeated key names and long arrays of numbers, which is exactly the kind of content gzip compresses well — a 5× to 15× expansion is normal. Nothing is added during conversion. If size matters when you deploy the JSON, serve it with gzip or Brotli compression, or use the .lottie container.
Can I use the exported JSON on my website?
Yes. Host the .json file and point a Lottie player at it — lottie-web's loadAnimation with a path option, the lottie-player web component, or lottie-react in a React app. The same file also works in the native Lottie libraries for iOS and Android. No conversion step is needed because Lottie players read exactly this format.
What happens if I drop a .json file instead of a .tgs?
It passes straight through. The tool detects that the file is not gzipped, validates it as Lottie, and pretty-prints it. That makes this a quick way to format and inspect a minified Lottie export, or to preview a JSON animation before you use it.
Convert, rebuild, or edit the animation once you have the JSON.
Found This Tool Helpful?
Share it with others in one click.