Créer un bot Twitter facilement

Le tutoriel que même ton chat il va tout y comprendre.

Le Nain
Le Nain
Nov 3 · 11 min read

Le @BotDuCul, @LeCuisinotron, le @zonbini_bot… Depuis quelques années, Twitter s’est peuplé de comptes tenus par des robots, qui postent à intervalles réguliers des messages générés de façon plus ou moins maîtrisée, dans un esprit très OuLiPesque. Des initiatives existent même pour les rassembler et les mettre en avant, comme le @CercleBoteursFR, qui en rassemble plus de 60 à l’heure où j’écris ces lignes.

Quelques bots francophones de qualité

Vous avez peut-être vous-même souhaité vous lancer, mais ne savez pas du tout comment faire ? Vous êtes au bon endroit. Ce tutoriel est un peu long, mais ne nécessite absolument aucune connaissance préalable. Si vous en avez, vous pourrez sauter une bonne partie des explications.

Attention, je vais expliquer ici la manière de créer un bot “littéraire”, clairement identifié comme tel. Si votre objectif est de lever une armée de faux comptes pour des campagnes de propagande ou de haine, le tutoriel se trouve ici.

Pendant ce tutoriel, nous allons créer ensemble un bot très simple, qui associe aléatoirement un nom commun et un adjectif, pour produire des tweets comme : “un chien rouge” ou “une maison amusante”.

Si une étape ne vous paraît pas claire ou que vous désirez d’avantage d’informations, vous pouvez me contacter sur Twitter, mes DM sont ouverts.

Étape 1 : la création du compte du bot

En avant pour le microblogging du cul

C’est l’étape la plus simple. Faites exactement comme si c’était un nouveau compte pour vous-même.

À la création, Twitter va vous demander une adresse e-mail ou un numéro de téléphone. Quelque soit votre choix, l’autre vous sera demandé un peu plus tard. Le numéro peut être le même que sur vos autres comptes. Pour le mail, je vous suggère d’en utiliser un différent.

Si vous êtes à court d’adresses e-mail, sachez que beaucoup de services de mails permettent de personnaliser son adresse avec un “+”. Par exemple, sur gmail, si votre adresse est julie.dupont@gmail.com, vous pouvez donner julie.dupont+botadjectifs@gmail.com, et tous les mails seront automatiquement reçus sur votre compte principal, avec une possibilité pour vous de les traiter à part.

Étape 2 : la génération des tweets

Parce que le contenu du cul, c’est l’essentiel du cul.

Pour cette étape, nous allons diviser nos lecteurs en deux. Ceux qui ont des connaissances en développement informatique, quel que soit le langage que vous utilisez, mettez-vous dans le coin là-bas. Le mieux pour vous est d’utiliser votre langage de confort pour créer vos tweets. Prenez-y comme il vous plaira, de l’agencement aléatoire, une véritable intelligence artificielle ou quelque chose entre les deux, votre but est d’obtenir à la fin une fonction capable de générer un tweet, fonction que l’on pourra appeler à volonté. Vous pouvez ensuite passer directement à l’étape 3. Les autres, avec moi.


L’outil que je vous recommande se nomme Cheap Bots Done Quick (CBDQ). Il a été fait pour faciliter la création de bots pour les débutants, qui ne connaissent pas le code informatique. Contrairement aux informaticiens, vous ne pourrez que jouer avec les mots à la manière “cadavre exquis”, sans intelligence ou apprentissage, ni fonctionnalité avancée comme la publication d’images ou de sondage, mais hé, on ne peut pas avoir le bot et l’argent du bot.

Dans un navigateur avec lequel vous êtes connecté au compte Twitter de votre bot (voir Étape 1), rendez-vous sur le site de CBDQ, et cliquez sur “Sign in with Twitter”. Le site va vous demander l’autorisation de publier à votre place. Tant mieux, c’est ce qu’on attend de lui, alors acceptez. Vous arrivez sur une page qui ressemble à ça.

L’interface de CBDQ

Ce qui nous intéresse est le champ de texte intitulé Tracery JSON. C’est lui qui sera le “cerveau” de notre bot, que nous allons bidouiller pour correspondre à notre usage. Regardons tranquillement de quoi il se compose avant de le modifier.

D’abord, notez les accolades { } qui encadrent l’ensemble. Ignorez-les si vous le souhaitez, mais ne les supprimez pas. Elles sont indispensables pour que le texte soit reconnu comme un “JSON” valide, c’est un format très courant en informatique.

Entre les accolades, plusieurs lignes sont données à titre d’exemple par CBDQ. Chaque ligne est faite de deux éléments :

  • la clé, encadrée par des guillemets : "origin" par exemple
  • les valeurs, une liste d’éléments entre guillemets, séparés par des virgules. Toute la liste de valeurs est contenue dans des crochets : ["truc", "machin", "chose"]

Notez aussi que la clé et les valeurs sont séparées de deux points : et que les lignes sont séparées par des virgules ,

