[English Version Below]
(Statut du 14/12/2025: Le bot est down car l'API gratuite de X empêche de tweet autant chaque jour.)
Il s'agit d'un bot pour le réseau social X ex Twitter qui poste toutes les 2 heures (depuis le 9/11/2024 avant c'était toutes les heures) la chanson la plus populaire pour un pays aléatoire et une année aléatoire, le post contient aussi le lien YouTube qui mène vers la chanson. Depuis le 26/11/2024, le bot est présent aussi sur BlueSky ! Ce repo contient la version publique du bot, i.e. les clées API utilisées dans le fichier .env sont cachées.
Le bot est codé entièrement en JavaScript, et est conteneurisé dans un container Docker. Le fichier index.js contient le code pour faire fonctionner le bot et le fichier package.json contient toutes les dépendances pour faire fonctionner le projet. Le Dockerfile est écrit de telle sorte pour déployer le bot sur une machine virtuelle gratuite de Render . Le bot utilise les API de X, de BlueSky (atproto API) et celle de Google (pour le lien YouTube), il récupère la donnée à poster sur https://www.thisdayinmusic.com/birthday-no1/ (USA 🇺🇸, UK 🇬🇧, Allemagne 🇩🇪, Australie 🇦🇺, Canada 🇨🇦), https://www.chartsinfrance.net/charts/ (France 🇫🇷) et https://kma.kkbox.com (Japon 🇯🇵) en scrappant avec Puppeteer. Un cronjob permet l'exécution de la fonction principale toutes les 2 heures (à chaque fois que le chiffre des minutes est égal à 0 toutes les 2 heures).
- Créer un repo GitHub à partir de celui-ci
- Mettre les clés API correspondantes dans le fichier .env
- Créer un Web Service sur Render et le lier à votre repo.
- Rajouter dans "Advanced" les variables suivantes
PUPPETEER_SKIP_CHROMIUM_DONWLOAD=true et PUPPETEER_EXECUTABLE_PATH=/usr/bin/google-chrome-stable
- Créer le service et tout est prêt
(Status as of 12/14/2025: The bot is down because X's free API prevents it from tweeting as much every day.)
This is a bot for the social network X, formerly Twitter, which posts every 2 hours (since November 9, 2024; previously it was every hour) the most popular song for a random country and a random year. The post also contains a YouTube link to the song. Since November 26, 2024, the bot has also been available on BlueSky! This repo contains the public version of the bot, i.e., the API keys used in the .env file are hidden.
The bot is coded entirely in JavaScript and is containerized in a Docker container. The index.js file contains the code to run the bot, and the package.json file contains all the dependencies to run the project. The Dockerfile is written in such a way as to deploy the bot on a free virtual machine from Render. The bot uses the APIs from X, BlueSky (atproto API), and Google (for the YouTube link), and retrieves the data to be posted from https://www.thisdayinmusic.com/birthday-no1/. (USA 🇺🇸, UK 🇬🇧, Germany 🇩🇪, Australia 🇦🇺, Canada 🇨🇦), https://www.chartsinfrance.net/charts/ (France 🇫🇷) and https://kma.kkbox.com (Japan 🇯🇵) by scraping with Puppeteer. A cronjob allows the main function to be executed every 2 hours (whenever the minute count is 0 every 2 hours).
- Create a GitHub repo from this one
- Put the corresponding API keys in the .env file
- Create a Web Service on Render and link it to your repo.
- Add the following variables in “Advanced”
PUPPETEER_SKIP_CHROMIUM_DONWLOAD=true and PUPPETEER_EXECUTABLE_PATH=/usr/bin/google-chrome-stable
- Create the service and everything is ready