XBMC: Centraliser sa base et consulter les infos via le web

Il y a quelques temps, suite à l’achat de mon Syno pour, entre autre, y stocker ma vidéothèque, j’ai commencé par utiliser ma PS3 pour lire les vidéos. Ce qui était dommage, c’est que je n’avais pas la possibilité d’avoir les informations sur les films. J’ai donc installé sur le Syno un petit site web qui permettait de scanner les films et d’aller chercher les informations sur le site AlloCine.

Puis, j’ai découvert le Raspberry Pi avec la distribution Openelec. Les avantages de celui-ci par rapport à la PS3 sont nombreux:

  • la consommation electrique en baisse
  • la disparition du bruit du ventilateur
  • le nombre de codecs reconnus bien plus grand
  • la possibilité d’avoir sur l’écran de la télé les infos du film (de manière automatique, même si il faut parfois aller corriger)
Le souci est que la base d’informations sur les films est doublée: une pour le site, l’autre pour XBMC. Les deux bases ne récupérant pas leurs informations au même endroit, il faut donc les corriger indépendamment l’une de l’autre. Et si je souhaite utiliser un autre client XBMC, celui-ci aura sa propre base en local, obligeant une énième correction des infos.
XBMC Partagé: le réseau

XBMC Partagé: le réseau

L’idéal serait d’avoir une base partagée entre les différents clients et le site web. Pour les différents clients, pas de problème: XBMC permet, assez facilement, de partager les infos dans une base MySQL. Toutes les infos à ce sujet se trouvent ici. Ce qui est sympa c’est qu’on peut commencer à regarder un film sur un des clients et terminer la lecture sur un autre, l’information concernant les lectures en cours étant stockée dans la base. Le seul hic concerne le stockage des posters: pour des questions de performance, ils sont stockés en local sur chaque client.

Pour le site web, par contre, je n’ai pas trouvé ce que je cherchais: un site ressemblant à celui que j’utilisais mais qui irait chercher les infos dans la base partagée. J’ai donc décidé de le modifier afin qu’il puisse se connecter à la base partagée.

XBMC Web

XBMC Web

On peut déjà:

  • Afficher la liste : de films, de séries ou d’acteurs
  • Trier par : titre, note, année, date d’ajout
  • Sélectionner par genre
  • Afficher les informations détaillées
  • Rechercher (avec une recherche étendue qui lie films et acteurs).
Ce qu’il manque (en cours de dév, bientôt dispo sur ce site):
  • Avoir des paramètres modifiables en dehors du fichier de conf (ex: nb elements / page, ….)
  • Mise à jour succincte des fiches (vues/non vues, titre, poster….)
  • Sur la fiche film des liens vers les acteurs, sur la fiche acteur des liens vers les films

Installation du site web

L’archive à installer se trouve ici : XBMC Web 0.1. Le travail n’est pas terminé et j’ai en projet quelques modifs (au moins celles décrites ci-dessus). Je suis ouvert à toutes propositions à ce sujet.

L’installation n’a rien de compliqué mais mérite quelques explications: il suffit de dézipper l’archive dans l’arborescence de son serveur web et de modifier le fichier config.php:

$database=’MyVideos75′;
$serversql=’localhost’;
$loginsql=’root’;
$passwordsql=’MOTDEPASSE’;

Rien de compliqué ici: ce sont les paramètres à la base de données. Dans mon cas, serveur Web et MySQL sont sur la même machine (d’où le localhost)

$login = TRUE;
$secure = FALSE;
$port_syno = « 5000 »;

On peut « sécuriser » l’accès au site avec un login/mot de passe. Ca ne fonctionne qu’avec les Syno car ça utilise la liste des utilisateurs stockés sur celui-ci. Pour l’activer il suffit de mettre $login=TRUE

On peut utiliser un port sécurisé pour l’authentification: ça n’est utile que si serveur sql et serveur web sont différents. Le port correspond au port d’accès au DSM du Synology (5000 en http, non sécurisé, et 5001 en https, sécurisé).

$elementsparpage=24; // Si <=0, alors on affiche tout

$embeddedPosters=FALSE;
$posterPath= »/var/services/web/xbmc_web/posters/ »;
$posterWebPath= »posters/ »;

La première ligne concerne le nombre d’éléments affichés par page. Il est souhaitable d’avoir un multiple de 4 puisqu’on a 4 colonnes.

La suite concerne le stockage des posters des films: par défaut, XBMC contient dans sa base de données un lien vers un site web extérieur qui stocke les affiches de films. Ces affiches sont assez conséquentes et il y a donc la possibilité de les rappatrier sur le serveur web (avec une taille plus petite). Dans ce cas, il faut passer la variable $embeddedPosters à TRUE. Le $posterPath correspond au chemin dans lequel seront stockés ces images et le $posterWebPath au chemin relatif de ce répertoire sur le site web.

$originalFilePath= »smb://ADRESSE_LOCALE/video/ »;
$webFilePath= »https://ADRESSE_WEB:81/video/ »;

Pour finir, on indique dans $originalFilePath le chemin utilisé par XBMC pour accéder aux videos et dans $webFilePath le chemin qu’on utilisera pour accéder aux vidéos à partir du web.

Utilisation 

Il n’y a plus qu’à se connecter sur le site web. Pour la première utilisation, si $embeddedPoster a été activé, il va falloir charger tous les posters manquants (ce qui peut prendre un certains temps en fonction du nombre de films et d’acteurs). Je conseille d’ailleurs de commencer en désactivant ce paramètre afin de valider que tout est bien configuré. Pour récupérer les posters manquants, il suffit de cliquer sur « Obtenir posters manquant » en allant sur le menu « ! » en haut à droite de l’écran.

Obtenir posters manquants

Obtenir posters manquants

Pour le reste, il n’y a pas de difficultés particulières.

 

Laisser un commentaire