Kodi/XBMC : créer une base de données centralisée

50

Dans cet article nous allons voir comment créer une base de données commune pour tous vos périphériques exécutants Kodi/XBMC. Le principale avantage est de manager en un point les séries/films vus, non vus ou en cours et pas sur chaque appareil. Une fois de plus nous utiliserons un NAS Synology équipé du système DSM qui nous servira de serveur de partage de fichier et de base de données.

Si vous ne possédez pas de NAS Synology ou de machine virtuelle XPEnology, il est tout à fait possible de suivre ce tutoriel si vous possédezer un serveur MySQL/MariaDB et un système d’exploitation permettant de créer un partage NFS.

Pour cet article, nous utilisons une machine virtuelle XPenology équipée DSM 5.2 et Kodi 14.2 « Helix ».

Au Sommaire:

Tutoriel Vidéo

Présentation de Kodi/XBMC

Kodi (anciennement XBMC) est lecteur multimédia open source multiplateforme. Il prend en charge un grand nombre de formats multimédias. Kodi permet notamment gérer vos vidéos, films et séries : progression du visionnage, informations sur les films et séries (casting, durée, nombre de saison/épisodes), voir les trailers etc… . C’est l’outil parfait pour tout gros consommateur de film et de séries.

Si comme moi vous avez plusieurs appareils qui exécutent Kodi/XBMC, il est pertinent de centraliser la base de données du logiciel qui est locale par défaut : cela permet de ne pas avoir à reproduire la configuration, de marquer les épisodes vus sur un appareil sur les autres appareils.

Pour utiliser une base de données centralisée, il est nécessaire que tous vos appareils exécutants Kodi/XBMC possèdent la même version du logiciel.

Partage des fichiers : les bonnes solutions

La problématique principale dans l’utilisation d’une base de données centralisée, c’est qu’il faut partager les médias via le même chemin réseau sur tous vos périphériques.

Deux solutions universelles sont le partage « NFS » (pour Network File System) et SMB (pour Server Message Block).

Le NFS est un protocole de partage de fichier via le réseau. Qui dit réseau, dit adresse IP, une méthode universelle pour accéder à un appareil. La plupart des systèmes d’exploitation (Windows, Linux et MacOS) sont compatibles avec le protocole NFS. A noter que les permissions d’un partage NFS se font coté serveur de partage et uniquement grâce au nom d’hôte (adresse ip ou nom de la machine).

Gearbest Gadgets Daily: Up to 95% OFF
Le SMB est aussi un protocole de partage de fichier, celui-ci identifie les ressources partagées à partir d’une adresse au format UNC (Universal Naming Convention) comme \\Nom_de_la_machine\partage\vers\un\fichier.

Alors, NFS ou SMB ? Le NFS est réputé pour ses meilleures performances et le SMB pour sa simplicité à mettre en place dans un environnement Windows. A vous de choisir.

Pour notre tutoriel nous allons partager nos répertoires contenants films, séries, musiques ou images puis les ajouter à Kodi/XBMC afin d’enrichir la médiathèque et mettre à jour la base de données commune.

Créer un partage NFS avec DSM

Les NAS Synology et le système DSM permettent de créer un partage NFS rapidement sur le réseau local.

Dans un premier temps il faut activer le partage NFS dans le panneau de configuration.

A la racine du volume principal je vais créer mes répertoires à partager via NFS, dans cet exemple je fais partager les dossiers films et séries.

Une fois ces répertoires créés, il faut autoriser le partage NFS sur ceux-ci. Pour celà sur DSM, depuis le panneau de configuration sous l’onglet « Dossier Partagé », faire « modifier » après avoir sélectionné un répertoire. Une fois sur l’écran de modification d’un dossier partagé, se rendre sur l’onglet « Autorisations NFS », puis faire « créer » pour créer un nouveau partage NFS.

Dans mon cas, mes machines sont sur un réseau 192.168.0.*, j’autorise uniquement les appareils de ce réseau à se connecter au partage NFS.

  • En privilège : lecture/écriture
  • Squash (qui est le mode de mapping du client NFS sur le partage) : mappage de touts les utilisateurs sur admin. Afin d’autoriser tous les clients à avoir les droits admins sur le partage
  • Activer le mode asynchrone
  • Activer les connexions sur les ports supérieurs à 1024

