NUEVO 📢 Oferta de lanzamiento limitada: ¡hasta un 70% de descuento en tu primer mes, en todos los juegos!Ver planes

python-telegram-bot vs aiogram en PlayNHost

Hosting de bots de DiscordUpdated Oct 29, 20267 min read

Tanto python-telegram-bot como aiogram funcionan bien en todos los planes de bots de PlayNHost, incluido el plan STARTER de 0.5 GB (desde US$1.99 al mes). En nuestras propias mediciones, un bot de python-telegram-bot 22 usó unos 40 MB de memoria y uno de aiogram 3 unos 169 MB, así que la memoria no es lo que decide entre ellos. Elige la que siguen los ejemplos y tutoriales que usas. Nuestro bot inicial de Python usa python-telegram-bot, porque es la librería de Python para bots de Telegram con más estrellas y más descargas, y la más ligera que medimos.

Qué medimos

Medimos cada librería en nuestros propios servidores, con un bot construido y listo para iniciar (la memoria que usa el proceso, antes de recibir ningún mensaje):

LibreríaMemoria
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

Python solo usó 8 MB en la misma prueba. Tu propio código, los datos que guarda en memoria y el número de chats se suman a estas cifras.

Por qué sirve cualquier tamaño de plan

El plan STARTER de 0.5 GB ejecuta cualquiera de estas librerías con margen para tu propio código: incluso aiogram, la más pesada, usa aproximadamente un tercio. Elige 1 GB o más cuando tu bot guarde datos en memoria, maneje archivos o imágenes, o ejecute varios bots en un mismo proceso. Planes y precios: alojamiento de bots de Telegram.

Lado a lado

python-telegram-botaiogram
Memoria que medimosUnos 40 MB (versión 22)Unos 169 MB (versión 3)
Estrellas en GitHub (29 oct 2026)29.5365.912
Descargas en PyPI, últimos 30 días (29 oct 2026)6,76 millones2,76 millones
Llamada de pollingapplication.run_polling()await dp.start_polling(bot)
Nombre del token en sus ejemplos oficialesNinguno (un marcador "TOKEN")BOT_TOKEN
Un webhook que queda configurado en el botLo quita solo cuando empieza el pollingNo lo quita: reintenta con 409 Conflict
Un token rechazado (401)Deja de reintentar: Invalid token. Aborting retry loop.Sigue reintentando, así que el bot parece estar en marcha
Otra copia en ejecución (409)Sigue reintentandoSigue reintentando

aiogram es habitual en tutoriales y respuestas en ruso. Si sigues un tutorial, usa la librería que usa él.

Qué significa eso en tu servidor

  • El token: el panel se lo da a tu código como TELEGRAM_BOT_TOKEN, BOT_TOKEN, TOKEN, TELEGRAM_TOKEN y TELOXIDE_TOKEN. El os.getenv("BOT_TOKEN") de aiogram funciona tal cual; en los ejemplos de python-telegram-bot, sustituye el marcador por os.environ["TOKEN"] o os.environ["TELEGRAM_BOT_TOKEN"].
  • Un bot que parece estar en marcha pero no responde: aiogram sigue reintentando con un token rechazado y con 409 Conflict, y python-telegram-bot con 409 Conflict. El panel lee la consola y muestra un aviso con la causa, por ejemplo Tu bot también se está ejecutando en otro sitio. Mira Solucionar el error 409 Conflict de un bot de Telegram.
  • Un webhook de un hosting anterior: python-telegram-bot lo quita cuando empieza el polling. Con aiogram, haz clic en Quitar webhook en la página Bot, sección Telegram, o llama a await bot.delete_webhook() antes de start_polling.
  • En línea en Telegram: la etiqueta del Resumen pasa a En línea en Telegram cuando la consola muestra una línea de listo. aiogram imprime Run polling for bot @your_bot cuando el registro está en INFO. Con python-telegram-bot, imprime tú mismo Logged in as @your_bot, como hace nuestro bot inicial.
  • Tu token en la consola: cuando Telegram rechaza el token, el mensaje de error de python-telegram-bot contiene el propio token. Nuestro bot inicial captura InvalidToken e imprime en su lugar una línea simple, y oculta el token en sus líneas de log.
  • Versión de Python: python-telegram-bot 22 necesita Python 3.10 o posterior. El Entorno de ejecución de la sección Código ofrece de 3.10 a 3.14, con 3.12 como predeterminado.

El mismo bot en ambas

Ambas responden a /start y leen el token que les da el panel. Pon la librería en requirements.txt y el código en bot.py, el Archivo de entrada predeterminado.

python-telegram-bot: archivo requirements.txt

python-telegram-bot>=22,<23

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: archivo requirements.txt

aiogram>=3,<4

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())

La versión de aiogram registra en INFO, así que imprime Run polling for bot @your_bot cuando está listo, y quita un webhook que haya quedado en el bot antes de empezar el polling.

Y en Node.js

Nuestro bot inicial de Node.js usa grammY. En nuestra prueba grammY y Telegraf usaron casi la misma memoria (61 y 60 MB), así que cualquiera encaja en cualquier plan. Elegimos grammY porque se sigue actualizando (1.46.0 el 26 de agosto de 2026, frente a la última versión de Telegraf, 4.16.3, del 29 de febrero de 2024).

Preguntas frecuentes

¿Cuál usa el bot inicial?

python-telegram-bot 22 en un servidor Python, grammY en un servidor Node.js. Haz clic en Crear un bot inicial en la tarjeta Configura tu bot del Resumen. Mira Cómo alojar un bot de Telegram.

¿Puedo pasar de una librería a la otra más adelante?

Sí. Ambas se ejecutan en el mismo servidor Python: cambia requirements.txt y tu código, y reinicia. El paquete nuevo se instala en ese inicio porque el archivo de paquetes cambió.

¿Necesito un plan más grande para aiogram?

No. Con unos 169 MB cabe en el plan STARTER de 0.5 GB con espacio de sobra. Un plan más grande ayuda cuando crece tu propio bot: datos guardados en memoria, archivos e imágenes, o varios bots en un mismo proceso.

¿Ya tienes tu bot en otro proveedor? Tráelo con nosotros

NUESTROS ÚLTIMOS BLOGS