Загрузка...

Script
Getting a custom emoji ID for use in BotAPI

Thread in Python created by детектив Feb 9, 2026. 203 views

  1. детектив
    детектив Topic starter Feb 9, 2026 elvis has left the building 288 Nov 19, 2019
    Telegram Bot — Custom Premium Emoji ID Extractor

    Утилита для разработчиков Telegram-ботов после обновления Bot API 9.4

    Небольшой, но практичный питоновский-скрипт для тг-ботов, написанный на коленке который позволяет получать custom_emoji_id у премиум / кастомных эмодзи (emoji packs), отправленных в чат.

    Актуально после недавнего обновления Telegram Bot API, где:
    • боты получили поддержку кастомных эмодзи
    • появились цветные кнопки и новые UI-возможности
    • кастомные emoji можно использовать в тексте, кнопках и интерфейсах


    Что делает скрипт?
    • принимает любые сообщения
    • ищет кастомные эмодзи:
    – в тексте
    – в caption
    – в entities / caption_entities
    • дополнительно проверяет emoji в стикерах
    • выводит все найденные custom_emoji_id
    • автоматически убирает дубликаты

    Скрипт:
    • перехватывает MessageEntity(type="custom_emoji")
    • вытаскивает поле custom_emoji_id
    • поддерживает несколько emoji в одном сообщении
    • корректно обрабатывает редкие кейсы со стикерами

    Код
    Python

    import logging
    from aiogram import Bot, Dispatcher, executor, types

    logging.basicConfig(level=logging.INFO)

    TOKEN = "123123123" # сюда токен

    bot = Bot(token=TOKEN, parse_mode=types.ParseMode.HTML)
    dp = Dispatcher(bot)


    @dp.message_handler(content_types=types.ContentType.ANY)
    async def catch_custom_emoji(message: types.Message):
    ids = []

    # собираем entities
    entities = []
    if message.entities:
    entities += message.entities
    if message.caption_entities:
    entities += message.caption_entities

    # ищем custom emoji в тексте
    for e in entities:
    if getattr(e, "type", None) == "custom_emoji":
    ceid = getattr(e, "custom_emoji_id", None)
    if ceid:
    ids.append(ceid)

    # если пришло как стикер
    if message.sticker and getattr(message.sticker, "custom_emoji_id", None):
    ids.append(message.sticker.custom_emoji_id)

    # убираем дубли
    ids = list(dict.fromkeys(ids))

    if not ids:
    await message.reply(
    "Не вижу custom emoji.\n"
    "Пришли именно премиум / кастом-эмодзи, а не обычный смайл."
    )
    return

    lines = "\n".join(f"<code>{x}</code>" for x in ids)
    await message.reply(f"custom_emoji_id:\n{lines}")


    if __name__ == "__main__":
    executor.start_polling(dp, skip_updates=True)
    Как использовать
    1 Запускаете скрипт
    2 Отправляете ему премиум-эмодзи
    3 Получаете custom_emoji_id
    4 Используете ID в своих кнопках / текстах / интерфейсах

    P.S
    • Работает только с custom / premium emoji, не с обычными Unicode
    • Бот должен иметь доступ к сообщениям
    • У владельца бота должен быть Telegram Premium (ограничение API)

    [IMG]
     
    1. Bellomore
      avatarдетектив, если ты написал хуйню, это не повод кидать репорты

      [IMG]
  2. n1s_01
    Гораздо лучше будет подобная альтернатива, может много где пригодиться еще
    Telegram: RAWDATABOT (не реклама)
     
  3. 0x01
    0x01 Feb 9, 2026
    LOLZHelper FIX - Free extension for the forum
    1,344 Feb 6, 2019
    чел в 2026 придумал велосипед
     
    1. n1s_01
      avatar0x01, в связи с последними событиями
  4. Bellomore
    Bellomore Feb 11, 2026 4,273 Mar 13, 2022
Loading...