Comment synchroniser plusieurs XBMC

Il y a quelques temps je vous ai expliqué comment vous faire un Media Center pour 40€, à base d'un Raspberry Pi et de XBMC.

Finalement cette solution est tellement pratique et abordable que j'ai eu envie d'en mettre au moins un second, notamment dans notre chambre. Comme ca quand nous ne sommes pas d'accord sur le programme TV avec madame, on peut regarder ce qu'on veut, que ce soit dans le salon ou dans la chambre.

Seulement, je ne voulais pas gérer deux vidéothèques indépendantes: avec une installation de XBMC classique, si je regarde par exemple un épisode de ma série préférée dans la chambre, celui ci se retrouve marqué comme “Vu” sur le Media Center de la chambre, mais pas sur celui du salon, et vice versa :/ L'idéal est donc que tout cela soit synchronisé. Et avec XBMC, c'est possible, même si cette fonctionnalité n'est pas  tellement mise en avant.

Le principe est simple: toute la vidéothèque est centralisée dans une base de données MySQL.

Nous allons voir comment mettre cela en place.

 

I. Installation d'une base MySQL

Je ne vais pas détailler ici l'installation d'une base MySQL, c'est relativement simple. Pour ma part, j'avais installé Wamp sur mon serveur WHS 2011. Wamp est une distribution complète sous Windows qui installe un serveur Web Apache, PHP, et MySQL. A la base, j'en avais besoin surtout pour pouvoir exécuter des scripts PHP, pour par exemple pouvoir éteindre mon serveur via une requête HTTP.

Bref, ce package étant déjà installé, je vais donc m'en resservir. Mais la base MySQL pourrait tout aussi bien être installée par exemple sur un NAS, comme un Synology. On évitera de l'installer sur un Raspberry avec XBMC, l'ensemble risquant de ralentir le système.

A lire également:
Découverte du Khadas VIM1s: l'alternative parfaite au RPI pour réaliser une box domotique Home Assistant à moins de 75€ en 10min !

Sur mon serveur WHS, Wamp est donc visible dans la barre des taches. Il suffit de lancer la console MySQL:

lancement consoleLà, nous allons lancer quelques commandes pour créer un utilisateur XBMC et lui donner les droits sur les bases qu'il doit piloter:

creation utilisateurCes commandes sont:

CREATE USER ‘xbmc' IDENTIFIED BY ‘xbmc';

GRANT ALL ON `MyMusic%`.* TO ‘xbmc'@'%' IDENTIFIED BY ‘xbmc';

GRANT ALL ON `MyVideos%`.* TO ‘xbmc'@'%' IDENTIFIED BY ‘xbmc';

Validez chaque commande par “ENTER”. Selon les distributions XBMC, les bases MyMusic et MyVideos peuvent être suivies d'un numéro différent, d'où le % à la fin pour lui donner les droits quelque soit cette extension.

Maintenant, si votre base MySQL est sous Windows, il faudra ouvrir un port sur le pare-feu de Windows. Dans le panneau de configuration, Pare feu, paramètres avancés, on crée une nouvelle règle entrante basée sur un port:

parefeuIl faudra en fait créer deux règles, une en TCP l'autre en UDP, toutes deux sur le port 3306:

parefeu2Autorisez la connexion, donnez un nom à chaque règle, et validez:

parefeu3Voilà, à partir de maintenant il sera possible à XBMC de se connecter à la base MySQL de votre serveur.

 

II. Configuration de XBMC

Si vous aviez déjà configuré votre vidéothèque dans XBMC, on va commencer par l'exporter. Pour cela, dans le menu Système / Paramètres / Vidéo / Médiathèque, sélectionnez “Exporter la Médiathèque vidéo”. Sélectionnez “plusieurs fichiers”, et répondez oui pour l'export des images de films, acteurs, etc…

mediathequeToutes les données de vos films vont être exportées sous forme de petits fichiers dans les répertoires de vos films. Selon la taille de votre collection, ca peut prendre plus ou moins de temps. Pour ma part j'ai lancé l'opération un soir avant de me coucher.

