GithubHelp home page GithubHelp logo

chaddles23 / spotify-web-api-php Goto Github PK

View Code? Open in Web Editor NEW

This project forked from jwilsson/spotify-web-api-php

0.0 2.0 0.0 595 KB

A PHP wrapper for Spotify's Web API.

Home Page: https://jwilsson.github.io/spotify-web-api-php/

License: MIT License

PHP 100.00%

spotify-web-api-php's Introduction

Spotify Web API PHP

Latest Stable Version Build Status Coverage Status

This is a PHP wrapper for Spotify's 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.

Requirements

Installation

Add spotify-web-api-php as a dependency to your composer.json:

"require": {
    "jwilsson/spotify-web-api-php": "^1.0.0"
}

For more instructions, please refer to the documentation.

Examples

Add albums to the current user's library

$api->addMyAlbums([
    '1oR3KrPIp4CbagPa3PhtPp',
    '6lPb7Eoon6QPbscWbMsk6a',
]);

Add tracks to the current user's library

$api->addMyTracks([
    '1id6H6vcwSB9GGv9NXh5cl',
    '3mqRLlD9j92BBv1ueFhJ1l',
]);

Add tracks to a user's playlist

$api->addUserPlaylistTracks('username', 'playlist_id', [
    '1id6H6vcwSB9GGv9NXh5cl',
    '3mqRLlD9j92BBv1ueFhJ1l',
]);

Create a new playlist for a user

$api->createUserPlaylist('username', [
    'name' => 'My shiny playlist',
]);

Check if the current user follows a user or artist

$follows = $api->currentUserFollows('user', [
    'spotify',
    'spotify_france',
]);

var_dump($follows);

Delete albums from the current user's library

$api->deleteMyAlbums([
    '1oR3KrPIp4CbagPa3PhtPp',
    '6lPb7Eoon6QPbscWbMsk6a'
]);

Delete tracks from the current user's library

$api->deleteMyTracks([
    '1id6H6vcwSB9GGv9NXh5cl',
    '3mqRLlD9j92BBv1ueFhJ1l',
]);

Delete tracks from a user's playlist

$tracks = [
    ['id' => '1id6H6vcwSB9GGv9NXh5cl'],
    ['id' => '3mqRLlD9j92BBv1ueFhJ1l'],
];

$api->deleteUserPlaylistTracks('username', 'playlist_id', $tracks, 'snapshot_id');

Follow an artist or user

$api->followArtistsOrUsers('artist', [
    '74ASZWbe4lXaubB36ztrGX',
    '2t9yJDJIEtvPmr2iRIdqBf',
]);

Follow a playlist

$api->followPlaylist('username', 'playlist_id');

Get an album

$album = $api->getAlbum('7u6zL7kqpgLPISZYXNTgYk');

print_r($album);

Get multiple albums

$albums = $api->getAlbums([
    '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([
    '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', [
    'country' => 'se',
]);

print_r($tracks);

Get track audio features

$features = $api->getAudioFeatures([
    '0eGsygTp906u18L0Oimnem',
    '1lDWb6b6ieDQ2xT7ewTC3G',
]);

print_r($features);

Get Spotify list of categories

$categories = $api->getCategoriesList([
    'country' => 'se',
]);

print_r($categories);

Get Spotify category

$category = $api->getCategory('dinner', [
    'country' => 'se',
]);

print_r($category);

Get playlists of a Spotify category

$playlists = $api->getCategoryPlaylists('dinner', [
    'country' => 'se',
]);

print_r($playlists);

Get Spotify featured playlists

$playlists = $api->getFeaturedPlaylists();

print_r($playlists);

Get a list of possible seed genres

$genres = $api->getGenreSeeds();

print_r($genres);

Get new releases

$items = $api->getNewReleases([
    'country' => 'se',
]);

print_r($items);

Get the current user's playlists

$playlists = $api->getMyPlaylists();

print_r($playlists);

Get the current user's saved albums

$albums = $api->getMySavedAlbums();

print_r($albums);

Get the current user's top tracks or artists

$tracks = $api->getMyTop('tracks', [
    'limit' => 10,
]);

print_r($tracks);

Get recommendations based on artists, tracks, or genres

$recommendations = $api->getRecommendations([
    'seed_tracks' => ['0eGsygTp906u18L0Oimnem', '1lDWb6b6ieDQ2xT7ewTC3G'],
]);

print_r($recommendations);

Get the current 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([
    '0eGsygTp906u18L0Oimnem',
    '1lDWb6b6ieDQ2xT7ewTC3G',
]);

print_r($tracks);

Get a user

$user = $api->getUser('username');

print_r($user);

Get a 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 the current user's albums contains the specified ones

$contains = $api->myAlbumsContains([
    '1oR3KrPIp4CbagPa3PhtPp',
    '6lPb7Eoon6QPbscWbMsk6a'
]);

var_dump($contains);

See if the current user's tracks contains the specified tracks

$contains = $api->myTracksContains([
    '0eGsygTp906u18L0Oimnem',
    '1lDWb6b6ieDQ2xT7ewTC3G',
]);

var_dump($contains);

Reorder the tracks in a user's playlist

$api->reorderUserPlaylistTracks('username', 'playlist_id', [
    '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', [
    '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', [
    'limit' => 5,
]);

print_r($tracks);

Search for tracks in a specific market

$tracks = $api->search('song 2', 'track', [
    'market' => 'se',
]);

print_r($tracks);

Update a user's playlist

$api->updateUserPlaylist('username', 'playlist_id', [
    'name' => 'New name',
]);

Unfollow an artist or user

$api->unfollowArtistsOrUsers('user', [
    'spotify',
    'spotify_france',
]);

Unfollow a playlist

$api->unfollowPlaylist('username', 'playlist_id');

Check if a user is following a playlist

$users = [
    'user1',
    'user2',
];

$api->userFollowsPlaylist('owner_id', 'playlist_id', [
    'ids' => $users,
]);

For more examples, please see the homepage.

License

MIT license. Please see LICENSE.md for more information.

spotify-web-api-php's People

Contributors

benlumley avatar bluemath avatar chaddles23 avatar chrismou avatar disup avatar hansott avatar hvt avatar jamesfairhurst avatar jmperez avatar jwilsson avatar thebabayaga avatar vdesabou avatar vorenuscoa avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.