Inspiration
Ever since we started using Discord voice channels to chill, play games, and listen to music, we always thought of various features that the "ideal" music bot would have. Because popular bots such as Groovy and Rythm have been recently discontinued, we thought it would be the perfect time to make this "ideal bot".
What it does
Orpheus is a self-hosted, completely free discord music bot with a web gui to observe and manipulate the queue, as well as a smart-queueing algorithm to evenly distribute music-playing time amongst users in a voice channel.
How we built it
We built this bot's backend primarily using various libraries and modules in GoLang. In particular, we used the open-source project YouTube-dl to download YouTube videos from their links and process much of their information, as well as other libraries like discordgo, which has specific support for Discord bots. The frontend was built using HTML, JavaScript, and CSS.
Challenges we ran into
One of the challenges that we encountered was the audio streaming portion of our code which was very susceptible to latency in code execution, as well as tricky conversions between encodings that was necessary to communicate with Discord. We also additionally had to plug into many different apis and frameworks, without project including a go business logic part, web part, discord bot part, audio part, etc. that made it hard to finish an MVP within a short amount of time.
Accomplishments that we're proud of
We're proud of the fact that we were able to create the beginnings of a much better bot, one that refines on the UI/UX of our predecessors through our own experience. We think that, once finished, this will definitely be the best music bot that is available, especially as open-source.
What we learned
I'm personally glad that I was able to begin to learn the technical aspect of golang's extensive multithreaded and parallel support which was necessary in order to cleanly facilitate handling a theoretically high throughput of data. As a team, we learned how to work together and divide up tasks, which for many of the members was a great learning experience as it was the first time working on an extensive hackathon or even just generally software engineer project.
What's next for orpheus
First on the to-do list for orpheus is clearly to fix our many bugs regarding the slash commands in Discord, as well as add various other commands we'd like to support, like skipping between songs in the queue, removing songs in the queue, and moving songs within the queue. Furthermore, we'd also like to make our web gui more robust to make it easier to interact with. Finally, we'd also like to improve the smart-queueing algorithm and add others, in order for users to have the most customizable and enjoyable experience.
Built With
- golang
- html
- javascript
- svelte
Log in or sign up for Devpost to join the conversation.