A lire également:
Installer Adguard sur Docker Synology: finies les pub sur internet !

Il va falloir maintenant indiquer à XBMC qu'il faut utiliser une base de données distante. Pour cela, si comme dans le tutorial précédent votre XBMC est installé sur un Raspberry, on va s'y connecter en SSH (avec un logiciel comme Putty, pare exemple). Une fois connecté, tapez

cd $HOME/.xbmc/userdata/

pour vous rendre dans le bon répertoire, puis

nano advancedsettings.xml

pour créer un fichier de paramètres avancés s'il n'existe pas. Là, copiez y ces lignes, en remplacant l'adresse IP (***.***.***.***) par celle du serveur où se trouve votre base MySQL:

<advancedsettings>

<videodatabase>

<type>mysql</type>

<host>***.***.***.***</host>

<port>3306</port>

<user>xbmc</user>

<pass>xbmc</pass>

</videodatabase>

<musicdatabase>

<type>mysql</type>

<host>***.***.***.***</host>

<port>3306</port>

<user>xbmc</user>

<pass>xbmc</pass>

</musicdatabase>

<videolibrary>

<importwatchedstate>true</importwatchedstate>

</videolibrary>

</advancedsettings>

Faites Ctrl + O pour enregistrer puis Ctrl + X pour quitter le fichier.

Vous pouvez redémarrer votre Raspberry pour qu'il prenne en compte les changements.

Une fois XBMC redémarré, il n'y a plus qu'à ajouter de nouveau les répertoires partagés où se trouvaient vos films et musiques (ou juste éditer la source, si ces répertoires sont toujours disponibles quand vous allez dans la partie Vidéo. Le fait de la valider de nouveau va forcer la mise à jour). Cette fois, XBMC va aller beaucoup plus vite, puisqu'il va lire les fichiers qu'il a exporté pour chaque film, et les enregistrer en base de données MySQL. Ce n'est à faire qu'une seule fois, rassurez vous.

Une fois votre vidéothèque reconstituée, à l'usage ce sera totalement transparent. Pour ma part, je trouve même que l'ensemble est plus réactif sur mon Rapsberry.

Maintenant, sur les autres installations XBMC, que ce soit sur Rapsberry, PC, Mac, etc… il suffit de recréer le même fichier advancedsettings.xml, puis ensuite d'ajouter dans XBMC les répertoires partagés où se trouvent vos films et musiques. Deux points à noter cependant:

  • les versions de XBMC doivent être les mêmes (même numérotation, par exemple actuellement 12.1)
  • les chemins des répertoires partagés doivent être indiqués de la même facon sur les différents XBMC
A lire également:
Installer Adguard sur Docker Synology: finies les pub sur internet !

Cette fois, aucun scan des répertoires n'est exécuté: vous ajoutez les répertoires, les films sont disponibles immédiatement avec toutes leurs informations et images, puisque XBMC s'est connecté directement à la base de données MySQL où tout est déjà enregistré. Du coup, vous récupérez également l'état des films, s'ils ont été vus ou nom, et l'endroit où vous vous êtes arrêté. Prenons un exemple: vous commencez à regarder un film dans le salon, puis vous décidez de l'arrêter au bout de 45 min pour finir de le regarder tranquillement dans votre chambre. Et bien le XBMC dans votre chambre saura que le film s'est arrêté à 45 min et vous proposera de reprendre la lecture à cet endroit. A l'usage, c'est vraiment très pratique ! Mes enfants sont encore jeunes pour avoir la TV dans leur chambre, mais plus agés, ils auraient sans doute eu aussi un Raspberry synchronisé de cette façon :p

Pour information, cet article peut contenir des liens affiliés, sans aucun impact sur ce que vous gagnez vous même ou le prix que vous pouvez payer pour le produit. Passer par ce lien vous permet de me remercier pour le travail effectué sur le blog chaque jour, et d'aider à couvrir les dépenses du site (hébergement, frais de port pour les concours, etc.). Ca ne vous coute rien, mais ca m'aide beaucoup ! Merci donc à ceux qui joueront le jeu !