Ce système clé/valeurs, vous le connaissez : c’est le même principe que dans un dictionnaire, où pour chaque mot (la clé), on trouve une liste de définitions (les valeurs). On appelle d’ailleurs en informatique cette façon d’organiser les données un dictionnaire.

Augmentons notre vocabulaire technique du cul.

Pour poster des tweets, CBDQ cherchera dans votre dictionnaire la clé origin , qui est la seule à être obligatoire dans votre code, et il prendra aléatoirement une des valeurs attachées à cette clé pour la poster. Une première version de notre bot pourrait donc simplement ressembler à ça :

Bon, il n’y aurait que deux tweets possibles, et je vous l’accorde, ça n’est pas très intéressant, mais au moins ça fonctionnerait.

Descendez un peu sur la page, et regardez ici :

Toujours l’interface de CBDQ, suivez un peu.

La première barre vous affiche des tweets possibles avec le code que vous avez écrit. En cliquant sur le bouton actualiser à droite, elle vous en montre un autre. Si ça ne marche pas, et qu’une vilaine erreur s’affiche en rouge, vous vous êtes sans doute trompé en recopiant quelque chose. Le message d’erreur va essayer de vous indiquer l’endroit qui pose problème, mais il se trompe parfois, à vous d’être attentif.

Notez au passage l’importance de la syntaxe. Vous êtes en train de manipuler un code informatique, simplifié, mais qui ne peut pas être écrit n’importe comment. N’oubliez pas les virgules, les crochets, les accolades. Fermez bien tous les guillemets que vous avez ouverts.

Une bonne nouvelle toutefois : les espaces et les sauts de ligne sont “non-significatifs”, ce qui signifie qu’en-dehors des guillemets, vous pouvez en mettre ou en enlever comme bon vous semble pour vous simplifier la lecture. On aurait par exemple très bien pu écrire pour le même résultat :

En revanche, à l’intérieur des guillemets, il faut rester sage et n’employer que ceux que l’on veut effectivement voir figurer. Vous ne voudriez pas que votre maison se transforme en mai son .

Tout vous paraît clair ? Si oui, vous avez compris le plus dur, et à partir de maintenant, nous allons pouvoir nous amuser un peu.


Comme nous n’avons pas envie de composer à l’avance tous nos tweets pour les ranger dans origin , nous allons seulement écrire nos bouts de phrases à part, rangés dans des clés différentes. Ces bouts se combineront ensuite dans origin .

Dans le bot que je vous ai décrit, il y a deux bouts de phrases : les noms (avec leur article) et les adjectifs. Vous pouvez donc créer deux listes comme celles-ci :

Ajoutons nos listes au dictionnaire général, sans supprimer la ligne origin , rappelez-vous, elle est obligatoire. Cela dit, nous allons un petit peu la modifier, en ne lui donnant qu’un seul élément, comme ceci :

Normalement en voyant ça, l’étincelle de la compréhension devrait s’allumer dans votre œil. Essayez vous-même de mettre ces trois lignes sur CBDQ (n’oubliez pas les virgules de séparation des lignes, et les accolades générales). Vous pouvez maintenant essayer le bouton de génération des tweets en bas pour tester votre oeuvre. Vous devriez obtenir des choses comme :

On résume le principe :

  1. Écrire des morceaux de tweets dans des listes, chacune avec une clé.
  2. Composer dans origin la structure logique de la phrase, en utilisant les clés encadrées par des #.

C’est clair ? Tant mieux, car avec tout ça vous êtes déjà en mesure de composer un bot de type “cadavre exquis” tout à fait sympathique.


Trois façons d’aller plus loin :

  1. Ici, nos noms et nos adjectifs sont séparés seulement d’une espace, mais il est tout à fait possible d’écrire ce que l’on souhaite autour des noms des clés, par exemple "J'ai aperçu #nom# qui était très #adjectif#" , ou même de répéter les clés : "Je vais acheter #nom#, #nom# et #nom"
  2. Il peut y avoir plusieurs structures différentes dans origin . Reprenons par exemple les deux nouvelles structures inventées juste au-dessus : "origin": ["Je vais acheter #nom#, #nom# et #nom", "J'ai aperçu #nom# qui était très #adjectif#"] . Une structure sera tirée au sort à chaque fois.
    C’est une bonne façon de régler les problèmes d’accord et de conjugaison : on crée des listes séparées de noms féminins et masculins par exemple, et idem avec les listes d’adjectifs. On écrit ensuite deux structures de phrase dans origin: une qui pioche un nom féminin et un adjectif féminin, et une autre un nom masculin et un adjectif masculin.
  3. Last but absolutely not least, les bouts de phrase eux-mêmes peuvent renvoyer à d’autres clés. Imaginez que notre bot ne soit plus nom + adjectif mais nom + qualificatif, où le qualificatif est soit un adjectif épithète(“rouge”, “énorme”…), soit un complément de nom (“en bois”, “de l’enfant”). On pourra avoir le code suivant :

Ici, origin renvoie à un qualificatif qui renvoie lui-même à 2 structures possibles : adjectif et complement . Générons quelques phrases :