Créer un partage SMB avec DSM

Les NAS Synology et le système DSM permettent de créer un partage SMB.

Il suffit de se rendre dans le panneau de configuration et de sélectionner Dossier partagé.

Depuis cet écran il est possible de créer un nouveau dossier partagé en SMB et d’en modifier les permissions.

Si vous définissez des permissions sur vos partages, il faudra utiliser le login et mot de passe de l’utilisateur habilité sur chacun des clients qui accéderons à ce partage. Une fois identifié vous ne verrez que les partages auxquels vous avez accès.

La base de données

Pour la base de données, nous allons encore utiliser notre NAS Synology et DSM en installant les packages suivants :

  • « MariaDB » qui est le serveur de base de données (dérivé de MySQL)
  • « PhpMyAdmin » qui est un outil qui permet d’administrer une base de données MySQL/MariaDB

Une fois ces packages installés, il suffit de se rendre dans PhpMyAdmin (le login par défaut est « root », sans mot de passe) et de créer un nouvel utilisateur avec les propriétés suivantes :

  • Nom d’utilisateur « kodi »
  • Autoriser l’accès à tout client « % » (erreur dans la capture d’écran)
  • Privilèges globaux

Nous ne créons pas de base données dédiée car Kodi/XBMC va les créer tout seul lors de la première connexion. C’est pour cette raison qu’il est nécessaire de créer un utilisateur qui possède les droits de création de tables.

Une fois notre base de données créée, il faut indiquer à Kodi/XBMC le serveur, login et mot de passe afin qu’il puisse se connecter.

