python-telegram-bot et aiogram tournent tous deux très bien sur toutes les offres bot PlayNHost, y compris l’offre STARTER de 0.5 GB (dès 1,99 $US par mois). Dans nos propres mesures, un bot python-telegram-bot 22 a utilisé environ 40 MB de mémoire et un bot aiogram 3 environ 169 MB : la mémoire n’est donc pas ce qui départage les deux. Choisissez celle que suivent les exemples et les tutoriels que vous utilisez. Notre bot de départ Python utilise python-telegram-bot, car c’est la bibliothèque Python pour bots Telegram qui a le plus d’étoiles et de téléchargements, et la plus légère que nous ayons mesurée.
Ce que nous avons mesuré
Nous avons mesuré chaque bibliothèque sur nos propres serveurs, avec un bot construit et prêt à démarrer (la mémoire qu’utilise le processus, avant tout message) :
| Bibliothèque | Mémoire |
|---|---|
| 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 seul a utilisé 8 MB dans le même test. Votre propre code, les données qu’il garde en mémoire et le nombre de discussions s’ajoutent à ces chiffres.
Pourquoi toutes les tailles d’offre conviennent
L’offre STARTER de 0.5 GB fait tourner n’importe laquelle de ces bibliothèques avec de la marge pour votre propre code : même aiogram, la plus lourde, en utilise environ un tiers. Prenez 1 GB ou plus quand votre bot garde des données en mémoire, traite des fichiers ou des images, ou fait tourner plusieurs bots dans un seul processus. Offres et prix : hébergement de bot Telegram.
Côte à côte
| python-telegram-bot | aiogram | |
|---|---|---|
| Mémoire mesurée | Environ 40 MB (version 22) | Environ 169 MB (version 3) |
| Étoiles GitHub (29 oct. 2026) | 29 536 | 5 912 |
| Téléchargements PyPI, 30 derniers jours (29 oct. 2026) | 6,76 millions | 2,76 millions |
| Appel de polling | application.run_polling() | await dp.start_polling(bot) |
| Nom du token dans ses exemples officiels | Aucun (un texte "TOKEN" à remplacer) | BOT_TOKEN |
| Un webhook resté défini sur le bot | Retiré tout seul au démarrage du polling | Non retiré : il réessaie sur 409 Conflict |
| Un token refusé (401) | Cesse de réessayer : Invalid token. Aborting retry loop. | Continue de réessayer, donc le bot semble tourner |
| Une autre copie en cours (409) | Continue de réessayer | Continue de réessayer |
aiogram est courant dans les tutoriels et les réponses en russe. Si vous suivez un tutoriel, utilisez la bibliothèque qu’il utilise.
Ce que cela change sur votre serveur
- Le token : le panel le donne à votre code sous les noms
TELEGRAM_BOT_TOKEN,BOT_TOKEN,TOKEN,TELEGRAM_TOKENetTELOXIDE_TOKEN. Leos.getenv("BOT_TOKEN")d’aiogram fonctionne tel quel ; dans les exemples de python-telegram-bot, remplacez le texte à remplacer paros.environ["TOKEN"]ouos.environ["TELEGRAM_BOT_TOKEN"]. - Un bot qui semble tourner mais ne répond pas : aiogram continue de réessayer avec un token refusé et avec
409 Conflict, et python-telegram-bot avec409 Conflict. Le panel lit la console et affiche un bandeau avec la cause, par exemple Votre bot tourne aussi ailleurs. Voir Corriger l’erreur 409 Conflict d’un bot Telegram. - Un webhook d’un ancien hébergeur : python-telegram-bot le retire au démarrage du polling. Avec aiogram, cliquez sur Retirer le webhook sur la page Bot, volet Telegram, ou appelez
await bot.delete_webhook()avantstart_polling. - En ligne sur Telegram : la pastille de l’Aperçu passe à En ligne sur Telegram quand la console affiche une ligne de démarrage. aiogram affiche
Run polling for bot @your_botquand les logs sont au niveauINFO. Avec python-telegram-bot, affichez vous-mêmeLogged in as @your_bot, comme le fait notre bot de départ. - Votre token dans la console : quand Telegram refuse le token, le message d’erreur de python-telegram-bot contient le token lui-même. Notre bot de départ intercepte
InvalidTokenet affiche à la place une ligne simple, et masque le token dans ses lignes de log. - Version de Python : python-telegram-bot 22 demande Python 3.10 ou plus récent. Le Runtime du volet Code propose de 3.10 à 3.14, avec 3.12 par défaut.
Le même bot dans les deux
Les deux répondent à /start et lisent le token que leur donne le panel. Mettez la bibliothèque dans requirements.txt et le code dans bot.py, le Fichier d’entrée par défaut.
python-telegram-bot : fichier 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 : fichier 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 version aiogram journalise au niveau INFO : elle affiche donc Run polling for bot @your_bot quand elle est prête, et retire un webhook resté sur le bot avant de commencer le polling.
Et sur Node.js
Notre bot de départ Node.js utilise grammY. Dans notre test, grammY et Telegraf ont utilisé à peu près la même mémoire (61 et 60 MB) : l’une comme l’autre convient donc à toutes les offres. Nous avons choisi grammY parce qu’elle est toujours mise à jour (1.46.0 le 26 août 2026, contre la dernière version de Telegraf, 4.16.3, le 29 février 2024).
Questions fréquentes
Laquelle utilise le bot de départ ?
python-telegram-bot 22 sur un serveur Python, grammY sur un serveur Node.js. Cliquez sur Créer un bot de départ dans la carte Configurer votre bot de l’Aperçu. Voir Comment héberger un bot Telegram.
Puis-je passer plus tard de l’une à l’autre ?
Oui. Les deux tournent sur le même serveur Python : modifiez requirements.txt et votre code, puis redémarrez. Le nouveau paquet s’installe à ce démarrage, car le fichier de paquets a changé.
Ai-je besoin d’une offre plus grande pour aiogram ?
Non. Avec environ 169 MB, elle tient dans l’offre STARTER de 0.5 GB avec de la marge. Une offre plus grande aide quand c’est votre bot lui-même qui grossit : données gardées en mémoire, fichiers et images, ou plusieurs bots dans un seul processus.



