wandersoncferreira / helm-spotify-plus

New version of Emacs package Helm-spotify
50 stars 11 forks source link

See what Spotify API can do for Playlists #21

Open lgmoneda opened 7 years ago

lgmoneda commented 7 years ago

See if Spotify API can be used to search playlists in general or even from a certain user.

lgmoneda commented 7 years ago

The following request: https://api.spotify.com/v1/users/lgmoneda/playlists

Results in:

{
  "error" : {
    "status" : 401,
    "message" : "This request requires authentication."
  }
}

The same happens if we pass a playlist id, like:

https://api.spotify.com/v1/users/lgmoneda/playlists/1msbZYd2L8vVLLS54CtCsh

What can be done: ask helm-spotify-plus user to configure manually his token and use it.

wandersoncferreira commented 7 years ago

How about this one:

https://api.spotify.com/v1/search?q="doom metal"&type=playlist

Results in:


{
  "playlists" : {
    "href" : "https://api.spotify.com/v1/search?query=%22doom+metal%22&type=playlist&offset=0&limit=20",
    "items" : [ {
      "collaborative" : false,
      "external_urls" : {
        "spotify" : "http://open.spotify.com/user/1121479704/playlist/0v9cjE3vjgCv0aVXpeIlHT"
      },
      "href" : "https://api.spotify.com/v1/users/1121479704/playlists/0v9cjE3vjgCv0aVXpeIlHT",
      "id" : "0v9cjE3vjgCv0aVXpeIlHT",
      "images" : [ {
        "height" : 640,
        "url" : "https://mosaic.scdn.co/640/350b0d383af042146a65bc9a30cc4495d554da782b46a7907db90ddd0882c90e7b5fe0b1f216b9cca2b9656e814222ef32c8a9bd4ac581d12fe5a769cca6b1d2328497a6fcaa52e3736a6649cbd8c81a",
        "width" : 640
      }, {
        "height" : 300,
        "url" : "https://mosaic.scdn.co/300/350b0d383af042146a65bc9a30cc4495d554da782b46a7907db90ddd0882c90e7b5fe0b1f216b9cca2b9656e814222ef32c8a9bd4ac581d12fe5a769cca6b1d2328497a6fcaa52e3736a6649cbd8c81a",
        "width" : 300
      }, {
        "height" : 60,
        "url" : "https://mosaic.scdn.co/60/350b0d383af042146a65bc9a30cc4495d554da782b46a7907db90ddd0882c90e7b5fe0b1f216b9cca2b9656e814222ef32c8a9bd4ac581d12fe5a769cca6b1d2328497a6fcaa52e3736a6649cbd8c81a",
        "width" : 60
      } ],
      "name" : "Doom Metal / Death Doom Metal / Funeral Doom Metal",
      "owner" : {
        "external_urls" : {
          "spotify" : "http://open.spotify.com/user/1121479704"
        },
        "href" : "https://api.spotify.com/v1/users/1121479704",
        "id" : "1121479704",
        "type" : "user",
        "uri" : "spotify:user:1121479704"
      },
      "public" : null,
      "snapshot_id" : "uH0e2Xho/mIBAA9xKE6fe/atA7TUpIJYisV3ygXj8GlkbFQYw4GBQMQPnwOXBy4s",
      "tracks" : {
        "href" : "https://api.spotify.com/v1/users/1121479704/playlists/0v9cjE3vjgCv0aVXpeIlHT/tracks",
        "total" : 924
      },
      "type" : "playlist",
      "uri" : "spotify:user:1121479704:playlist:0v9cjE3vjgCv0aVXpeIlHT"
    }, .... many more. ```
lgmoneda commented 7 years ago

I was thinking about a user that wants to play his own playlists. I'll try to use filters and see what can be done with the "type=playlist" search. Even if can not retrieve user's playlists, it would be a nice feature to add.

This works too:

(helm-spotify-plus-play-href "spotify:user:lgmoneda:playlist:1msbZYd2L8vVLLS54CtCsh")

So the user could store his playlists uri and play them easily with the mode. I think it's very boring to configure, but maybe it'd worth!

wandersoncferreira commented 7 years ago

Yes, I think is good enough.

This brought me this idea:

For example: We could make an Action (place it in F3 maybe) where the user can Store any playlist, album or even tracks. Creating a mode custom user-list.

We might persist it in a file called .helm-spotify-plus-customs and have an option to not request directly to the Spotify API, instead we show the custom list of things.

Could be a feature to the next release 1.2 because I think many things will need to be done to accomplish that.

What you think?

lgmoneda commented 7 years ago

Nice idea. Basically, we would reproduce Spotify's desktop app left bar!