Si vous commencez à avoir plusieurs media center XBMC, il peut être utile de centraliser la médiathèque. Cela apporte un peu de souplesse à l’utilisation en stockant les infos des médiathèque dans une base de données centralisée a la place d’avoir une base par terminal XBMC.
Pour mémoire, XBMC est une application media center open-source pour XboX (v1), Windows, Mac, Linux et AppleTV2.
Dans mon cas, la base de donnée MySQL située sur un Home Server Red Hat CentOS 6.4 servant également au stockage et partage des médias pour toute la famille. Nous utiliserons MySQL!
Les avantages à l’utilisation de la librairie centralisée sont :
- Mediathèque identique sur tous les XBMC de la maison.
- Ne nécessite qu’un scan pour mettre à jour la médiathèque, et les autres sont à jour.
- Permet la reprise d’un film au même endroit d’une pièce à l’autre. Par exemple, j’arrête le film dans le salon et le reprend dans la chambre, XBMC me proposera de reprendre le film à l’endroit ou je l’ai arrêté.
Il est possible d’héberger les données des librairies Vidéos (films et séries TV) et musique dans MySQL.
La procédure qui suit est valable pour la version 12 (Frodo) d’XBMC. J’avais, il y’a maintenant un petit bout de temps, expliqué comment centraliser la librairie sur XBMC Dharma. Le problème est que la fonctionnalité était (et est toujours) expérimentale, et il y’a donc régulièrement des changements de fonctionnements entre deus version. Par exemple, XBMC créé maintenant les bases de données Videos et Music en prennat comme suffix un nombre plus ou moins aléatoire. Cela ne simplifie pas vraiment la gestion des droits MySQL. Plusieurs choix s’offrent alors à nous:
– Donner les droit complets de création de base à l’utilisateur MySQL « xbmc ».
– Utiliser le compte MySQL root.
– Utiliser le compte MySQL root pour créer les bases de données, puis l’utilisateur MySQL « xbmc ».
J’ai choisi de simplifier en donnant tous les droits à l’utilisateur « xbmc ». Ce n’est absolument pas bien pour la sécurité, mais ça simplifie grandement la création des bases de données. une petite note est disponible en bas de l’article pour ceux désirant conserver un peu de sécurité. Cela dit, si vous n’avez pas fait de translation de ports sur votre routeur donnant accès au port MySQL depuis l’extérieur, les risques sont, de mon point de vue, trop limités pour s’embêter.
Configuration de MySQL
Pour la suite, je vais partir du postulat que MySQL est installé correctement sur votre distribution. On va par contre s’arrêter sur un point de la configuration. Par défaut, MySQL n’accepte que les connexions locales (c’est à dire de lui-même). Les terminaux XBMC ne seront donc pas capable de se connecter à la base de données et vont vraiment (mais alors vraiment) ramer! Donc c’est partie, on fait un peu de config afin de rendre MySQL réceptif aux requêtes provenant de l’exterieur:
Editer le fichier de configuration my.cnf (en root s’il vous plait!).
$ vi /etc/my.cnf
Commenter la ligne bind-address=127.0.0.1
Connectez vous à Mysql avec un compte administrateur (le compte root de MySQL est parfaitement adapté).
Créez un utilisateur MySQL nommé « xbmc ». Celui-ci aura le mot de passe xbmc dans l’exemple, mais vous pouvez lui donner celui que vous voulez, et je vous le conseil. Le tout c’est de s’en souvenir.
mysql> CREATE USER 'xbmc' IDENTIFIED BY 'xbmc';
Il faut maintenant donner à notre utilisateur XBMC les droits sur ces deux bases. On va viser large, il peut tout faire, mais uniquement sur ces bases.
mysql>
GRANT ALL ON *
.* TO 'xbmc';
Si des messages de succès ont été retournés pour chaque commande, l’utilisateur xbmc devrait avoir les privilèges adéquat sur les bases de données.
Configuration XBMC
Avant toute modification de la configuration d’XBMC, faite une sauvegarde des médiathèques. Cela permettra de faire un retour arrière plus simple en cas de problème, ou de repeupler la nouvelles base de données sans aller rechercher toutes les informations depuis Internet. Pour faire une sauvegarde, dans l’interface d’XBMC,rendez-vous dans System→Video et System→Music. Dans chaque, cliquez sur « Export ».
Après l’export des bases de données locales, connecté vous en SSH, puis rendez vous dans le répertoire d’XBMC.
Ouvrez ou créez le fichier de configuration « advancedsettings.xml », et insérez les lignes suivantes:
<videodatabase> <type>mysql</type> <host>192.168.1.1</host> <user>xbmc</user> <pass>xbmc</pass> </videodatabase> <musicdatabase> <type>mysql</type> <host>192.168.1.1</host> <user>xbmc</user> <pass>xbmc</pass> </musicdatabase> |
« host » correspond à l’adresse IP de votre serveur hébergeant la base de données.
Deux La base xbmc_video contiendra les informations relatives au films et séries TV tandis que la base xbmc_music contiendra les information musicales (artistes, albums,…).
Les deux bases de données sont créées et peuplées à la première connexion par l’un des terminaux XBMC. Il est donc inutile de créer les tables et les champs.
Afin de vérifier que les bases sont créées, vous pouvez vous connecter à MySQL avec votre utilisateur « xbmc »:
mysql -u xbmc -p
Lancer ensuite la commande:
mysql> SHOW DATABASES;
Les 2 bases MyMusicxx et MyVideosxx sont bien créées (xx représente le nombre aléatoire).
Informations complémentaires:
Si vous désirez vraiment conserver un peu de sécurité, renseignez d’abord le compte MySQL « root » dans le fichier advancedsettings.xml, puis lancez un xbmc. Vérifiez que le bases de données sont créées, puis attribuez les droits à l’utilisateur xbmc sur ces 2 bases avec les commandes:
mysql>
GRANT ALL ON MyMusicxx
.* TO 'xbmc';
mysql>
GRANT ALL ON MyVideoxx
.* TO 'xbmc';