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 *

Comment lire une vidéo depuis l’api de Subsonic

Petit rappel pour ceux qui ne connaissent pas, Subsonic est un clone de Deezer qui permet, une fois installé sur votre serveur, de lire des musiques et aussi des vidéos depuis une interface web.

Pour moi, utiliser l’api de Subsonic pour lire des vidéos en Streaming a été un peu compliqué. Je voulais simplement lire le flux renvoyé par Subsonic quand on appel la méthode http://your-server/rest/stream.view mais la documentation à ce sujet est quasi inexistante…

Voici donc une petite démo pour parvenir à lire ce flux.

Fichier HTML ou va être placé le lecteur. N’oubliez pas de changer la valeur des variables par les vôtres!

<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
		<script type="text/javascript" src="/subsonic_api/script/swfobject.js"></script>
		<script type="text/javascript" src="/subsonic_api/script/prototype.js"></script>
		<script type="text/javascript" src="/subsonic_api/script/subsonic.js"></script>
		<script type="text/javascript" language="javascript">
			var subsonicServer ="http://yourserver";
			var videoid="subsonic file id";
			var subsonicUsr ="subsonic_usr"
			var subsonicPsw = "subsonic_password";
			var player;
			var position;
			var maxBitRate = 1000;
			var timeOffset = 0;
		</script>

	</head>

	<body onload="init();">
		<div>

			<div id="placeholder1"><span class="warning"><a href="http://www.adobe.com/go/
getflashplayer">Obtenir Flash player</a></span></div>
		</div>
	</body>
</html>

Pour le reste je vous laisse télécharger ce fichier zip qui contient tout les éléments nécessaires à la lecture de la vidéo. Pour cela rendez-vous ici: subsonic_api_demo.

Référez-vous à la documentation de l’api Subsonic pour récupérer l’id de la vidéo et sa longueur.

Dernière info sur les méthodes changeTimeOffset() et changeBitrate() présentes dans le fichier subsonic.js: elles permettent respectivement de changer la position dans la vidéo et de changer la qualité de celle-ci. Elles sont donc très utiles 😉

Laisser un commentaire

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