SGA-A / c2c

Source code for the custom app exclusive to cc, where most interactions begin and end.
MIT License
2 stars 0 forks source link

Making a Music Manager View #77

Closed SGA-A closed 1 week ago

SGA-A commented 4 months ago

Is your feature request related to a problem? Please describe.

This issue address the need for streaming services. It would be nice if we can play music directly from services such as YouTube and Spotify without the need for watching ads (and paying a monthly fee).

This is also required as part of our aim in the project to reduce the number of bots we're dependent on in our server to as low as possible.

Describe the solution you'd like

Pretty much all the typical features that are contained within a music bot and the absolute essentials. You'll need to install wavelink as it was made for discord.py and a lavalink server if you want to use your own. This should only be done though if it is impossible to find a genuinely good public lavalink server.

I would highly recommend that if there is any functionality that can be done in buttons, to be done in buttons because you will eventually remake it in buttons anyway so might as well do it in the first attempt.

Permission checks are also another factor to consider. The bot needs voice related permissions like connect, speak etc.

It would also be a good idea to see what other bot's practices are and see what you can do to improve. Some good examples include Pancake, Groovy, Chip, FredBoat, Jockie Music and StormBeatz.

Bare bones

DJ Management

This stuff is just as important as the bare bones, but i've included it here because it should only work only for the DJ role if it was set. If not, treat this section as if it was inside bare bones.

Queue system

Playlists Creation

Describe alternatives you've considered

Considering the poor quality of my earbuds in voice calls, I'm considering not implementing this feature at all to begin with. I could get better earbuds or use my headset, though I'm not inclined to because it has it's own set of downsides.

Additional context

Music bots are available across Discord. They allow you to play music at incredibly smooth quality when done right. It's a good solution and many Discordians have approved of its existence in the past considering the amount of ads in place for many other music services. Due to Google cutting the existence of great music bots in the YouTube platform, many bots have had to shut down or remove YouTube as one of their providers. The temporary solution it seems, is to keep the bot private to supply YouTube as one of the providers in the bot.

There is also a lot of problems to consider when designing the music bot, such as regions (some songs are unsupported in certain regions) which may require an internal proxy to access. It's also worth considering that playing music is going to take quite a hit on the CPU and other resources, so minimizing that should be prioritized as well. The bot won't be playing music on more than 2 servers at once.

Though, it has been announced by Discord that it will be possible to for a single bot to play music in more than one channel so we may consider putting this feature aside until that day comes.

SGA-A commented 4 months ago

The post was too long so I'm making another comment.

It should be possible to restrict the usage of a command to just a few channels or roles.

SGA-A commented 3 months ago

Sadly, because of the issues mentioned here, this is no longer planned.

We're leaving this issue open however because there is a slight possibility of changing this, but not at this time.

SGA-A commented 2 months ago

As shown by the title change, this is being implemented but only on a basic level. There is only one platform we are using to provide music (YouTube) and most of the advanced features on our todo list have been crossed out.

More details to come.

SGA-A commented 2 months ago

We also plan to convert the basic functionality of the bot into a view. Things like pausing, resuming, stopping, leaving etc will all be toggleable by pressing a button on a view.

SGA-A commented 2 weeks ago

Didn't realize this was still open, but change of plans meant we can't implement this at all anymore. The bot is now verified and is more "open" to breaking terms of service given this feature got implemented. Since verification, we aim to align with the platform and developer ToS at all times and since this feature does not stand with our stance, it is no longer feasible to implement.

You may have noticed though that the streaming element of the bot has now moved to another repo, you can find it here. So in a nutshell, this bot will never support any form of streaming music from platforms like spotify, youtube etc and will only support playing music locally.

However I still plan on adding the music player view to manage the music currently being played. But it's quite low on my priority list so expect the unexpected.

SGA-A commented 1 week ago

Music is now abandoned as a whole now, having a local player seems quite useless on it's own and is not worth dedicating an entire cog for. For those unaware, we recently had to remove the streaming component due to it being a violation of the developer terms of service.

With that, we are now removing the local player too as of today. It didn't receive much usage to begin with and the music quality is significantly poorer than just playing it from the platform itself.