A client to interact with the Signal stickers API.
- Fetch sticker packs
- Get images files
- Upload sticker packs
- etc.
Note: despite its name, this client does not interacts with
signalstickers.org, so information defined there (tags, etc.) will not be fetched.
This client connects to the Signal sticker API. Please do not flood it (you'll be blocked anyway).
pip3 install --user signalstickers-clientThis module requires cryptography, protobuf, anyio, and httpx (but they
should be installed with the previous command).
If you are not familiar with Signal stickers, read STICKERS_INTERNALS.md first.
The StickerPack object returned by await StickersClient().get_pack(<pack_id>, <pack_key>) exposes the following
attributes:
id: strthe pack id. Equals topack_id;key: strthe pack key. Equals topack_key;title: strthe title of the pack;author: strthe author of the pack;nb_stickers: intthe number of stickers in the pack;cover: Stickerthe cover sticker;stickers: list[Sticker]the list of stickers in the pack
A Sticker object exposes the following attributes:
id: intthe id of the sticker in the pack;emoji: strthe emoji mapped to this sticker;image_data: bytesthe webp image of the sticker.
Same thing, but use LocalStickerPack (that does not contains id and key)
instead of StickerPack.
You will need your Signal credentials!
To obtain them, run the Signal Desktop app with the flag --enable-dev-tools,
open the Developer Tools, change the JavaScript context from top to
Electron Isolated Context (cf. video below), and type
window.reduxStore.getState().items.uuid_id to get your USER, and
window.reduxStore.getState().items.password to get your PASSWORD.
Video: how to set JavaScript context
context.mp4
- Create a
pipenvwithpipenv install --dev; - Edit the code you want;
- Don't forget to launch tests with
pipenv run py.test.
See LICENSE
This is not an official Signal project. This is an independant project.
Signal is a registered trademark in the United States and other countries.
Romain Ricard contact+stickerclient@romainricard.fr