Home > PHPDiscogsAPI

PHPDiscogsAPI

PHPDiscogsAPI is a project mainly written in ..., it's free.

PHP DiscogsAPI Class

A simple set of PHP Classes for accessing the Discogs.com API.

All data is requested in using the JSON format option of the API.

One note to the Discogs.com API: The user must provide a useragent string, and thus a useragent must be provided in order to make these Classes work. Read here, http://www.discogs.com/help/forums/topic/234138 , and here, http://www.discogs.com/help/api , for more information.

As noted above, a useragent string must be provided to download anything. The base Class, DiscogsAPI, looks for a global $useragent variable upon creation, and that is perhaps the easiest way to set it, because it also allows you to use the shorter declarations.

The Classes are all wrapped in a DiscogsAPI PHP namespace.

The main class is DiscogsAPI. It handles all the JSON requests, error checking, and a few other functions. Then there are four subclasses--Release, MasterRelease, Artist, and Label--for the primary Discogs.com API object. These subclasses all use a variable "$id" to query the API. For an Artist or Label, the ID would be the name ($dapi_artist->id = 'Aphrodite'), and for a Release or or MasterRelease it's the numeric ID ($dapi_release->id = 542242).

Finally, there is a Search class for querying the database.

-- Release The Release class fetches a single Discogs release by release_id from the API. It parses the data into arrays (artists, tracks, genres, styles, videos, images, and labels for example) and strings/ints (title, master_id, released, etc.). There are functions that also turn the array data into strings with an optional delimiter.

-- Master Release Works much the same way as Release

-- Artist The Artist class is a little simpler, as there is less data returned.

-- Label Works a lot like Artist.

-- Example 1, using global $useragent: require_once('discogsapi.class.php');

$useragent = "PHPDAPIClient/0.1" //PLEASE CHANGE THIS to something unique, like your Discogs.com user name;

$release_id = 542242 //Oh Sheila; $dapi_release = new DiscogsAPI\Release($release_id);

echo($dapi_release->title); / Returns : Oh Sheila /

print_r($dapi_release->artists); /* Returns Array ( [0] => Array ( [tracks] => [role] => [anv] => [join] => [name] => Ready For The World )

)

*/

print_r($dapi_release->tracks); /* Returns: Array ( [0] => Array ( [duration] => 6:48 [position] => A [title] => Oh Sheila (Extended Version) )

    [1] => Array
        (
            [duration] => 4:00
            [position] => B1
            [title] => Oh Sheila (Dubstrumental)
        )

    [2] => Array
        (
            [duration] => 3:54
            [position] => B2
            [title] => Oh Sheila (Acappella)
        )

)

*/

-- Example 2, setting $useragent at the Class level: require_once('discogsapi.class.php');

$dapi_release = new DiscogsAPI\Release; $dapi_release->useragent = "PHPDAPIClient/0.1" //PLEASE CHANGE THIS to something unique, like your Discogs.com user name; $dapi_release->id = 542242 //Oh Sheila; $dapi_release->load();

-- Example 3, global $useragent, compilation release require_once('discogsapi.class.php');

$useragent = "PHPDAPIClient/0.1" //PLEASE CHANGE THIS to something unique, like your Discogs.com user name;

$release_id = 141813 //Jump Up, Show Down;

$dapi_release = new DiscogsAPI\Release($release_id);

echo($dapi_release->title); / Returns: Jump Up Touch Down /

print_r($dapi_release->find_artists(2) ); //Depth argument, 1 is release only, 2 includes tracks / Returns: Array ( [0] => Various [1] => Buddha Monk [2] => Aphrodite [3] => Usual Suspects [4] => Cypher (4) [5] => Surreal & Parameter II [6] => 175 Crew [7] => DJ Zinc [10] => Click 'n Cycle [11] => Capone [12] => DJ Quantum [13] => Ed Solo [14] => Mulder [15] => Pepe Delux� [16] => Daz Ellis [17] => Ganja Kru, The [18] => Ram Trilogy [19] => John B [20] => Psy 3 [21] => Brockie & Ed Solo ) /

Previous:missile-strike