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

81

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).

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

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.

À 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

81 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
Samy
Invité

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é

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é

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

_Samy

Romain
Invité

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é

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é
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é

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é

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é

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é
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é

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é

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é

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é

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

olivier
Invité

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é

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

Sylvain
Invité
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 »
Guillaume
Invité
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é
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 »
Steve@ustiN
Invité

Bonjour à tous, super Tuto 😉
Malheureusement je suis bloqué lors du scrappe… en fait il ne se lance pas 🙁
– PhpMyAdmin sur Xpenology est correctement lancé.
– Fichier « advancedsettings.xml » modifié et placer dans userdata.
– openelec sur 3x Raspberry Pi et 1x Intel Nuc I3.
– les bases de données n’apparaissent pas dans PhpMyAdmin.

la manipulation n’a pas l’air compliqué, je ne comprend pas pourquoi cela ne fonctionne pas!

Pouvez-vous m’aider?
Merci Beaucoup 😉

Maxxele
Invité

A la fin de votre vidéo vous dites qu’il suffit de copier le fichier advancedsettings.xml.

Mais sur ma box TV android, comment puis-je copier ce fichier dans le user data ? Je dois la brancher au mac en usb ? ou l’importer avec une clef usb ?
Je ne trouve pas le moyen…

Merci !

Nikky
Invité
Bonjour et merci pour ce tutoriel extrêmement bien fait qui risque de me faciliter si je me sors d’une problématique sur laquelle je sèche. En gros j’ai un NAS Synology, un Mac, et 7 Apple TV II tous jaibreakés afin d’y faire tourner Kodi. Jusque là tout va bien, exception faite du fait que le NAS étant bourré de films les Apple TV commencent à saturer au niveau de leurs bases de données internes d’où l’idée de n’en centraliser qu’une seule sur le NAS pour laisser les Apple TV respirer un peu ! Le seul « hic » étant de réussir à… Read more »
Nikky
Invité

Merci à tous pour vos nombreuses réponses ; cela m’a beaucoup aidée… Pour ceux que cela intéresserait j’ai trouvé la solution ; il faut entrer dans l’Apple TV par le biais de Cyberduck (ou tout autre client SFTP) en y entrant son adresse IP. Le user étant « mobile » et le password « alpine ».
Reste à savoir maintenant si le fait d’externaliser la base de donnée libérera réellement la mémoire des Apple TV puisqu’elle sera nécessairement rechargée dans en RAM…

huguet
Invité

bonjour, depuis quelques temps j’ai installer kodi sur un systeme windows 10 … depuis, dès que kodi est ouvert, le pc ne s’eteint plus … si je l’eteind .. il redémarre
des que je met l’advancedsetting ca bug .. si je l’enleve le pc s’eteint correctement …

je suis complètement perdu

JC02
Invité

Bonjour, je viens de faire l’acquisition d’un SYNO ds 1515+ et je suis en train de faire ton tuto qui est super bien. Tout est ok pour moi jusqu’au moment de monter les lecteur réseau, je suis sur KODI 16, j’ai paramétrer mes lecteur en NFS, mais dans kodi quand je clique sur ajouter une source NFS, rien ne ce passe. As tu une idée ?

Merci d’avance

Stephane
Invité
Article très bien fait et tres instructif. J’ai procédé aux manipulations sur un Kodi installé sur un PC et tout s’est déroulé avec success, les deux bases de données sont bien crées. En revanche j’ai essayé ensuite d’utiliser cette base centralisée avec un autre PC, une tablette et un telephone sous android. A chaque fois le kodi semble complétement ignoré mon advancedsettings.xml. Si j’ajoute le partage NFS a la fin le scrapper va ensuite faire son travail mais en creant une nouvelle bbd (locale, j’imagine). Pour le moment j’ai une base de donnée centralisée mais qui ne semble fonctionner qu’avec… Read more »
Bubu
Invité

Bonjour,

J’ai récemment fait l’acquisition d’un NAS DS 416 play et d’une shield pro. Je veux utilisé Kodi en serveur sur la shield et utiliser le NAS juste en stockage. J’essaie d’appliquer le tuto mais je beug sur le fichier « advancedsettings.xml », je ne sais pas ou le trouver, sur la shield ou sur le NAS??? j’utilise un MAC pour acceder a mon Nas, faut il que je telecharge kodi aussi sur ce dernier??

OlivierTHX
Invité

Bonjour, merci pour ce tuto très clair. J’ai depuis plusieurs semaines mis en place le fichier advancedsettings.xml sur plusieurs devices (un raspberry pi3 et 2 pcs) et cela fonctionne très bien. Je veux maintenant également utiliser kodi sur mon Ipad air 2. J’ai déjà réussi à installer l’application kodi via le tuto (https://www.drgeeky.com/kodi-iphone-without-jailbreak-windows-no-xcode-no-mac/).
maintenant je voudrai utiliser la même base centralisée.
pour cela, je dois copier le advancedsettings.xml dans le répertoire qui va bien sur l’ipad.
/private/var/mobile/Library/Preferences/Kodi/userdata/

mais je ne sais pas comment faire ?
merci pour votre aide.

Guillaume
Invité
Bonsoir Jérémy et felicitation pour ce tuto du tonnerre !! J’ai bien suivi le tuto et je pense bloquer à qqes encablure du but. J’ai un nas synology 212J que j’ai bien configuré avec Kodi –> j’accède à mes vidéos de mon Nas de puis Kodi (Tél Android). J’arrive à les lire avec le lecteur MxPlayer. J’ai un Chromecast, j’ai donc installé LocalCast for Chromecast / DLNA sur mon téléphone android, et j’ai copié le factoryfile au bon endroid. Lorsque je suis dans Kodi, je ne peux plus ouvrir aucune vidéo. Dès que je clique sur une vidéo, j’ai la… Read more »
Guillaume
Invité

J’ai notament identifié cette erreur dans le fichier de log:
14:30:42 T:18446744071989823792 NOTICE: virtual BOOL CExternalPlayer::ExecuteAppAndroid(const char*, const char*): de.stefanpledl.localcast
14:30:42 T:18446744071989823792 ERROR: CXBMCApp::StartActivity – ExceptionOccurred launching de.stefanpledl.localcast
14:30:42 T:18446744071989823792 NOTICE: virtual BOOL CExternalPlayer::ExecuteAppAndroid(const char*, const char*): Failure

wpDiscuz
Share This

Partagez cet article !

Partagez cet article avec vos amis