Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[IDEA]: Music streaming in CLI #53

Open
majorbruteforce opened this issue Mar 5, 2024 · 8 comments
Open

[IDEA]: Music streaming in CLI #53

majorbruteforce opened this issue Mar 5, 2024 · 8 comments

Comments

@majorbruteforce
Copy link
Member

After using @zakhaev26's koelCLI I find it really convenient and refreshing to type a song's name in my terminal and listen to it on the go. i didn't expect it to become an app I would use everyday. I can't help but wonder for it to become a fully developed product that would have features like peer-to-peer music sharing, playlist creation, mood oriented algorithms and everything crazy right from the terminal. It won't just be a Spotify in the terminal but a community of listeners.

@zakhaev26 let's make this properly and real this time! Would love to here more suggestions from everyone on features that we can implement!

We ABSOLUTELY have to make this one with charm!

@zakhaev26
Copy link
Member

zakhaev26 commented Mar 7, 2024

For some context for all, here's the repo for featherCLI/koel

koelcli drawbacks:

  • Poor UI (it was just a concept back then)
  • Limited Control and Repetition: Users had little control over song selection and experienced repetition of tracks, which detracted from the enjoyment of music playback. Additionally, the absence of playlist functionality limited the ability to organize and customize listening experiences.
  • lack of Offline/Online Mode: The application did not offer an offline mode, restricting access to music when an internet connection was unavailable.
  • Missing p2p mode: There was no peer-to-peer (P2P) mode, which could have allowed nearby Koel users to connect and collaborate in shared listening rooms (like joining in through the ITS70xx), similar to the concept seen in games like Mini Militia.
  • Absence of Rememberance Feature: it lacked a feature to remember previously played songs. Implementing a functionality to store and recall song history could have ++'ed the performance by avoiding redundant network calls to retrieve songs that had been played before (we can use ferretdb / nedb for this?).
  • No Playlist Feature: The absence of a playlist feature limited users' ability to curate and organize their music collections according to their preferences.

I think we should start the implementation asap as i can't wait for this❤️. Let's start the feature ideation here itself.

We ABSOLUTELY have to make this one with charm!

we can also do some react , if you want 😉 🌚

@zakhaev26
Copy link
Member

Implementation started here

@majorbruteforce
Copy link
Member Author

we can also do some react , if you want 😉 🌚

you are evil

@majorbruteforce
Copy link
Member Author

Features that need to be implemented:

  • Music streaming if a CDN is available or download and play.
  • Visualisers (we need to have visualisers) / Progress bar (seekable)
  • Playlist/ queues/ lists to navigate through songs
  • P2P: first, URLs which can only be fetched through paid YT search APIs. Second, stream the media buffers if available in other devices.
  • The above may also extend to a peer mode where users can share their local collection of music with each other.
  • config files for raag to customise themes, preferences, moods etc

@majorbruteforce
Copy link
Member Author

@zakhaev26 feel free to add and change features

@majorbruteforce
Copy link
Member Author

@zakhaev26 let's start work for raag

@zakhaev26
Copy link
Member

zakhaev26 commented Mar 11, 2024

@majorbruteforce make a feature draft (in the repo itself) and start assigning issues between you and me (for now)
also,look into mpg321 and yt-dlp and rapid apis
v0 should be quick as we have experience of building koel.

@majorbruteforce
Copy link
Member Author

Will get it started by tomorrow.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants