ersel / spotify-cli-mac

🎶 A nodejs app to control Spotify without leaving your terminal. 🎶
MIT License
178 stars 28 forks source link

Blue Sky Ideas #16

Open ersel opened 6 years ago

ersel commented 6 years ago

So we have recently added a recommend feature which was relatively straightforward to implement. We already leverage Spotify API to do search and recommend, what other functionality we can bring to the spotify-cli-mac? Perhaps, we could do more with Genius API access as well. This issue is meant to be a discussion for brainstorming and suggestions for further development. Feel free to share your ideas and suggestions.

Spotify API lib: https://github.com/thelinmichael/spotify-web-api-node

gabrielsclimaco commented 6 years ago

Integrate a database to save user preferences and credentials would be great

greenmoon55 commented 6 years ago

How about getting recommended playlists?

ersel commented 6 years ago

@gabrielsclimaco I think that would be too much hassle. We would need to manage a server and securely store people's credentials etc... I am not interested in building such a solution.

@greenmoon55 We already have a recommend feature which recommends songs, but I would be happy to accept a PR for playlists if you would like to have a go at it.

MasonDMitchell commented 6 years ago

A command to add a song to the spotify queue instead of immediately playing it?

Also, to add to the Genius API, it might be nice to have some way to display where in the lyrics the song is currently.

2hands10fingers commented 6 years ago

I'd really like to see the ability to add a song to a queue. I'd also like to get my currrent playlists and select which one to play.

ersel commented 6 years ago

Thanks for your suggestions @MasonDMitchell and @2hands10fingers .

I think some queue mechanics would be a great addition to the CLI.

I will be writing a short spec on how this could work shortly. I would be happy to accept a PR which addresses that.

ersel commented 6 years ago

It seems like we can do the playlist control, but queue is NOT possible at the time of writing.

See discussions here: https://github.com/spotify/web-api/issues/462

I'm leaving this as a note, if Spotify ever expands their API offering we could implement something like the below description:

======= Feature: Add a song to queue instead of playing it immediately. Acceptance Criteria: I see this working as an optional flag that can be used to change how the search command behaves.

For instance, user could run: spotify search artist metallica -- which would start playing metallica as normal.

or they could run: spotify search artist metallica --queue or simply -q for short.

If queue flag is provided, song should be added to user's play queue.

2hands10fingers commented 6 years ago

@ersel Definitely looked into it further and saw Spotify doesn't have that ability. Whatever makes it easier to add a song to a playlist, I suppose. Thanks for listening. :)

ersel commented 6 years ago

My pleasure, thanks for your interest @2hands10fingers

I have opened a new issue where I would be happy to accept PRs -- see #22

serbayAca commented 5 years ago

Hello @ersel, I've found your repo while hanging out on GitHub. I was impressed with the idea of controlling terminal with Javascript and I wanted to use and help to improve it immediately.

As @gabrielsclimaco says above, it would be great if the project holds user specifications/played latest music/ques .. etc. As you said, maybe you have difficulty in server management, but it can be handled by keeping in a temporary text file. Thus, both the server and the queue problem can be solved.

ersel commented 5 years ago

Hi @serbayAca , a local file might work actually. What would we use it for though? We can try a minimal feature as a proof of concept.

serbayacar commented 5 years ago

There is an extension for create/read file, which name 'fs' , a nodejs filesystem lib. In fact @ersel, I will work on this weekend to create a poc and send pr. Thanks!

ersel commented 5 years ago

Thanks @serbayAca , let me know if you need any help.