This is a PHP implementation of the Spotify Web API. It includes the following:
- Helper methods for all API methods:
- Information about artists, albums, tracks, and users.
- Spotify catalog search.
- Playlist and user music library management.
- Music featured by Spotify.
- Authorization flow helpers.
- PSR-4 autoloading support.
- PHP 5.3 or greater.
- PHP cURL extension (Usually included with PHP).
Add spotify-web-api-php as a dependency to your composer.json:
"require": {
"jwilsson/spotify-web-api-php": "0.9.*"
}For more instructions, please refer to the documentation.
Add tracks to a user's library
$api->addMyTracks(array('1oR3KrPIp4CbagPa3PhtPp', '6lPb7Eoon6QPbscWbMsk6a'));Add tracks to a user's playlist
$api->addUserPlaylistTracks('username', 'playlist_id', array(
'1oR3KrPIp4CbagPa3PhtPp',
'6lPb7Eoon6QPbscWbMsk6a'
));Create a new playlist for a user
$api->createUserPlaylist('username', array(
'name' => 'My shiny playlist'
));Delete tracks from a user's library
$api->deleteMyTracks(array(
'1oR3KrPIp4CbagPa3PhtPp',
'6lPb7Eoon6QPbscWbMsk6a'
));Delete tracks from a user's playlist
$tracks = array(
array('id' => '1oR3KrPIp4CbagPa3PhtPp'),
array('id' => '6lPb7Eoon6QPbscWbMsk6a')
);
$api->deleteUserPlaylistTracks('username', 'playlist_id', $tracks, 'snapshot_id');Get a album
$album = $api->getAlbum('7u6zL7kqpgLPISZYXNTgYk');
print_r($album);Get multiple albums
$albums = $api->getAlbums(array(
'1oR3KrPIp4CbagPa3PhtPp',
'6lPb7Eoon6QPbscWbMsk6a'
));
print_r($albums);Get all tracks from an album
$tracks = $api->getAlbumTracks('1oR3KrPIp4CbagPa3PhtPp');
print_r($tracks);Get an artist
$artist = $api->getArtist('36QJpDe2go2KgaRleHCDTp');
print_r($artist);Get an artist's related artists
$artists = $api->getArtistRelatedArtists('36QJpDe2go2KgaRleHCDTp');
print_r($artists);Get multiple artists
$artists = $api->getArtists(array(
'6v8FB84lnmJs434UJf2Mrm',
'6olE6TJLqED3rqDCT0FyPh'
));
print_r($artists);Get all albums by an artist
$albums = $api->getArtistAlbums('6v8FB84lnmJs434UJf2Mrm');
print_r($albums);Get an artist's top tracks in a country
$tracks = $api->getArtistTopTracks('6v8FB84lnmJs434UJf2Mrm', 'se');
print_r($tracks);Get Spotify featured playlists
$playlists = $api->getFeaturedPlaylists();
print_r($playlists);Get Spotify list of categories
$categories = $api->getCategoriesList(array(
'country' => 'se'
));
print_r($categories);Get Spotify category
$category = $api->getCategory('dinner', array(
'country' => 'se'
));
print_r($category);Get playlists of a Spotify category
$playlists = $api->getCategoryPlaylists('dinner', array(
'country' => 'se'
));
print_r($playlists);Get new releases
$items = $api->getNewReleases(array(
'country' => 'se'
));
print_r($items);Get a user's saved tracks
$tracks = $api->getMySavedTracks();
print_r($tracks);Get a track
$track = $api->getTrack('7EjyzZcbLxW7PaaLua9Ksb');
print_r($track);Get multiple tracks
$tracks = $api->getTracks(array(
'0eGsygTp906u18L0Oimnem',
'1lDWb6b6ieDQ2xT7ewTC3G'
));
print_r($tracks);Get a user
$user = $api->getUser('username');
print_r($user);Get user's playlists
$playlists = $api->getUserPlaylists('username');
print_r($playlists);Get a specific playlist
$playlist = $api->getUserPlaylist('username', '606nLQuR41ZaA2vEZ4Ofb8');
print_r($playlist);Get all tracks in a user's playlist
$tracks = $api->getUserPlaylistTracks('username', '606nLQuR41ZaA2vEZ4Ofb8');
print_r($tracks);Get the currently authenticated user
$user = $api->me();
print_r($user);See if a user's tracks contains the specified tracks
$contains = $api->myTracksContains(array(
'0eGsygTp906u18L0Oimnem',
'1lDWb6b6ieDQ2xT7ewTC3G'
));
var_dump($contains);Reorder the tracks in a user's playlist
$api->reorderUserPlaylistTracks('username', 'playlist_id', array(
'range_start' => 1,
'range_length' => 5,
'insert_before' => 10,
'snapshot_id' => 'GLiKqjND5IDWQCO9PwtLvHVjRXYYjEvpoliIQ5/gK7M5BMcxJ7rnGMGTKbmDRgU3'
));Replace all tracks in a user's playlist with new ones
$api->replaceUserPlaylistTracks('username', 'playlist_id', array(
'0eGsygTp906u18L0Oimnem',
'1lDWb6b6ieDQ2xT7ewTC3G'
));Search for an album
$albums = $api->search('blur', 'album');
print_r($albums);Search for an artist
$artists = $api->search('blur', 'artist');
print_r($artists);Search for a track
$tracks = $api->search('song 2', 'track');
print_r($tracks);Search with a limit
$tracks = $api->search('song 2', 'track', array(
'limit' => 5
));
print_r($tracks);Search for tracks in a specific market
$tracks = $api->search('song 2', 'track', array(
'market' => 'se'
));
print_r($tracks);Update a user's playlist
$api->updateUserPlaylist('username', 'playlist_id', array(
'name' => 'New name'
));Check if a user is following a playlist
$users = array(
'user1',
'user2'
);
$api->userFollowsPlaylist('owner_id', 'playlist_id', array(
'ids' => $users
));Follow and unfollow an artist or user
$api->followArtistsOrUsers('artist', '74ASZWbe4lXaubB36ztrGX');
$api->unfollowArtistsOrUsers('artist', '74ASZWbe4lXaubB36ztrGX');
$api->followArtistsOrUsers('artist', array(
'74ASZWbe4lXaubB36ztrGX',
'2t9yJDJIEtvPmr2iRIdqBf'
));
$api->followArtistsOrUsers('user', array(
'spotify',
'spotify_france'
));
$api->unfollowArtistsOrUsers('user', array(
'spotify',
'spotify_france'
));Check if the current user follows a user or artist
$follows = $api->currentUserFollows('user', array(
'spotify',
'spotify_france'
));
var_dump($follows);
$follows = $api->currentUserFollows('artist', '74ASZWbe4lXaubB36ztrGX');
var_dump($follows);Follow a playlist
$api->followPlaylist('username', 'playlist_id');Unfollow a playlist
$api->unfollowPlaylist('username', 'playlist_id');For more examples, please see the homepage.
MIT license. Please see LICENSE.md for more information.