Il faut pour cela créer un fichier « advancedsettings.xml » dans le répertoire spécifique à Kodi/XBMC présent dans « userdata ». Voici les chemins vers le répertoire « userdata » pour les différents systèmes d’exploitations (extrait du wiki de Kodi/XBMC (http://kodi.wiki/view/Userdata_folder)) :

SystèmeChemin
AndroidAndroid/data/org.xbmc.kodi/files/.kodi/userdata/
iOS/private/var/mobile/Library/Preferences/Kodi/userdata/
Linux~/.kodi/userdata/
Mac/Users//Library/Application Support/Kodi/userdata/
OpenELEC/storage/.kodi/userdata/
WindowsBouton démarrer – type %APPDATA%\kodi\userdata – puis faire

Si vous utilisez « XBMC » plutôt que « Kodi », remplacez le répertoire « kodi » par « xbmc » dans le chemin.

Une fois le répertoire identifié, il suffit de créer le fichier (ou le modifier s’il existe) et d’ajouter la configuration suivante :

 
<advancedsettings>
  <videodatabase>
    <type>mysql</type>
    <host>[IP du serveur MySQL]</host>
    <port>3306</port>
    <user>kodi</user>
    <pass>[Mot de passe]</pass>
  </videodatabase>
  <musicdatabase>
    <type>mysql</type>
    <host>[IP du serveur MySQL]</host>
    <port>3306</port>
    <user>kodi</user>
    <pass>[Mot de passe]</pass>
  </musicdatabase>
  <videolibrary>
    <importwatchedstate>true</importwatchedstate>
    <importresumepoint>true</importresumepoint>
  </videolibrary>
</advancedsettings>

Configuration de Kodi/XBMC

La dernière chose à faire est d’ajouter nos partages NFS et d’associer le scrapper correspondant pour enrichir la médiathèque Kodi/XBMC. En arrière plan le logiciel va lire la configuration du fichier « advancedsettings.xml » crée précédemment et créer les tables dans la base de données si nécessaire.

Pour ajouter un partage NFS dans XBMC, se rendre sur « Videos » puis « File ». Ici il suffit d’ajouter une nouvelle source et de choisir « Partage NFS »

Puis recherchez votre partage NFS (192.168.0.100 dans mon cas), puis le dossier partagé qui contient vos films ou vos séries.

Configurer le scrapper correspondant (Movies pour les films par exemple), attention à bien changer la langue en français dans les paramètres du scrapper.

Une fois la médiathèque mise à jour une première fois, plusieurs tables ont pu être créées en base de données.

Pour utiliser cette base de données sur d’autres appareils, il suffit de copier la configuration du fichier « advancedsettings.xml » sur tous vos systèmes exécutant Kodi/XBMC. Chacun des appareils mettra alors à jour la base de données, vous verrez donc les mêmes informations partout !

Debogage

Gearbest Gadgets Daily: Up to 95% OFF
Si vous rencontrez des erreurs avec votre configuration (base de données qui ne se créer pas, fichiers vidéos introuvables, etc …) ce chapitre est fait pour vous.
Le plus simple pour connaitre les erreurs, c’est d’activer les logs de débogage directement dans Kodi/XBMC.

La première chose à faire est de se rendre dans le paramétrage de Kodi, rubrique « Système » dans l’onglet « Debogage ». Si cet onglet n’est pas affiché, il faut passer le niveau de paramètre à « Expert » en bas à gauche. Il suffit d’activer le « mode debug ».

Cela aura pour effet d’afficher un ensemble d’informations en haut à gauche de votre écran, notamment le chemin vers le fichier de log.

Ce fichier de log vous sera utile principalement pour 2 choses: savoir si le fichier advancedsettings.xml est bien chargé (et donc dans le bon répertoire) et si il y a des erreurs de connexion à la base de données.

Dans les captures, on peut voir que le fichier advancedsettings.xml est bien chargé, mais que le mot de passe à la base de données est erroné. Pour accéder plus rapidement aux erreurs dans le fichier, il suffit de recherche le terme « ERROR » dans le contenu.

Mise à jour vers Kodi 16 Jarvis

MAJ du 24/02/2016 : Si comme moi vous venez d’installer la dernière version de Kodi (16 appelée « Jarvis »), il se peut que Kodi crash au démarrage.
En vérifiant les logs, Kodi rencontre une erreur SQL sur la mise à jour de la base de données:

20:06:58 T:139636806830208   ERROR: SQL: [MyVideos99] The table does not exist

L’erreur semble provenir d’un bug avec MariaDB qui est le système de base de données fourni par défaut dans les packages des NAS Synology.

La solution a été trouvée sur ce forum : http://forum.kodi.tv/showthread.php?tid=186325&pid=1958252#pid1958252.

Rendez-vous dans PHPMyAdmin et connectez vous en « root ». Lancez une commande MySQL avec la requête suivante:

SET GLOBAL log_bin_trust_function_creators = 1;

Supprimez la base de données « MyVideos99« , puis relancez Kodi pour qu’il puisse créer la table à nouveau. Une fois Kodi demarré, fermez-le et tapez la commande inverse dans PhpMyAdmin:

SET GLOBAL log_bin_trust_function_creators = 0;

Kodi 16 Jarvis, devrait se relancer à nouveau et vous pourrez profiter de votre base de données.

Tablet PC deals and Promotion
Partagez

À propos de l'auteur

Développeur le jour, passionné la nuit. Je vous fais partager mes expériences, découvertes et astuces aux travers d'articles sur le site technotips.fr.

Poster un Commentaire

50 Commentaires sur "Kodi/XBMC : créer une base de données centralisée"

Notifiez moi
avatar

Trier par:   Plus récents | Plus anciens | Les plus votés
Sylvain
Invité
Sylvain
4 mois 11 jours plus tôt
Bonjour, merci pour cet article. J’ai quelques questions avant de débuter une installation sur mon NAS: – le décodage des vidéo sur Kodi se fait sur le NAS ou sur le client – en lien avec la question précédente: une config minimale du NAS Syno est-elle nécessaire ? (210J pour mon cas) – puis utiliser un client du type ChromeCast ? Ou une TV-Box Android ? – puis-je lire des vidéo sur un réseau distant (Box en fibre à 200 Mb/s en up pour la partie serveur, VDSL à 70 Mb/s en down pour le client) ? Quelle doit en… Read more »
Samy
Invité
Samy
9 mois 23 heures plus tôt

Bonjour,

Merci pour votre tuto très bien fait mais j’ai quand même un petit souci:

Lorsque je lance kodi j’ai ceci dans le dubug log
(Access denied for user ‘xbmc’@’192.168.0.123’ (using password: YES))

une idée?

Merci d’avance

Samy

Olivier
Invité
Olivier
7 mois 13 jours plus tôt

Bonjour Samy,

J’espère que depuis tu as trouvé mais ce message correspond à un pb de droit sur ta base Mysql. Vérifie dans ta base que l’utilisateur XBMC a les Valeur % et/ou Localhost ou nom de ton NAS pour pouvoir y accéder de partout.
Ou bien tu te créé des utilisateurs par machine mais tu dois spécifier l’adresse IP de la machine qui se connecte.

Merci

Samy
Invité
Samy
9 mois 17 heures plus tôt

Merci pour votre Tuto très bien fait il m’a enfin permis de paramétrer mon server mysql.

_Samy

Romain
Invité
Romain
8 mois 29 jours plus tôt

Bonjour,

Je viens de suivre votre tutoriel qui est tres bien fait mais jai tout de meme quelques questions :

Comment verifier que tout fonctionne bien ?

Je ne trouve pas le dossier storage sur la micro sd de mon raspberry, ou cela se trouve t-il ?

Par avance merci

Romain

Argurth
Invité
8 mois 27 jours plus tôt

Bonjour, moi j’ai une petite question, mon NAS est accessible depuis l’exterieur, ce n’est pas un peu risqué d’activer le NFS ?
Est ce qu’il y a moyen de sécuriser cette connexion NFS ?

dalton
Invité
dalton
8 mois 14 jours plus tôt
bonjour je souhaiterai faire une base de donnée partagée mais je débute je possède trois pc avec kodi, le principal au salon avec tous mon stockage et deux secondaires qui actuellement lisent les fichiers par le réseau tout bêtement mais la base de donnée n’est pas commune Peut on sur le même pc (mon pc principal au salon) créer une émulation sur machine virtuelle par exemple pour avoir un nas ET un kodi j’ai vu que on peut créer un nas a partir d’un pc mais je peut le faire tourner en même temps que Windows seven et kodi qui… Read more »
Julien
Invité
Julien
7 mois 29 jours plus tôt

Hello

Je viens de tenter la manip sur une nouvelle install de kodi sur une Nvidia Shield Android TV

Si je scrap les fichiers « films » directement cela fonctionne. Si j’ajoute mon fichier advancedsettings.xml et que séléctionne la catégorie des fichiers en « film », il ne sauve rien et plus rien ne se passe. Impossible d’avoir une maj de la bibliothèque. J’ai donc tout supprimé, recommencé de zéro. Je crée la source des fichiers (smb ou nfs), j’upload l’advancedsettings.xml, je choisi la catégorie film et toujours pareil. Des que j’ai uploadé ce fichier plus rien ne fonctionne 🙁

Xtof
Invité
Xtof
6 mois 16 jours plus tôt

Bonjour
je pense avoir suivi la procédure.
Mais il n’y a pas de table qui se crée dans mysql !!!
je ne comprend pas
Pouvez m’aider .

TurAmon
Invité
TurAmon
6 mois 8 jours plus tôt

Bonjour,

Est il possible de centraliser 2 bases de données de 2 Kodi différents sur un même NAS ?
L’objectif étant de sauvegarder les bases de données sur le NAS (de manière automatique) et potentiellement partager l’une des bases Kodi sur différents supports.

Didier
Invité
Didier
6 mois 7 jours plus tôt
Bonjour J’ai kodi installé sur mon PC et un Serveur Synology via une freebox Après mise en place du tuto j’ai une erreur dans le log et rien de créé NOTICE: Loaded settings file from special://profile/advancedsettings.xml 14:31:51 T:11004 NOTICE: Contents of special://profile/advancedsettings.xml are… mysql 192.168.1.10 3306 kodi kodi mysql 192.168.1.10 3306 kodi kodi true true 14:31:52 T:11004 ERROR: Unable to open database: MyVideos93 [1130](Host ‘192.168.1.46’ is not allowed to connect to this MariaDB server) 14:31:52 T:11004 ERROR: Unable to open database: MyVideos92 [1130](Host ‘192.168.1.46’ is not allowed to connect to this MariaDB server) 14:31:52 T:11004 ERROR: Unable to open database:… Read more »
olivier
Invité
olivier
6 mois 6 jours plus tôt

J’avais le meme probleme et j’ai du mettre % a la place de localhost pour que ça fonctionne lorsque j’ai creer mon utilisateur kodi dans phpmyadmin.

Je sais pas si ça pose probleme mais ça fonctionne.

Enjoy

remydedez
Invité
remydedez
6 mois 6 jours plus tôt

Salut à tous,

j’ai un synology ds215j et installer kodi sur ma tv android philips.
J’ai suivi correctement la procedure mais impossible d’assigner une catégorie à mes videos même en forçant le rafraîchissement.
J’ai regarder dans le log le fichier advancedsettings est bien charger mais il y a des erreur mysql comme sur votre capture.
J’ai donc bien reverifier mon mot de pass sur mysql mais rien n’y fait. Je ne sais plus trop quoi faire avez vous une idée ? merci

olivier
Invité
olivier
6 mois 6 jours plus tôt

Dis Jeremy sais tu si avec une base centralisé on peut avoir une seule base mais plusieurs utilisateurs ayant chacun des vus et des points de reprise differents.

Je sais pas si je suis clair !

Exemple :
Moi plusieurs kodi avec les même vus et point de reprise
Mon fils dans sa chambre la même base avec des vus et des points de reprise différents

olivier
Invité
olivier
6 mois 5 jours plus tôt

Merci pour ton tuto et pour ces infos je vais aller jeter un oeil !

olivier
Invité
olivier
5 mois 17 jours plus tôt

Bonsoir,
Super tutos par contre question j’ai installe xpenology sur virtual box.
comment faire pour ajouter les videos sur des disques durs physiques? et est il possible de laisser mes videos sur mon pc et de créer a laide d un raspberry pi par exemple et xpenology juste un serveur php pour juste stocker la base de donnée?
merci par avance

Grin
Invité
Grin
5 mois 5 jours plus tôt

Bonjour Jeremy ,

Merci pour cet excellent tuto.
J’ai une petite question. ☺
Sur mon réseau local, j’ai installé une nvidia shield équipée de kodi. Un autre pc sert de serveur. Tout fonctionne bien. Néanmoins, je voudrais pouvoir prendre le contrôle de kodi depuis un pc pour pouvoir bidouiller certains fichiers sans devoir brancher la box en usb. Une idée? La nvidia shield n’apparaît même pas sur mon réseau…
Merci

Guillaume
Invité
Guillaume
3 mois 30 jours plus tôt
Bonjour Jeremy, alors voilà je t’explique mon soucis! J’ai installer Kodi sur ma free mini 4K, jusque là pas de soucis, je configure correctement tous mon ensemble, mes dossiers et sous dossiers sont correctement édités. Je partage mes fichiers de mon pc sur la mini 4K via FreeMi UPnP qui fonctionne très bien. Et là quand je viens chercher ma source (dans l’ajout de source, vidéo) je sélectionne mon fichier et là boum, je n’ai pas la page de choix de scrap qui s’ouvre… J’arrive à obtenir cette page uniquement lorsque je met 2 ajouts dans les sources (ex :… Read more »
Olivier
Invité
Olivier
3 mois 8 jours plus tôt
Bonjour, Merci pour ce tuto. Je suis à 2 doigts d’y arriver mais je bloque. Dans le debuglog j’ai constaté que Kodi n’arrive pas a se connecter phpmyafmin sur mon NAS. Après avoir vérifié les ortographes des login et mdp, j’ai tenté de me conecter à phpmyadmin avec le compte kodi –> impossible 🙁 J’ai supprimé l’utilisateur et l’ai recréé –> pas mieux J’ai bien coché tout coché les privilèges globaux. Je peux bien sur me connecter en root Aurais tu une idée de ce qui peut bloquer la connexion à la BDD ? Pour ceux qui disaient ne pas… Read more »
wpDiscuz