Logiciels > Logiciels Multimédia > Kodi : Installer une base centralisée avec MySQL

Kodi : Installer une base centralisée avec MySQL

Pages précédentes :

 

Kodi

 

Voir aussi :
http://media-passion.fr/support-general-kodi/

 

17/03/2016 : Page en préparation :)
Les paragraphes sont encore dans un ordre dispersé.

 

Base centralisée avec MySQL :

Lorsqu'on utilise des fichiers situés sur un NAS mais qu'on y accède à partir de plusieurs ordinateurs. Il est préférable d'avoir la base de données commune sur le NAS au lieu d'avoir une base de données sur chaque ordinateur.

En gros, il faut :
- installer et configurer une base MySQL (ou similaire : MariaDB, Uwamp, etc.
- placer un fichier advancesettings.xml dans le dossier userdata.

Il y a des particularités selon que l'on utilise un serveur NAS Synology, un Raspberry ou autre, Windows ou Linux.
Voir mes liens :)

 

 

Mon installation :

Finalement, c'est très simple... et diablement efficace :)
Sur un Synology j'ai utilisé MariaDB et PhpMyAdmin. C'est tout.

 

J'ai suivi la procédure donnée sur la page :
Technotips.fr - Kodi/XBMC : créer une base de données centralisée
(qui comporte uniquement une petite erreur mentionnée dans les commentaires : taper % à la place de localhost)

 

1 - Configuration sur le Synology :

Si cela n'est pas fait :
- créer, évidemment, dossiers partagés et utilisateur (le nom importe peu)
J'ai utilisé le partage SMB

- installer MariaDB (il n'y a rien d'autre à faire avec ce programme)

- installer PhpMyAdmin
- lancer PhpMyAdmin et créer un utilisateur (kodi) avec un mot de passe (kodi), sélectionner "local" et taper % à la place de localhost, dans Privilèges globaux, sélectionner "tout cocher" et cliquer sur Exécuter en bas à droite

- fermer l'interface du Synology (on n'y revient pas).

 

2 - Installation et configuration de Kodi :

- installer Kodi
- lancer Kodi
- configurer les scraper
- ferner Kodi

Après l'installation de Kodi, le dossier userdata est créé :
- copier le fichier advancesettings.xml (voir plus bas) dans le dossier userdata

 

3 - Installation de Kodi sur un autre ordinateur

- installer Kodi,
- lancer Kodi (pour que le dossier userdata soit créé)
- fermer Kodi (inutile de configurer les scraper

- copier le fichier advancesettings.xml dans le dossier userdata

Etc :)

 

 

Problème pour mettre à jour la médiathèque :

C'est très bien la base MySQL, mais ensuite, il est difficile de rajouter ou retirer des fichiers.

J'ai beau "actualiser la médiathèque" (bandeau gauche) Kodi affiche toujours des fichiers qui ne sont plus présents.

En fait, il faut d'abord "Nettoyer la médiathèque" (dans Système, Paramètres)

 

Je pense qu'il est préférable de passer par l'ordinateur sur lequel on a installé la base la première fois. C'est le seul à contenir le nom du(des) dossier(s) dans "Fichiers"

A suivre.

Pas d'infos dans le Wiki :
http://kodi.wiki/

Voir particulièrement :
http://kodi.wiki/view/MySQL

 

 

La procédure :

Toute la procédure est expliquée sur cette page en anglais :
Kodi.wiki - MySQL/Setting up Kodi

 

Une longue discussion de forum où on trouve des informations intéressantes :
Media-passion.fr - [TUTO] Installer un serveur MySQL pour XBMC
La discussion commence en 2010. Voir surtout les dernières pages.

Un cour résumé :
Media-passion.fr - Base de donées KODI
"- créer un utilisateur SQL "Kodi" sur le PC ou le NAS qui sera destiné à recevoir la base,
- intégrer l'utilisateur dans le fichier advancesettings qui devra être copié sur tous les postes..."

 

- Vu sur media-passion.fr :
J'ai installé Mysql sur un poste Ubuntu, j'ai créé un user kodi mdp kodi.
Sur Openelec dans .kodi/userdata, j'ai créé un fichier advancedsettings.xml

