, (*1)
, (*2)
, (*3)
iTunes
A simple yet full-fledged iTunes API client with caching capabilities., (*4)
Installation
Composer
// change this to point correctly according
// to your folder structure.
require './vendor/autoload.php';
use Vinelab\ITunes\Agent as iTunes;
$iTunes = new iTunes();
$response = $iTunes->search('Porcupine Tree')); // The original iTunes response
$json = json_encode($response);
Laravel
- Edit app.php and add
'Vinelab\ITunes\ITunesServiceProvider'
to the 'providers'
array.
It will automatically alias itself as ITunes
which can be used as a Facade class.
- Run
php artisan vendor:publish
to publish the config file.
This library supports Laravel 4 and Laravel 5.x, for installation in L4 use version 1.1.x., (*5)
Usage
Search
<?php
// Search the iTunes Store
ITunes::search('Metallica');
// Search the iTunes Store with custom parameters
ITunes::search('Cannibal Corpse', array('limit'=>25, 'entity'=>'...'));
/**
* Search for media
*
* check (http://www.apple.com/itunes/affiliates/resources/documentation/itunes-store-web-service-search-api.html#searching)
* for all supported media types (the media parameter)
*/
ITunes::music('Rolling Stones');
ITunes::musicVideo('Immolation');
ITunes::tvShow('Sex and The City');
In Region
You can search in a specific region by siply suffixing any media search method name with InRegion
, (*6)
ITunes::musicInRegion('LB', 'Myriam Fares');
ITunes::musicVideoInRegion('US', 'Immolation');
Lookup
<?php
// Lookup defaults to id=...
ITunes::lookup(490326927);
// You can also specify the lookup request
ITunes::lookup('amgVideoId', 17120);
// Multiple items lookup
ITunes::lookup('amgAlbumId', '15175,15176,15177,15178,15183,15184,15187,1519,15191,15195,15197,15198');
Caching
you can specify the duration (in minutes) of caching per request as follows, (*7)
NOTE: The last cache duration value set will remain for the rest of the requests so make sure you reset afterwards., (*8)
<?php
ITunes::cacheFor(10);
ITunes::search('Gangnam Style'); // will be cached for 10 min.
ITunes::cacheFor(1);
ITunes::search('Yesterday'); // will be cached for 1 min.
// To bypass caching pass 0
ITunes::cacheFor(0);
ITunes::search('Hallelujah'); // won't be cached