staniel359 / muffon

Advanced multi-source music streaming + discovery client for desktop. Free, clean, no login, no ads.
https://muffon.netlify.app
GNU Affero General Public License v3.0
1.32k stars 54 forks source link

Develop a plugin system #19

Closed vkefallinos closed 2 years ago

vkefallinos commented 2 years ago

First of all great work. I would love to contribute.

I would like the ability to create a plugin for muffon. Specifically to add metadata and media sources or even a custom media player.

Plugin examples:

You can guide me on where to look for these and I will contribute :)

staniel359 commented 2 years ago

@vkefallinos Hello and thanks for your feedback.

Let me clarify your points:

  1. to add metadata Of what kind?
  2. media sources You can request media source you'd like to add and I'll look through it.
  3. a custom media player Is this really necessary? There is a player already.
  4. import music from the harddrive There's already an ability to import tracks data from your drive in library section. Or do you mean something else?
  5. add custom source for audio files Is this related to adding media sources?
  6. allow for flac/wav media playing How should it be done?

So basically I'd like you to describe the complete flow you'd like to get, please.

vkefallinos commented 2 years ago
  1. Metadata sources for greek music for example from an api that you probably don't want to support. You now search on spotify, bandcamp etc for artist/album/song metadata.
  2. For example I would like soulseek as a media source which ofcourse can't happen in a project like this. So the plugin pattern used by stremio for movies I think is a great a fit for muffon.
  3. Custom media player for flac files https://howlerjs.com/
  4. just found the menu but unfortunately most of my collection is in flac
  5. yes
  6. -> 3
vkefallinos commented 2 years ago

So the idea is that if we move the logic behind spotify,vk,bandcamp etc in a separate repository as plugins and allow the user to enable certain plugins, this will enable more community contributions.

staniel359 commented 2 years ago

@vkefallinos Thanks for the explanation. If I got you correctly, you want the app to work with actual audio files from your drive or Soulseek. So you want the plugin that makes the app like file manager or regular desktop player, e.g. WinAmp or VLC, right?

vkefallinos commented 2 years ago

mostly I would like to be able to develop my own plugins. So instead of asking for features I'd like to develop plugins that work with muffon. One plugin I would develop would be to add soulseek(a 90s software for sharing music that still has a huge community) as a music source. Another would be to load tracks from my hard drive.

staniel359 commented 2 years ago

@vkefallinos I see. Well, I didn't plan to make the app extendable via plugins. Just don't want to overload it with features. But that's actually a good idea, so maybe try to implement it in another app or even create your own. I think, that would be much easier to do from scratch. Besides, I know Soulseek and use it sometimes. But for me the interface could use a little work. If you create a modern Soulseek client, that would be great.

vkefallinos commented 2 years ago

It depends on what you want to do. I like using software I can extend with plugins. It somehow makes open source more open. Anyway. Thank you for your time! :)