Si je ne me trompe pas, Kodi maintenant est capable de créer lui même la base de données ?
Effectivement au redémarrage de Kodi, j'ai deux BDD qui se crée sur mon poste Ubuntu "MyVIdeos90 et MyMusic48", mais elles sont vides.

Réponse :
Si les 2 bases sont créées c'est que le "advancedsettings" est bien pris en compte.
C'est normal que ces bases soient vides car Kodi ne peut pas remplir une base MySQL avec les données d'une base locale.
Donc :
Si ce n'est déjà fait il faut exporter la médiathèque en fichiers séparés en se servant de la base locale (virer le advancedsettings" pour y avoir accès).
Ensuite remettre le "advancedsettings", déclarer les différentes sources et remplir la médiathèque à partir des infos locales obtenues par l'export (la question de la mise à jour de la médiathèque sera posée lors de la recréation des sources).

Autre explication :

Je vais tenter d'expliquer ce que tu fais avec ton advancedSettings.

Au départ, tu as une installation de Kodi qui marche, avec les informations sur les films que tu as dans une base de données. Cette base de données est dans un fichier, sur ta machine, en local. Cette base de données, tu l'as remplie en faisant un scrap.

En ajoutant ton AdvancedSettings, tu indiques à Kodi que dorénavant, il trouvera les infos des films sur une base MySQL. Evidemment, cette base est vide. Ce que se disent beucoup de gens, c'est que Kodi pourrait alors s'en rendre compte, et importer la base locale vers cette base MySQL. Oui, sauf que cela pourrait amener quelques soucis : comment gérer la transition ? Que faire si quelque chose se passe mal ? Cette solution est en fait pas nécessairement très facile à mettre en place, et n'est finalement pas transparente (personnellement, je pense qu'un outil externe pourrait être néanmoins pratique, mais qu'un outil intégré à Kodi pourrait être lourd à créer pour pas grand chose).

La team Kodi a donc décidé que la transition ne se ferait pas automatiquement, mais qu'un scrap serait de nouveau nécessaire lors de la transition. Ce qu'on te propose donc, c'est:
- exporter la médiathèque en fichiers séparés, afin de faciliter le futur scrap
- passer à MySQL, du ocup, comme tu l'as compris, ta base est vide
- scrapper tes sources, et réimporter proprement toutes les données

 

 

Le fichier advancesettings.xml :

Kodi.wiki - advancedsettings.xml

Contenu :
Le fichier advancesettings.xml doit être modifié selon sa configuration :
- adresse IP du Synology (ou de l'ordinateur contenant la base de donnée)
- nom d'utilisateur et mot de passe correspondant à l'utilisateur créé dans la base MySQL
PS : ce nom d'utilisateur est sans rapport avec le nom d'utilisateur d'accès au Synology (ou de l'ordinateur)).

Emplacement :
Le fichier advancesettings.xml sera placé dans le dossier userdata de Kodi (voir plus bas).
Mais *après* avoir installé Kodi sur le premier poste et *après* avoir lancé le scraper sur les dossiers du premier poste.

 

Exemple d'un fichier advancesetting.xml

<advancedsettings>
<videodatabase>
<type>mysql</type>
<host>192.168.0.110</host>
<port>3306</port>
<user>kodi</user>
<pass>kodi</pass>
</videodatabase>

<musicdatabase>
<type>mysql</type>
<host>192.168.0.110</host>
<port>3306</port>
<user>kodi</user>
<pass>kodi</pass>
</musicdatabase>

<videolibrary>
<importwatchedstate>true</importwatchedstate>
<importresumepoint>true</importresumepoint>
</videolibrary>
</advancedsettings>

 

 

Le dossier userdata :

Kodi.wiki - userdata

Selon le système d'exploitation, il se trouve à un endroit différent.
Sous Windows : %APPDATA%\kodi\userdata

Ci-dessus, les fichiers de base de données correspondent à Kodi Jarvis (ex : MyVideos99). Voir :
Kodi.wiki - Database versions

