PHP code example of bjthecod3r / laravel-spotify-api-wrapper
1. Go to this page and download the library: Download bjthecod3r/laravel-spotify-api-wrapper library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
bjthecod3r / laravel-spotify-api-wrapper example snippets
use BjTheCod3r\Spotify\Facades\Spotify;
$tracks = Spotify::searchTracks('Doxy')->limit(20)->get();
$albums = Spotify::searchAlbums('Kind of Blue')->market('NG')->get();
$artists = Spotify::searchArtists('Miles Davis')->get();
$playlists = Spotify::searchPlaylists('focus')->get();
$shows = Spotify::searchShows('how i built this')->get();
$episodes = Spotify::searchEpisodes('startups')->
$playlist = Spotify::playlist('74oVZlOSwpy31tSplEWONa')
->market('GB')
->get();
$playlist->followers->total;
$playlist->tracks->items[0]->track->name;
$album = Spotify::album('4aawyAB9vmqN3uQ7FjRGTy')->market('US')->get();
$artist = Spotify::artist('0TnOYISbd1XYRBk9myaseg')->get();
$track = Spotify::track('11dFghVXANMlKmJXsNCbNl')->market('US')->get();
$show = Spotify::show('38bS44xjbVVZ3No3ByF1dJ')->market('US')->get();
$episode = Spotify::episode('512ojhOuo1ktJprKbVcKyQ')->market('US')->get();
$audiobook = Spotify::audiobook('7iHfbu1YPACw6oZPAFJtqe')->market('US')->get();
$user = Spotify::user('smedjan')->get();
use BjTheCod3r\Spotify\Enums\SearchType;
$results = Spotify::search('remaster track:Doxy artist:Miles Davis', [
SearchType::Track,
SearchType::Album,
])
->market('ES')
->limit(10)
->get();
$results->tracks->items[0]->name; // Track::$name
$results->tracks->items[0]->album->name; // nested Album
$results->albums->total; // paging total
$results->artists; // null — wasn't requested
Spotify::search('miles davis', ['track', 'album'])->get();
Spotify::searchTracks('artist:Burna Boy year:2022')->get();
Spotify::searchAlbums('tag:new')->get();
Spotify::searchTracks('isrc:USAT22003158')->get();
$page = Spotify::searchTracks('miles')->limit(20)->offset(0)->get();
$page->items; // array<Track>
$page->total; // 8462
$page->offset; // 0
$page->next; // 'https://api.spotify.com/v1/search?...&offset=20'
$tracks->items
->filter(fn (Track $t) => $t->popularity > 50)
->sortByDesc('popularity')
->map(fn (Track $t) => $t->name);
$artist->genres->contains('jazz');
$album->artists->pluck('name');
public function index()
{
return Spotify::searchTracks(request('q'))->get();
}
try {
$tracks = Spotify::searchTracks($q)->get();
} catch (RateLimitException $e) {
return response('Slow down', 429)->header('Retry-After', (string) $e->retryAfter);
} catch (SpotifyException $e) {
report($e);
return back()->with('error', 'Spotify is having a moment. Try again.');
}
use BjTheCod3r\Spotify\Facades\Spotify;
// Implicit: resolves the current user via the configured guard.
$profile = Spotify::me()->profile()->get();
$playlists = Spotify::me()->playlists()->limit(50)->get();
$savedTracks = Spotify::me()->savedTracks()->market('US')->limit(50)->get();
$savedAlbums = Spotify::me()->savedAlbums()->get();
$topTracks = Spotify::me()->topTracks()->timeRange('short_term')->get();
$topArtists = Spotify::me()->topArtists()->get();
$recent = Spotify::me()->recentlyPlayed()->limit(50)->get();
$following = Spotify::me()->followedArtists()->limit(50)->get();
// Explicit: act as a specific user id (queue workers, jobs).
Spotify::asUser($userId)->me()->playlists()->get();
Spotify::disconnect(); // current user via guard
Spotify::disconnect($userId); // explicit
// config/spotify.php
'oauth' => [
'token_repository' => App\Spotify\RedisUserTokenRepository::class,
],
Http::fake([
'accounts.spotify.com/*' => Http::response(['access_token' => 'x', 'token_type' => 'Bearer', 'expires_in' => 3600]),
'api.spotify.com/v1/search*' => Http::response(['tracks' => ['items' => []]]),
]);
bash
php artisan vendor:publish --tag=spotify-config
bash
php artisan vendor:publish --tag=spotify-migrations
php artisan migrate
blade
<form method="POST" action="{{ route('spotify.disconnect') }}">
@csrf
<button type="submit">Disconnect Spotify</button>
</form>