Inscrivez vous à notre newsletter !

Ne ratez plus aucun article, test de produit ou guide, grâce à un mail dans votre boite chaque vendredi !

Tags :

11 Commentaires
  1. Bonjour,

    J’ai suivi avec beaucoup de précaution votre guide, ainsi que ses équivalents anglais, mais je me retrouve avec un problème:

    dès que je mets le fichier advancedsettings.xml dans “userdata”, les modifications de catégories des dossiers vidéos ne sont plus pris en compte. En gros, mes vidéos ne sont plus réparties dans “Séries TV” et “Films”. Je peux par contre y accéder normalement sur les différentes machines (2 win, 1 linux et 1 Raspberry) si j’utilise la navigation dans les fichiers. Le problème, c’est que je ne peux pas voir lesquels ont été vus, où j’en étais, etc (soit le principe même de ce guide).

    Auriez vous une idée de mon erreur? Est-ce par rapport à la base de donnée SQL? J’ai fait uniquement ce que vous décrivez, mais je ne comprends pas où se retrouve la base et comment les autres machines sont sensées y accéder..

    Au plaisir de vous lire.

    Olivier.

  2. (Je viens de voir que mon problème ressemble un peu à celui de Lolo.). Je précise que lors de l’importation sur les machines cliente, le scan n’est de loin pas immédiat.

    EDIT: Je me suis aperçu que la base de donnée SQL n’était pas accessible, pour des raisons de droits. Pour vérifier ça, vous pouvez télécharger un client SQL (Comme HeidiSQL) et essayer de vous connecter à l’ip du serveur SQL. Après vérification, changement des droits (j’ai tout simplement retapé les commandes décrites ci-dessus et ça a marché.).

    Une étape de passée, je peux maintenant de nouveau voir mes fichiers classés. La synchro “vus” ne fonctionne toujours pas, je mettrai la solution ici même si je la trouve.

  3. Bonjour,
    Déjà merci pour ce tuto.
    Juste quelques questions :
    Après je ne peux plus modifier les films mais du coup si je modifie un film à moins d’exporter de nouveau la biblio les infos ne seront pas partagées??
    Même si la base est partagée il rapatrie tout en local? (je parle de sinfos de base, le répertoire thumbail grossit sur tous mes postes).
    Dommage que tout même les images ne soient stockées en BD, j’aimerais bien virer les NFO, jpeg de mes partages SMB.
    Que ce passe t’il si lors de l’export on dit de le faire dans un seul fichier et pas un fichier par entrée.
    Merci

  4. Rajouter aussi dans le fichier advancedsettings.xml :

    true

    au meme niveau que true

  5. Rajouter aussi dans le fichier advancedsettings.xml :
    true

    au même niveau que true

  6. Merci bcp bcp pour ce tuto.

    Je souhaite avoir des User différents sur chaque Xbmc (openelec pour ma part) De manière à ce que la mention “vu” ne le soit que sur le Rasp ou le fichier a été lu, tout en ayant la base SQL.

    Une Idée?

  7. Avec une mediatheque partagé est-ce le mm fonctionnement qu’en upnp c’est a dire que lorsque je regarde un épisode de série sur ma tablette avec le XBMC, il sera marqué comme vue sur les autres appareil ?

  8. Oui, tu pourras meme reprendre là où tu t’etais arrété sur un autre appareil

  9. Ok merci, bon ba je sens que je vais devoir faire un BDD ^^

  10. Dernière question, si j’utilise se système je peut encore gérer les profils genre qui a vu quoi ?
    Etant donné que ma copine et moi, ne regardons pas les série a la même vitesse :)

Laisser un commentaire

Maison et Domotique
Logo
Register New Account
Enregistrez vous, et stockez vos articles préférés sur votre compte pour les retrouver n'importe où, n'importe quand !
Compare items
  • Casques Audio (0)
  • Sondes de Piscine Connectées (0)
  • Smartphones (0)
Compare