Last January, my partner arrived early at my house to find me still asleep. We were supposed to be leaving for the coast that day; her packed and preparedness a stark contrast to my having not yet moved.
For the past few years, my friends and I have made our way down for the Australia Day long weekend to celebrate a generationally colloquial event, Triple J’s Hottest 100. The radio station, run by the Australian Broadcasting Corperation, plays the top 100 songs of the previous year as voted by over 3 million people on the Saturday of the long weekend.

We aren’t alone in this tradition. Open up any social feed on this weekend and you’re almost guaranteed to find somone at a listening party, regardless of whether they voted or their interests in specific music genres. Yet despite the near religious fascination many have to the countdown, almost everybody at these parties misses at least one their votes being played. All that social effort to miss one of your favourite songs of the year play in the countdown.
Despite their only being several hours before our needing to leave, I awoke with eyes and pupils wide. I’ve got it. A voting bot. One that keeps track of votes. An API call to the ABC server that could grab the current playing song, see if it’s changed and if so, check the new song against a database of people’s submitted votes. If one of the songs comes up, message the group chat. We needed to leave. I turned to my partner. She was less than impressed with both my last minute nature of this idea and the prioritisation to suddenly build an app over packing for the trip.
“You have an hour”, she said. I raced to the computer and opened up PyCharm.

As I should have expected, it was far less trivial than anticipated. Should “title” = “voted title”? “title” in “voted title”? Both? What about the artist? No time. After an hour of power followed by some very grateful manual entering of everybody’s votes into a spreadsheet from my partner, we had a bot that checked for a new song via the ABC API, grabbed everyone’s name, the song title and artist from the spreadsheet if it matched, created a string, copied it to the clipboard and crudely pasted it into the open Facebook Messenger window. It wasn’t pretty, but it worked, and we left for the coast far more on time than I anticipated.


The countdown came and went. I was elated. Not only had we all had a great weekend, the bot done it’s job with relatively little error and my childhood heroes in The Wiggles had come back into the limelight and taken out number 1. See below.

Learning plenty from that year, I set myself the goal to develop a second version of the app for 2023. Like all good intended projects, I touched on it one weekend but never got around to finishing it. That was, until the week before this year’s coast trip, where several speculative ideas were quickly turned into functional features just in time, including:
- The Flask application hosted on AWS Lightsail (bottest100.com, currently offline) which allows users to upload their votes image and using the Tesseract-OCR library, have their votes be added to the database.

- A code generator, so that new groups/parties can come in and invite other goers to upload their votes to a specific database.
- A new messaging system using selenium, which would open a browser instance and find the message box element to more stably send messages and be able to do so to several groups through provided Messenger IDs.


- A points system for votes, which exponentially grows the higher a vote achieves in the countdown. Special bonuses were added also, such as double points on a 10 (90, 80, 70, etc) and quadruple points for a vote on 50.
- Artist vote detection, so that alerts and points would be generated if a voted artist made it in, but not the specific song (because of course, we love to support the artists!).


The bot this year worked a treat, although many bug fixes were made on the fly. Making the detection more stable so votes weren’t missed or falsely alerted. An exception handler to stop a failed API call crashing the app.
There are several features I cannot wait to impliment for the countdown in 2024. If you have any suggestions, write them to me via email or LinkedIn!