Vous voyez l’idée ? Et encore, nous nous sommes arrêtés dès le deuxième niveau, mais lui-même pourrait renvoyer encore à d’autres clés, et ainsi de suite. Le tout peut s’imaginer comme un arbre, dont origin est le tronc principal se divisant en 2 branches, qui se divisent à leur tour, etc.


Voilà, vous savez comment faire générer à votre bot des tweets qui peuvent potentiellement être assez complexe. Vos connaissances suffisent à imiter la grande majorité des bots de Twitter, avec un peu d’huile de coude pour remplir les listes. La suite est un jeu d’enfant.

Étape 3 : la publication des tweets

Reprenons les informaticiens que nous avions laissé au début de l’étape 1. Les autres, qui ont appris à utiliser CBDQ, vous pouvez sauter ce paragraphe l’esprit tranquille et reprendre à la prochaine séparation en pointillés.

Chers informaticiens, nous allons à nouveau vous diviser en deux. Les fortiches, et les débutants.

Ô informaticiens fortiches, je vous suggère de publier vos tweets avec un programme maison, qui tournera sur un serveur à vous, en utilisant l’API de Twitter. Pour cela, il vous faut un compte Twitter de développeur, que vous pouvez obtenir en postulant ici. Ce compte n’a pas besoin d’être celui du bot. En fait, si vous comptez faire plusieurs bots, je vous suggère même de faire valider votre compte principal, il suffira pour tous les bots. Cela vous donne le droit de créer une “application”, à qui il faudra donner les droits de publication pour le compte du bot via un token. Vous trouverez les infos sur la doc mieux que je ne pourrais vous les expliquer ici. En cas de besoin, contactez-moi. L’avantage de cette solution : vous avez une maîtrise totale, vous pouvez poster des sondages, des médias, réagir de façon très fine aux notifications, choisir vos horaires exacts.

Les informaticiens moins chevronnés (ou pressés), vous feriez sans doute mieux de vous servir de Cheap Bots Done Quick. Utilisez la fonction de génération de tweets que vous avez développée à l’étape 1, pour en générer quelques milliers, que vous allez ranger dans un JSON en suivant le format de CBDQ : une liste contenue dans la clé origin . Lisez l’étape 1 rapidement pour relier votre compte de bot à CBDQ et comprendre le format de JSON, ça ne devrait pas vous poser de difficulté. Et suivez maintenant la même consigne que les non-informaticiens.


On a récupéré tout le monde ? Ok, ceux qui sont là, vous avez normalement une page de CBDQ ouverte, connectée avec le compte de votre bot. La zone de texte est remplie et les tweets sont prêts à être publiés. Eh bien c’est très simple : commencez par régler la fréquence de publication dans le menu déroulant “post a tweet as”. Cliquez sur “Save”. C’est fini, ça fonctionne.

Notez que vous réglez une fréquence, mais pas un horaire. CBDQ gère tout seul. Pour info, si vous choisissez la fréquence quotidienne, le tweet sortira en début d’après-midi en France. Si vous prenez une fréquence rapide (toutes les 10 minutes), attendez-vous à des irrégularités de rythme : on sera bien à 6 tweets par heure en moyenne, mais certains seront plus pressés que d’autre.


Vous avez sûrement repéré que le dernier menu permet au bot de répondre automatiquement à ceux qui le notifient. J’ai déjà été très verbeux alors je ne vais pas expliquer en détail, mais vous n’aurez pas de mal à comprendre la logique, qui est la même. La seule différence est que les clés que vous entrez correspondent aux mots auquels vous souhaitez que le bot réagisse, les valeurs pouvant faire des références aux clés du premier JSON (c’est même plus simple de faire comme ça : tout le “cerveau” dans le premier JSON, et seulement les mots déclencheurs dans le deuxième, directement reliés à une clé toute prête du premier, pas forcément origin).

Sachez toutefois qu’il sera impossible à votre bot de répondre aux comptes cadenassés (c’est logique, il ne peut même pas les voir), et que 5 % du temps, il ne répondra pas. Cette dernière limitation est une sécurité destinée à empêcher deux bots de se répondre éternellement l’un à l’autre.

Et enfin attention : il est “sensible à la casse”, par exemple si vous mettez la clé bonjour , il ne réagira pas à “Bonjour” avec une majuscule.

Étape 4 : en route pour la gloire

Votre bot est créé, il vit sa vie de bot en postant tranquillement ? C’est vraiment…

(Je ne m’en lasse pas)

Pour suivre ses notifications, vous pouvez vous connecter à son compte sur Twitter en plus de votre compte principal :

Cette manip, à faire sur chaque application et navigateur que vous utiliserez, vous facilitera grandement le passage d’un compte à l’autre. Vous pouvez aussi essayer d’utiliser Tweetdeck, qui est très pratique pour les gens ayant beaucoup de comptes.

Enfin, n’hésitez pas à faire ajouter votre bot à la liste du Cercle des boteurs, dont nous parlions au tout début de cet article, pour qu’il se fasse des copains avec les autres bots. Vous ne voudriez pas qu’il s’ennuie, n’est-ce pas ?


Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade