Extract the Quiz ID from the address bar using Gemini OCR.
This project is a throwback to my days developing Kahoot bots. It all began with Kahoot Tools, a passion project I created purely for fun. It could extract the correct answers from any Kahoot game, add bots, and spam answers – good times.
That project evolved into OmegaBoot, a platform that grew to millions of users and honestly spiraled out of control. But looking back, it was still a lot of fun.
However, everything changed when Kahoot patched many of their vulnerable protocols. The biggest issue was that they stopped announcing the Quiz ID (which was a strange decision on their part in the first place, so it was probably justified). This meant fetching the correct answers was no longer possible.
Well, here's a really hacky solution to that problem, years later.
The user takes a picture of the teacher's screen while they're hosting the Kahoot. The address bar contains the Quiz ID as a query parameter. This image is sent to Gemini to parse out the Quiz ID. A request is then made to Kahoot to fetch the correct answers, and those answers are displayed.
All of this is wrapped in two neat Docker containers orchestrated by Docker Compose. :)
You can run the project by running npm run dev in both the back-end and front-end directories. Before doing so, copy .env.template in both directories to .env and fill in the required GEMINI_API_KEY in the backend's .env file.
Alternatively, you can copy .env.template in the root directory to .env, fill in the API key, and then run docker-compose up.
The frontend will then be accessible at http://localhost:8080.
There are some proof-of-concept images in the /poc directory. I'm not sure if this idea works in practice, but it's fun nonetheless.
Happy hacking!