TheTvDb PHP API: Une librairie PHP simple d’utilisation pour TheTvDb

TheTvDb-PHP-API est une librairie PHP pour récupérer des informations sur les séries et épisodes depuis http://thetvdb.com/.

Elle permet  d’obtenir et de maintenir à jour un grand nombre d’informations sur les séries et épisodes comme par exemple:

  • La date de sortie des prochains épisodes
  • Le nom et la description des séries et épisodes
  • Le genre des séries
  • Le status des séries (en cours, terminée …)
  • La date de dernière mise à jour des informations

Voir/télécharger le projet sur GitHub

Exemple d’utilisation de la librairie:

/*
* TheTvDb Service Setup
*/
require_once dirname(__FILE__).'/Adapter.php';
$tvdb_adapter = Elios_Service_Thetvdb_Adapter::getInstance();
$tvdb_adapter->setApiKey("APIKEY");

$tvdb = new Elios_Service_Thetvdb_Thetvdb();

/*
* Get the current mirror
*/
$mirror = $tvdb->getAvailableMirror();

/*
* Get the current server time
* store this value in database for future updates
*/
$time = $tvdb->getServerTime();

$seriesT = new Elios_Service_Thetvdb_Series();
/*
* Search a serie by name
*/
$series = $seriesT->findByName("South Park","en");
foreach($series as $serie){
echo $serie->nom." ".$serie->thetvdb_id;
}

/*
* Now we use thedvdb_id to get full serie data
* Elios_Service_Thetvdb_Serie attributes:
*
* public $thetvdb_id;
* public $nom;
* public $imdb_id;
* public $language;
* public $overview;
* public $genre;
* public $lastupdated;
* public $banner;
* public $status;
*/
$serie = $seriesT->getSerie("75897","en");
echo $serie->nom;

/*
* Use $serie->getBanners() to get all banners for the serie.
* This method returns an array of Elios_Service_Thetvdb_Banner objects.
* Elios_Service_Thetvdb_Banner attributes:
* public $id;
* public $BannerPath;
* public $BannerType;
* public $BannerType2;
* public $Colors;
* public $Language;
* public $Rating;
* public $RatingCount;
* public $SeriesName;
* public $ThumbnailPath;
* public $VignettePath;
* public $basePath = "http://thetvdb.com/banners/";
*/

$banners = $serie->getBanners();


/*
* We can now retrieve all the episodes with $serie->getEpisodes()
* This method returns an array of Elios_Service_Thetvdb_Episode objects.
* Elios_Service_Thetvdb_Episode attributes:
*
* public $thetvdb_id;
* public $saison;
* public $saison_id;
* public $serie_id;
* public $language;
* public $episode;
* public $overview;
* public $lastupdated;
* public $firstAired;
* public $titre;
*/
$episodes = $serie->getEpisodes();

/*
* Use this function to get a list of updated items since your last update
*/
$data = $tvdb->getUpdateList($time);
print_r($data);

/*
* for each items of the $data array:
* use $episodeT->getEpisode('ID') && $seriesT->getSerie("ID","LANG") to retreive and store informations
*/
$episodeT = Elios_Service_Thetvdb_Episodes();
$episode = $episodeT->getEpisode('ID');
$serie = $seriesT->getSerie("ID","LANG");

Informations sur la librairie:

Ouvrir Elios/Service/Thetvdb/example.php pour un exemple d’utilisation.

L’utilisateur doit avoir les droits d’écriture sur le dossier cache. Il est utilisé pour stocker temporairement les fichiers zip récupérés depuis l’api tvdb.

Thetvdb.com est une base de donnée libre (wiki) qui stocke toutes les informations d’un très grand nombre de séries et épisodes.

Des informations sur l’API peuvent être trouvées ici: http://thetvdb.com/wiki/index.php/Programmers_API

Obtenir une API KEY : http://thetvdb.com/?tab=apiregister

3 réflexions au sujet de « TheTvDb PHP API: Une librairie PHP simple d’utilisation pour TheTvDb »

  1. Bonjour,

    je viens juste de commencer à regarder votre librairie, elle me semble très intéressante et je vais probablement l’utilisée donc tout d’abord merci pour le travail.
    Juste une petite remarque :
    vous avez oublié l’inclusion de la classe « Banner » dans l’adaptateur du coup cela retournait une erreur. J’ai donc rajouté :
    « require_once dirname(__FILE__).’/Banner.php’; »

    J’avais pourtant récupéré la dernière version du github.

    • Salut Ludovic,
      La librairie n’a jamais été terminée, les bannières et acteurs ne sont pas récupérés.

      N’hésite pas à envoyer tes ajouts sur github pour faire évoluer le projet 😉

      Bruce

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *