spotify_ex v0.1.1 Spotify.Playlist

Playlist API endpoints

API calls in this module require valid Authorization headers. See the OAuth section for more details.

https://developer.spotify.com/web-api/playlist-endpoints/

Summary

Functions

Add one or more tracks to a user’s playlist. Spotify Documentation

Change a playlist’s name and public/private state. (The user must, of course, own the playlist.) Spotify Documentation

Check to see if one or more Spotify users are following a specified playlist. Spotify Documentation

Create a playlist for a Spotify user. (The playlist will be empty until you add tracks.) Spotify Documentation

Get a list of featured playlists. Spotify Documenation

Add the current user as a follower of a playlist. Spotify Documentation

Get full details of the tracks of a playlist owned by a Spotify user. Spotify Documentation

Get a list of the playlists owned or followed by a Spotify user. Spotify Documentation

Remove one or more tracks from a user’s playlist. Spotify Documentation

Reorder a track or a group of tracks in a playlist. Spotify Documentation

Replace all the tracks in a playlist, overwriting its existing tracks. This powerful request can be useful for replacing tracks, re-ordering existing tracks, or clearing the playlist. Spotify Documentation

Search for a playlist. Spotify Documentation

Remove the current user as a follower of a playlist. Spotify Documentation

Functions

add_tracks(user_id, playlist_id, params \\ [])

Add one or more tracks to a user’s playlist. Spotify Documentation

Method: POST

Optional Params: uris, position

You can also pass the URI param in the request body. Use add_tracks/2. See Spotify docs.

iex> Spotify.Playlist.add_tracks("123", "456", uris: "spotify:track:4iV5W9uYEdYUVa79Axb7Rh")
"https://api.spotify.com/v1/users/123/playlists/456/tracks?uris=spotify%3Atrack%3A4iV5W9uYEdYUVa79Axb7Rh"

iex> Spotify.Playlist.add_tracks("123", "456") # Must send request data using this function
"https://api.spotify.com/v1/users/123/playlists/456/tracks"
by_category(id, params \\ [])

Get a category’s playlists. Spotify Documentation

Valid params: country, limit, offset

Method: GET

Example:

iex> Spotify.Playlist.by_category("123")
"https://api.spotify.com/v1/browse/categories/123/playlists"

iex> Spotify.Playlist.by_category("123", [country: "US", limit: 5])
"https://api.spotify.com/v1/browse/categories/123/playlists?country=US&limit=5"
change_playlist(user_id, playlist_id)

Change a playlist’s name and public/private state. (The user must, of course, own the playlist.) Spotify Documentation

Method: PUT

Request Data): name, public

iex> Spotify.Playlist.change_playlist("123", "456")
"https://api.spotify.com/v1/users/123/playlists/456"
check_followers(owner_id, playlist_id, params)

Check to see if one or more Spotify users are following a specified playlist. Spotify Documentation

Method: GET

**Query Params: ids

iex> Spotify.Playlist.check_followers("123", "456", ids: "foo,bar")
"https://api.spotify.com/v1/users/123/playlists/456/followers/contains?ids=foo%2Cbar"
create_playlist(user_id)

Create a playlist for a Spotify user. (The playlist will be empty until you add tracks.) Spotify Documentation

Method: POST

Body Params: name, public

iex> Spotify.Playlist.create_playlist("123")
"https://api.spotify.com/v1/users/123/playlists"
featured(params \\ [])

Get a list of featured playlists. Spotify Documenation

Valid params: locale, country, timestamp, limit, offset

Method: GET

iex> Spotify.Playlist.featured
"https://api.spotify.com/v1/browse/featured-playlists"

iex> Spotify.Playlist.featured(country: "US")
"https://api.spotify.com/v1/browse/featured-playlists?country=US"
follow_playlist(owner_id, playlist_id)

Add the current user as a follower of a playlist. Spotify Documentation

Optional Body Params: public

Method: PUT

iex> Spotify.Playlist.follow_playlist("123", "456")
"https://api.spotify.com/v1/users/123/playlists/456/followers"
get_playlist(user_id, playlist_id, params \\ [])

Get a playlist owned by a Spotify user. Spotify Documentation

Method: GET

**Optional Params fields, market

iex> Spotify.Playlist.get_playlist("123", "456")
"https://api.spotify.com/v1/users/123/playlists/456"

iex> Spotify.Playlist.get_playlist("123", "456", market: "foo")
"https://api.spotify.com/v1/users/123/playlists/456?market=foo"
get_playlist_tracks(user_id, playlist_id, params \\ [])

Get full details of the tracks of a playlist owned by a Spotify user. Spotify Documentation

Method: GET

**Optional Params fields, market, limit, offset

iex> Spotify.Playlist.get_playlist_tracks("123", "456")
"https://api.spotify.com/v1/users/123/playlists/456/tracks"

iex> Spotify.Playlist.get_playlist_tracks("123", "456", limit: 5, offset: 5)
"https://api.spotify.com/v1/users/123/playlists/456/tracks?limit=5&offset=5"
get_users_playlists(user_id, params \\ [])

Get a list of the playlists owned or followed by a Spotify user. Spotify Documentation

Method: GET

** Optional Params: limit, offset

iex> Spotify.Playlist.get_users_playlists("123")
"https://api.spotify.com/v1/users/123/playlists"

iex> Spotify.Playlist.get_users_playlists("123", limit: 5)
"https://api.spotify.com/v1/users/123/playlists?limit=5"
remove_tracks(user_id, playlist_id)

Remove one or more tracks from a user’s playlist. Spotify Documentation

Method: DELETE

Request Data: tracks

iex> Spotify.Playlist.remove_tracks("123", "456")
"https://api.spotify.com/v1/users/123/playlists/456/tracks"
reorder_tracks(user_id, playlist_id)

Reorder a track or a group of tracks in a playlist. Spotify Documentation

Method: PUT

Required Request Body Data: range_start, insert_before

Optional Request Body Data: range_length, snapshot_id

iex> Spotify.Playlist.reorder_tracks("123", "456")
"https://api.spotify.com/v1/users/123/playlists/456/tracks"
replace_tracks(user_id, playlist_id, params \\ [])

Replace all the tracks in a playlist, overwriting its existing tracks. This powerful request can be useful for replacing tracks, re-ordering existing tracks, or clearing the playlist. Spotify Documentation

Method: PUT

Optional Query Params: uris

You can also pass the URI param in the request body. Use replace_tracks/2. See Spotify docs.

iex> Spotify.Playlist.replace_tracks("123", "456")
"https://api.spotify.com/v1/users/123/playlists/456/tracks" # Must send request data

iex> Spotify.Playlist.replace_tracks("123", "456", uris: "spotify:track:4iV5W9uYEdYUVa79Axb7Rh,spotify:track:adkjaklsd94h")
"https://api.spotify.com/v1/users/123/playlists/456/tracks?uris=spotify%3Atrack%3A4iV5W9uYEdYUVa79Axb7Rh%2Cspotify%3Atrack%3Aadkjaklsd94h"
search(params)

Search for a playlist. Spotify Documentation

Method: GET

Required Params: q

Optional Params: limit, offset, market

iex> Spotify.Playlist.search(q: "foo", limit: 5)
"https://api.spotify.com/v1/search?type=playlist&q=foo&limit=5"
unfollow_playlist(owner_id, playlist_id)

Remove the current user as a follower of a playlist. Spotify Documentation

Method: DELETE

iex> Spotify.Playlist.follow_playlist("123", "456")
"https://api.spotify.com/v1/users/123/playlists/456/followers"