Plus généralement. Voir :
Kodi.wiki - Databases
"Kodi uses SQLite, an open source light-weight SQL database-engine, to store all its library related data (Music, Video, and Program databases). By default, the database files (*.db) are stored in The UserData Folder, specifically in userdata/Database.
In addition to indexing media files when activated by user-selected Content settings, Kodi also puts a video in its database if you change any OSD setting while watching it. Resume points are stored in this database as well. These entries are added to the database whether the affected video is part of the Video Library or not.

 

 

Synology : Installation avec MariaDB et PhpMyAdmin :

C'est l'installation que j'ai effectuée sur un Synology.

Dans cet article, on parle de Kodi :

13/09/2015 : Technotips.fr - Kodi/XBMC : créer une base de données centralisée
1 - Choisir le type de partage : NFS ou SMB :
"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)...
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..."
2 - Installer MariaDB et PhpMyAdmin :
"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 "
3 - Créer un utilisateur dans PhpMyAdmin
"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 »
Accès seulement à localhost (pour des raisons de sécurité)
Privilèges globaux

 

Dans cet article on ne parle pas de Kodi :

Blog.e-nnov.fr - Synology : Installer MariaDB
"MariaDB est un SGBD (système de gestion de base de données) open source. Il est hautement compatible avec MySQL et permet aux utilisateurs de migrer sans efforts des bases de données depuis MySQL vers MariaDB..."

Sur Synology :
- Ouvrez le centre de paquet puis affichez la catégorie Utilitaires. Recherchez l'application MariaDB et lancez l'installation...
- La prochaine étape consiste à installer phpMyAdmin pour administrer ce SGBD...

Synology.com - DiskStation - MariaDB
"MariaDB est un fork de MySQL développée par la communauté et c'est l'un des systèmes de gestion de base de données relationnelle les plus largement utilisés (RDBMS). Il est hautement compatible avec MySQL et permet aux utilisateurs de migrer sans efforts des bases de données depuis MySQL vers MariaDB. Avec MariaDB, vous pouvez lire, mettre à jour et gérer vos données facilement et de manière efficace."

 

 

Uwamp :

Site officiel :
http://www.uwamp.com/fr/

"Sous Windows j'utilise Uwamp comme serveur MySQL, c'est pratique et il n'y a même pas besoin de l'installer. Tu le dézippes et tu le mets où tu veux." (vu sur media-passion.fr)

 

 

MySQL :

Site officiel :
Dev.mysql.com - Download MySQL Community Server

MySQL et WampServer (vu sur media-passion.fr)

 

 

Autres liens :

Attention à l'ancienneté.

11/01/2013 : Forum.Kodi.tv - GUIDE: How to use XBMC with MySQL on Mac OS X
Un tuto en anglais : Installation de MySQL, création d'un utilisateur, ne pas créer de BDD, création d'un fichier my.cnf, création d'un fichier advancedsettings.xml à copier dans userdata.

12/06/2012 : Nas-forum.com - Centraliser Bibliothèque Xbmc Sur Le Syno à L'aide De Mysql
Obsolète. Sur le Syno, création d'un utilisateur dans PhpMyAdmin, création d'un utilisteur pour la BDDm création d'un fichier advancesettings.xml à copier dans userdata.

23/10/2014 : Media-Passion.fr - XBMC + synology --> base centralisée ?
Quel est le protocole le plus conseillé lors de l'ajout de sources ? Réponse = SMB
Avez-vous des conseils, des bons plans pour ce type d'installation ? Réponse = Non, ça roule tout seul. Par contre, par rapport à certains tuto que tu trouveras, il ne faut plus faire de pathsubstitution. Seules les bases Videos et Music sont déportées sur MySQL."

Forum.Hardware.fr - [TUTO] Base de données XBMC sous phpMyAdmin ~~ Sauvegarde BDD
"Petit tutoriel pour créer une base de données via Xbne sous PhpMyAdmin, réalisé avec un NAS Synology pour l'utilisation de XBMC"
- Installer PhpMyAdmin
- se connecter en root (normalement le mot de passe est le même que celui pour admin).
Dans la page de phpMyAdmin :
- créer un utilisateur via l'onglet « Utilisateurs » puis « Ajouter un utilisateur »
- Nom utilisateur : xbmc
- Mot de passe xbmc
- Privilèges globaux : tout cocher
Etc.