NOVO 📢 Oferta de lançamento limitada: até 70% de desconto no seu primeiro mês, em todos os jogos!Ver planos

python-telegram-bot vs aiogram na PlayNHost

Hospedagem de bot do DiscordUpdated Oct 29, 20267 min read

Tanto o python-telegram-bot quanto o aiogram rodam bem em todos os planos de bot da PlayNHost, inclusive no plano STARTER de 0,5 GB (a partir de US$1,99 por mês). Nas nossas próprias medições, um bot python-telegram-bot 22 usou cerca de 40 MB de memória e um bot aiogram 3 cerca de 169 MB, então a memória não é o que decide entre os dois. Escolha aquele cujos exemplos e tutoriais você segue. Nosso bot inicial em Python usa o python-telegram-bot, porque é a biblioteca Python para bots do Telegram com mais estrelas e mais downloads, e a mais leve que medimos.

O que medimos

Medimos cada biblioteca nos nossos próprios servidores, com um bot montado e pronto para iniciar (a memória que o processo usa, antes de qualquer mensagem):

BibliotecaMemória
python-telegram-bot 22 (Python 3.13)40 MB
Telegraf (Node.js 22)60 MB
grammY (Node.js 22)61 MB
aiogram 3 (Python 3.13)169 MB

O Python sozinho usou 8 MB no mesmo teste. O seu próprio código, os dados que ele guarda na memória e o número de conversas se somam a esses números.

Por que qualquer tamanho de plano serve

O plano STARTER de 0,5 GB roda qualquer uma dessas bibliotecas com espaço para o seu código: até o aiogram, o mais pesado, usa cerca de um terço dele. Escolha 1 GB ou mais quando o seu bot guardar dados na memória, lidar com arquivos ou imagens, ou rodar vários bots em um só processo. Planos e preços: Hospedagem de bot do Telegram.

Lado a lado

python-telegram-botaiogram
Memória que medimosCerca de 40 MB (versão 22)Cerca de 169 MB (versão 3)
Estrelas no GitHub (29 out 2026)29.5365.912
Downloads no PyPI, últimos 30 dias (29 out 2026)6,76 milhões2,76 milhões
Chamada de pollingapplication.run_polling()await dp.start_polling(bot)
Nome do token nos exemplos oficiaisNenhum (um espaço reservado "TOKEN")BOT_TOKEN
Um webhook deixado configurado no botRemovido sozinho quando o polling começaNão é removido: ele continua tentando no 409 Conflict
Um token recusado (401)Para de tentar: Invalid token. Aborting retry loop.Continua tentando, então o bot parece estar rodando
Outra cópia rodando (409)Continua tentandoContinua tentando

O aiogram é comum em tutoriais e respostas em russo. Se você segue um tutorial, use a biblioteca que ele usa.

O que isso significa no seu servidor

  • O token: o painel o entrega ao seu código como TELEGRAM_BOT_TOKEN, BOT_TOKEN, TOKEN, TELEGRAM_TOKEN e TELOXIDE_TOKEN. O os.getenv("BOT_TOKEN") do aiogram funciona como está; nos exemplos do python-telegram-bot, troque o espaço reservado por os.environ["TOKEN"] ou os.environ["TELEGRAM_BOT_TOKEN"].
  • Um bot que parece estar rodando mas não responde: o aiogram continua tentando com um token recusado e no 409 Conflict, e o python-telegram-bot no 409 Conflict. O painel lê o console e mostra um aviso com a causa, por exemplo Seu bot também está rodando em outro lugar. Veja Como corrigir o erro 409 Conflict do bot do Telegram.
  • Um webhook de uma hospedagem antiga: o python-telegram-bot o remove quando o polling começa. Com o aiogram, clique em Remover webhook na página Bot, seção Telegram, ou chame await bot.delete_webhook() antes do start_polling.
  • Online no Telegram: o chip em Visão geral passa para Online no Telegram quando o console mostra uma linha de pronto. O aiogram imprime Run polling for bot @your_bot quando o log está em INFO. Com o python-telegram-bot, imprima Logged in as @your_bot você mesmo, como o nosso bot inicial faz.
  • Seu token no console: quando o Telegram recusa o token, a mensagem de erro do python-telegram-bot contém o próprio token. Nosso bot inicial captura InvalidToken, imprime uma linha simples no lugar e esconde o token nas linhas do log.
  • Versão do Python: o python-telegram-bot 22 precisa do Python 3.10 ou mais novo. O Runtime na seção Código oferece do 3.10 ao 3.14, com o 3.12 como padrão.

O mesmo bot nas duas bibliotecas

Os dois respondem ao /start e leem o token que o painel entrega. Coloque a biblioteca no requirements.txt e o código no bot.py, o Arquivo de entrada padrão.

python-telegram-bot, arquivo requirements.txt:

python-telegram-bot>=22,<23

Arquivo bot.py:

import os

from telegram import Update
from telegram.ext import Application, CommandHandler, ContextTypes


async def start(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
    await update.effective_message.reply_text("Hello! I am running on PlayNHost.")


async def post_init(application: Application) -> None:
    print(f"Logged in as @{application.bot.username}", flush=True)


application = (
    Application.builder()
    .token(os.environ["TELEGRAM_BOT_TOKEN"])
    .post_init(post_init)
    .build()
)
application.add_handler(CommandHandler("start", start))
application.run_polling()

aiogram, arquivo requirements.txt:

aiogram>=3,<4

Arquivo bot.py:

import asyncio
import logging
import os

from aiogram import Bot, Dispatcher
from aiogram.filters import CommandStart
from aiogram.types import Message

dp = Dispatcher()


@dp.message(CommandStart())
async def start(message: Message) -> None:
    await message.answer("Hello! I am running on PlayNHost.")


async def main() -> None:
    bot = Bot(os.environ["BOT_TOKEN"])
    await bot.delete_webhook()
    await dp.start_polling(bot)


if __name__ == "__main__":
    logging.basicConfig(level=logging.INFO)
    asyncio.run(main())

A versão com aiogram faz o log em INFO, então imprime Run polling for bot @your_bot quando está pronta, e remove um webhook deixado no bot antes de começar o polling.

E em Node.js

Nosso bot inicial em Node.js usa o grammY. No nosso teste, o grammY e o Telegraf usaram quase a mesma memória (61 e 60 MB), então qualquer um serve em qualquer plano. Escolhemos o grammY porque ele ainda é atualizado (1.46.0 em 26 ago 2026, contra a última versão do Telegraf, 4.16.3, em 29 fev 2024).

Perguntas frequentes

Qual delas o bot inicial usa?

python-telegram-bot 22 em um servidor Python e grammY em um servidor Node.js. Clique em Criar um bot inicial no card Configurar seu bot em Visão geral. Veja Como hospedar um bot do Telegram.

Posso trocar de uma biblioteca para a outra depois?

Sim. As duas rodam no mesmo servidor Python: mude o requirements.txt e o seu código, e depois reinicie. O pacote novo é instalado nessa inicialização porque o arquivo de pacotes mudou.

Preciso de um plano maior para o aiogram?

Não. Com cerca de 169 MB, ele cabe no plano STARTER de 0,5 GB com folga. Um plano maior ajuda quando o próprio bot cresce: dados guardados na memória, arquivos e imagens, ou vários bots em um só processo.

Seu bot já está em outro lugar? Traga-o para nós

NOSSOS ÚLTIMOS ARTIGOS