Crummy Music Discord Bot

Authors

Marco Antonio Rodriguez
Marco Antonio Rodriguez

Last Update - September 24, 2024

Crummy Music Discord Bot - Project Image
A Personal Project I started due to a necessity.

Probably one of the social networks I use the most is Discord. That’s where I talk with my friends while we’re playing video games, and one of our favorite things is listening to music. We used to use one of the most famous music bots called Groovy. In our opinion, it was the best music bot due to its simplicity. Other bots required more user actions like choosing the song you wanted to play from several options shown, or sometimes didn’t give the expected results. With Groovy, you put the song or video you want to listen to, and the bot finds it exactly as you wanted. Also, the commands were very simple and did just what was needed. Other bots have several commands and sometimes were difficult to use.

Everything was fine with Groovy, but during the pandemic, when social networks became more popular, something happened. It stopped functioning due to a cease and desist order issued by Google. Groovy was a popular bot that allowed users to play music from YouTube on their Discord servers. However, Google considered that the bot violated YouTube’s terms of service, as it was used to stream music from YouTube without showing ads and, in some cases, allowed users to bypass usage restrictions.

The Groovy team received the cease and desist notice in August 2021 and announced that the bot would stop working by the end of that month. The decision to shut down Groovy was a direct response to this legal action to avoid further legal issues with Google.

After Groovy’s shutdown, other music bots on Discord faced similar situations, such as Rythm, which received a similar order shortly after. This indicates a broader effort by Google to enforce its terms of service and protect its copyrights and advertising revenue sources.

That was kind of sad for us because music is something essential for us. Several months passed, and we didn’t find a new replacement for Groovy, every bot was worse than the other. Most of them didn’t find the songs we wanted to play.

That’s when I saw one of my schoolmates making a very basic music Discord bot using Python packages of Discord. So I started to research how to make mine. I found thousands of videos, read the Discord documentation, and I decided to start the creation of my personal Discord Music Bot, keeping in mind the simplicity of Groovy. I wanted to create a bot closest to Groovy called Crummy (an antonym of Groovy).

That’s where I encountered technologies I didn’t know about such as FFmpeg and yt-dlp. These technologies allowed me to recreate the search functionality of Groovy. yt-dlp is a command-line program used for downloading videos and audio from various websites, including YouTube. It is a fork of the now-discontinued youtube-dl, and it includes several improvements and additional features. Probably it was the same tool Groovy used. But as a personal bot and not public, I wouldn’t have the same problems with Google. Then with FFmpeg, I got the link of the media to be reproduced. That resulted in a very functional bot keeping the simplicity and personal touches for our server.

The first version was uploaded to GitHub to help other people create a bot from zero. To make this achievable, a lot of work on documentation was done. If you look at the repo, you would see everything explained carefully to make it easier for each kind of audience.

The second version of the bot came with a lot of surprises, such as performance improvements, error handling, new commands and features, UI improvements using Discord resources, and Heroku option deployment with improvements in the documentation making a trustworthy image of the bot and making it more robust. With these last changes, the bot is near to what Groovy was and that was what I wanted from the beginning. Nowadays, we use that bot mainly. I hosted it myself due to Heroku’s prices (it’s not that expensive though), and we’re happy with it.