Skip to main content

Telegram sticker sets creation automated (partially).

Project description

Telegram sticker sets creation automated (partially).


PyTgASU frees you from selecting files and emojis repeatedly when creating sticker sets on Telegram.

Better yet, it makes sticker sets kind of “distributable” and “installable”.


There was a Telegram Stickers Uploader (link dead, don’t bother), but:

  1. It has limited choices of emojis
    • Well, 250. Really? This is not enough. UTR #51 4.0 defined 910 code points with Emoji_Presentation=Yes.
  2. It does not work with current Telegram Desktop
    • It does send commands through it, but it cannot upload anything. At least not for me.

And now pytgasu comes to your rescue.



  • Python >= 3.6


Use pip to install:

$ pip install pytgasu


$ git clone
$ cd pytgasu
$ pip install .


Prepare set

pytgasu needs to work with set definition file for each sticker set you want to create.

Telegram also has limitations on sticker images.

You can take care of all above with this command:

$ pytgasu prepare <dir>...

At first launch it will ask you paths to some tools (namely pngquant and waifu2x-caffe), if you prefer not using any of them you can just leave it empty. This saves a yaml-formatted configuration file at ~/.pytgasu/asu.cfg.

You need to provide a descriptive name of the set, and a short name that enables you to share it with<short_name>.

Finally open the generated .def file(s) with text editor of your choice to assign emojis (and only emojis, preferably copied from Telegram).

Upload sticker sets

Once you are done editing the .def file(s), let pytgasu do the heavy lifting.

$ pytgasu upload [-s] (<dir>|<path_to.def>)...

By specifying -s, you will be automatically subscribed to the set once it’s uploaded.

You have to log in to Telegram at the first run. A session file will be created at ~/.pytgasu/asu.session.

Log out of Telegram

If you have no more business with pytgasu, you may want to log it out from Telegram.

$ pytgasu logout

This terminates your session to Telegram, deletes the stored session file and its folder, saving you few clicks in other Telegram client and file manager.

Limitions & TODOs

  1. No GUI.
    • Well…I hope you are crazy enough to make one for me ;)


You may request new features, report bugs or leave suggestions through GitHub issue, or just code and fire a pull request.

You may contact me via e-mail if you want to stay private or just don’t bother with GitHub.

Stuff in need

  • Tests. Preferably something nose uses.
  • Better documents. There’s not much to document though …
  • Feature requests. Keep it simple, don’t complicate this tool.
  • Debug. I’m not that exhaustive and may leave edge cases here and there.


(c) 2017 Lemon Lam <’%s@%s’ % (‘almk’, ‘’)>


Licensed under GNU General Public License Version 3.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for pytgasu, version 0.2.1
Filename, size File type Python version Upload date Hashes
Filename, size pytgasu-0.2.1.tar.gz (13.3 kB) File type Source Python version None Upload date Hashes View
Filename, size pytgasu-0.2.1-py3-none-any.whl (21.6 kB) File type Wheel Python version py3 Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page