X-Ryl669 / kutr

A personal music streaming server that works.
MIT License
16 stars 3 forks source link

[suggestion] ampache collaboration ? #6

Open a7medo778 opened 6 years ago

a7medo778 commented 6 years ago

hey guys so the guys (will basically the maintainer only) over at ampache are making a jump to laravel, ampache has a slew number of features that would be awesome on koel, and a very strong backend

why not do a joint venture into a single laravel powerhouse?

X-Ryl669 commented 6 years ago

I'm not sure what you are asking for. Ampache and Kutr/Koel are different application, they don't have the same goal (or at least, last time I checked). I'm not the original Koel developer, I've just added features to the application that I though were missing. If we were to merge 2 different applications, well, I'm not sure what kind of beast that would create.

So, if you have ideas about collaboration, please explain them. For now, I'm not convinced it makes sense.

a7medo778 commented 6 years ago

well, i have been using it as a backend for an app, so you looking at a community-based platform, with roles (listener, uploader, admin..ect) and easy to use gui to update the tags and upload new albums, a full-fledged api support, charts (top played this day,week, month), analytics and most importantly social features (timeline, follow..etc) to encourage discovery for collections that are not on last.fm

ampache is going through an almost complete rewrite in laravel, so what i mean about collaboration is that instead of starting from scratch, those features can be added to koel to make a single great platform

X-Ryl669 commented 6 years ago

Sorry for the delay. I'm part-time improving Kutr based on my needs. I'm open to any change you think might worth it, provided it's well coded and I understand them, so it's easy to maintain for me if you ever leave out.

I initially selected Koel instead of Ampache because of the features and the technology of the former seemed easier to understand than Ampache. For example, Ampache does not allow folder browsing (which I find more convenient than Artist/Album/Song hierarchy) Ampache interface seems outdated (too HTML4.0 for me) compared to Koel, but I guess that's where it can really shine with VueJS.

So basically, I wonder what are the possible improvement scenarios:

Scenario 1, Kutr focused:

  1. Add some skin to the API to mimick Ampache API (so third party client could connect to Kutr as if it was an Ampache server)
  2. Add Ampache's features to Kutr you think worth it (like the list you've written above)

Scenario 2, Ampache focused:

  1. Bootstrap from the actual API a laravel application, fixing the Kutr's HTML5 interface to work with Ampache's API
  2. Add missing feature in Ampache that exists in Kutr and vice versa

Scenario 3, large work:

  1. Decide by common agreement a functional API (that's kind of the best of Kutr & Ampache API)
  2. Make a giant beast by picking/rewriting both application into a single clean software
  3. Create a nice GUI & clients for this

Honestly, I don't have much time for scenario 3 even if it seems much appealing. Let me know what's your intent.

I've 2 real need I'm currently fixing for this application:

  1. Android client with folder browsing and song caching (none of the Ampache client could come close to what I want). I'm currently 60% done, using Kutr's API as a music provider and Orpheus as the music player. Currently I'm storing all my music on my phones, but it's a pain to synchronize and such a player would simplify this a lot.

  2. Make a "one UI fits all system", where the same client can be used to stream music to the web browser or to stream music to a DLNA speaker. I've done all the work for this in the server side (DLNA discovering, playlist handling, DLNA controlling of the speaker), and I'm currently fixing the UI to support this. Basically, when clicking the volume icon with Alt down, it'll pop up a list of active output (Browser, Dining Room, Parent's room, etc...) and if you use anything but Browser, it'll become a UPNP controller.

The other points in your list are not the features I'm decided to spend time upon, but PR welcome, of course.