Pensez à exporter de temps en temps les médiathèques sous la forme de fichiers multiples en écrasant les fichiers existants afin de sauvegarder le statut vu ou non de chaque média.
Kodi (anciennement XBMC1), nom qui a dû être abandonné pour des raisons de droits) est un logiciel de type centre multimédia qui permet de diffuser différents types de médias : vidéos, musique ou photos. Et cela de manière esthétique avec jaquette, résumé, bande-annonce, etc. Pour être honnête, on se rend vite compte que la musique est moins bien traitée que les vidéos, et c'est encore plus vrai pour les photos.
Le fonctionnement de base est donc d'indiquer à Kodi les différentes sources (càd les chemins où sont stockés les médias) qu'il va scanner avec un scraper qui se connecte sur internet pour récupérer les images en rapport (jaquette, fond d'écran…) et toutes sortes d'infos comme le résumé, la date de sortie…
Dans l'absolu, pas grand chose pour l'utilisateur final…
Certes le nom a changé mais Kodi reste une évolution de XBMC: le logiciel évolue dans une logique d'amélioration progressive mais reste fondamentalement le même. La seule modification majeure que j'ai noté concerne les noms des fanarts (mais c'est peut-être antérieur au changement de nom car je n'ai pas suivi les versions pendant plus d'un an).
Le modèle précédent était fonctionnel mais avait du mal par moment (cela se sentait par exemple en faisant défiler les jaquettes des films) et le Raspberry Pi 3 apporte un réel plus avec une fluidité bienvenue.
XBMC Kodi n'est malheureusement pas parfait .
Certains comportements par défaut sont décevants, voire à la limite de l'aberration:
Une bonne partie des problèmes étant liés aux bases de données, utiliser MySQL est, selon moi, une option très intéressante (en raison de la fiabilité et la possibilité d'automatiser les sauvegardes). Par ailleurs, ces données pourront être partagée entre plusieurs appareils équipés de XBMC Kodi.
Que vous souhaitiez passer à MySQL ou non, si vous voulez conserver le statut vu ou non vu en passant d'un système à l'autre, il faut déjà exporter les médiathèques de l'ancien XBMC Kodi sous la forme de fichiers multiples (avec ou sans les fanarts) en écrasant les fichiers existants (si vous avez personnalisé certaines informations grâce aux fichiers nfo, elle seront intégrées aux nouveaux fichiers) pour qu'un scraper puisse récupérer la bonne information et/ou sous la forme d'un fichier unique pour pouvoir importer l'ensemble des médiathèques en tant que fichier xml. Sur le nouveau système, il faut aussi ajouter ce qui suit au fichier advancedsettings.xml avant de scraper les données:
<videolibrary> <importwatchedstate>true</importwatchedstate> </videolibrary>
Deux bases de données sont nécessaires, respectivement pour les données qui concernent les vidéos et la musique. Elles vont porter un nom que l'on peut choisir (par exemple kodi_video
et kodi_music
) suivi d'un suffixe numérique déterminé par la version de XBMC Kodi. À chaque mise à jour, le suffixe numérique est incrémenté. Dans les faits, XBMC Kodi va tout simplement copier les bases existantes vers de nouvelles avec le suffixe numérique correspondant à la nouvelle version du logiciel.
Si MySQL est installé sur une autre machine que celle sur laquelle XBMC Kodi est installé, l'option bind-address ne doit pas être activée.
De nombreux guides sur le net suggèrent qu'il faut donner à l'utilisateur MySQL dédié tous les privilèges sur toutes les bases de données et qu'il faut aussi créer manuellement les bases de données. Tout cela est inutile et trop permissif si votre serveur héberge d'autres bases de données plus sensibles (par exemple une base de donnée utilisée par un site web et donc exposée au net).
Voici donc une méthode moins permissive qui permet de limiter les risques d'intrusion au maximum…
Lancer la console de gestion de MySQL:
mysql -u root -p
Nous allons donc créer un utilisateur “kodiutil” identifié par le mot de passe “kodimdp” (n'hésitez pas à personnaliser ces paramètres) en lui donnant tous les privilèges sur les bases de données dont le nom commence par “kodi” et à la condition qu'il se connecte depuis une machine dont l'adresse IP commence ici par “192.168.100.” (paramètre à adapter à votre réseau local) :
GRANT ALL PRIVILEGES ON `kodi%`.* TO 'kodiutil'@'192.168.100.%' IDENTIFIED BY 'kodimdp'; FLUSH PRIVILEGES; exit
Attention aux caractères ` et ' qui, curieusement, ne peuvent pas être utilisés n'importe où (et aucun essai avec uniquement l'un ou l'autre n'a fonctionné dans mon cas).
Pour permettre à XBMC Kodi d'utiliser une base de données MySQL, il faut créer (ou modifier s'il existe déjà) le fichier advancedsettings.xml dans le dossier userdata. Le chemin exact du dossier userdata dépends du système d'exploitation, le chemin utilisé dans ce qui suit est valable pour OpenELEC.
nano /storage/.kodi/userdata/advancedsettings.xml
<advancedsettings> <videodatabase> <type>mysql</type> <host>192.168.100.***</host> <name>kodi_video</name> <port>3306</port> <user>kodiutil</user> <pass>kodimdp</pass> </videodatabase> <musicdatabase> <type>mysql</type> <host>192.168.100.***</host> <name>kodi_music</name> <port>3306</port> <user>kodiutil</user> <pass>kodimdp</pass> </musicdatabase> </advancedsettings>
Notez que :
Que l'on utilise des bases de données MySQLMariaDB ou SQLite, la sauvegarde des base Kodi est très spécifique : au fil des versions du logiciel, de nouvelles bases sont parfois créées avec un numéro d'identification qui augmente au fur et à mesure mais pas toujours par incrément de 1 (par exemple kodi_music56 puis kodi_music60) et il n'est donc pas totalement simple de créer un script de sauvegarde qui ne soit pas sensible à ces changements.
Avant d'injecter la moindre donnée, il est important de choisir et de configurer les différents scrapers, sinon il faudra supprimer les sources, nettoyer les bases de données et recommencer.
XBMC Kodi est fourni avec un certain nombre de scrapers.
Pour les séries, TheTVDB reste le meilleur (malheureusement, la certification MPAA n'est prise en charge que pour les USA et je n'ai trouvé aucun scraper qui puisse fournir cette information pour la France3)). Dans la majorité des cas, il faudra activer l'option [Ordre des DVDs].
Pour les configurer, il faut se rendre dans les paramètres des extensions, chercher
Dans l'absolu, les films et les épisodes de chaque série pourraient être mis en vrac, XBMC Kodi s'en sortirai (à condition de respecter les conventions de noms des fichiers)… Mais pour les pauvres êtres humains que nous sommes, il vaut mieux un minimum d'organisation.
Les éléments figurant <color orange>en orange</color> dans ce qui suit sont ceux qui sont utilisés par le scraper pour identifier le média et retrouver les bonnes informations sur Internet. Pour augmenter le taux de réussite d'identification, il faut prendre le temps de les vérifier sur le site utilisé par le scraper et respecter par exemple le titre exact (casse comprise) ainsi que l'année de production référencée (quitte à modifier certains éléments par la suite grâce au fichier .nfo).
De mon expérience, le rendu des vues basées sur le logo (ou le clearart par exemple) est magnifique mais ces images ne sont pas toujours disponibles et il faut parfois passer beaucoup de temps à les chercher ou les créer.
…\Films
——-\<color orange><Titre film 1></color> [<color orange><année></color>]
———–\<color orange><Titre film 1></color> [<color orange><année></color>].avi/mkv/…
———–\<color orange><Titre film 1></color> [<color orange><année></color>].srt4)
———–\<color gray><Titre film 1></color> [<color gray><année></color>].nfo
———–\<color gray><Titre film 1></color> [<color gray><année></color>]-fanart.jpg5)
———–\<color gray><Titre film 1></color> [<color gray><année></color>]-poster.jpg6)
———–\<color gray>banner.jpg</color>
———–\<color gray>clearart.png</color>
———–\<color gray>logo.png</color>
…\Séries
——-\<color orange><Titre série 1></color>
———–\<color gray>banner.jpg</color>
———–\<color gray>clearart.png</color>
———–\<color gray>fanart.jpg</color>
———–\<color gray>landscape.jpg</color>
———–\<color gray>logo.png</color>
———–\<color gray>poster.jpg</color>
———–\<color gray>season01-poster.jpg</color>
———–\<color gray>season02-poster.jpg</color>
———–\<color gray>…</color>
———–\<color gray>season-all-poster.jpg</color>
———–\<color gray>season-specials-poster.jpg</color>
———–\<color gray>tvshow.nfo</color>
—————\<color gray>Saison 01</color>
——————-\<color orange>s01e01</color>.<Titre épisode 01>.avi/mkv/…
——————-\<color orange>s01e01</color>.<Titre épisode 01>.nfo
——————-\<color orange>s01e02</color>.<Titre épisode 02>.avi/mkv/…
——————-\<color orange>s01e02</color>.<Titre épisode 02>.nfo
——————-\<color gray>…</color>
—————\<color gray>Saison 02</color>
——————-\<color gray>…</color>
Les sous-dossier par saison sont purement optionnels et leur nom n'a aucune importance. On peut par exemple tout à fait choisir d'utiliser l'année de diffusion, de respecter la fantaisie des auteurs ou de faire en fonction des aléas des grèves d'auteurs… Les exemples suivants sont tout à fait valides :
Les éventuels épisodes hors-saison pourront être rangés dans un dossier « Saison 00 », « Addendum » ou autre. XBMC Kodi les rangeras dans tous les cas dans une saison spéciale (qui utilisera le poster season-specials), à condition, là encore, de respecter la nomenclature de nommage (<color orange>s00e…</color>).
…\Musique
———–\<Artiste 1>
————————\artist.nfo
————————\fanart.jpg
————————\folder.jpg
————————\<color orange><Titre Album 1></color>
———————————\album.nfo
———————————\fanart.jpg
———————————\folder.jpg
———————————\<color orange>Chanson 1.mp3</color>
———————————\<color orange>Chanson 2.mp3</color>
———————————\<color gray>…</color>
————————\<color orange><Titre Album 2></color>
———————————\album.nfo
———————————\fanart.jpg
———————————\folder.jpg
———————————\<color orange>Chanson 1.mp3</color>
———————————\<color orange>Chanson 2.mp3</color>
———————————\<color gray>…</color>
On peut ajouter des infos complémentaires à la fin du nom 'des fichiers
' (pas des dossiers). Pour éviter de perturber le scraper utilisé, il faut respecter certaines règles :
nfo
Certains mots clefs sont reconnus par XBMC Kodi qui réagira en conséquence (si le skin actif en est capable): WebTV, HDTV, … Notez par exemple que l'icône SDTV
existe dans le skin Aeon MQ4 mais que XBMC Kodi ne le reconnait pas. D'autres infos peuvent être utiles même si XBMC Kodi ne les reconnait pas : par exemple, si l'on souhaite avoir une copie en VO d'un film et une autre en VF, il suffit d'ajouter l'info [VO]
à la copie concernée.
Plus les images sont légères, plus l'interface de XBMC Kodi sera fluide. La taille joue évidement un rôle important mais pour les images Jpeg, la compression est tout aussi importante. Tant que la qualité est fixée à au moins 75, l’œil humain est incapable de noter une perte de qualité. 80 semble un bon choix.
Si pour une raison quelconque, un élément (film, série, saison, …) n'affiche pas le bon poster, il suffit de rafraîchir les information en utilisant celles qui sont trouvées en local. C'est infaillible: si une image avec un nom répondant aux conventions est disponible, elle sera utilisée. Si la manipulation est faite sur une série, XBMC Kodi vérifiera les images de toutes les saisons. Le statut vu ou non ne sera pas affecté.
Les sites sur lesquels XBMC Kodi se base pour récupérer les infos concernant un film ou une série sont loin d'être infaillibles…
Quelques exemples:
La méthode pour palier à ces problèmes est la suivantes :
Notez que si un fichier 'nfo' est détecté lors du scan, le scraper demandera de confirmer que l'on souhaite utiliser les infos locales (le fichier 'nfo') au lieu de les récupérer sur Internet.
On pourrait penser que le champ <sorttitle> du fichier 'nfo' est responsable de l'ordre de tri des films d'une saga… Et ben non!
C'est l'année de sortie et donc le champ <year> qui définit cet ordre. Donc en cas de problème dans le tri des films d'une saga, appliquer la méthode de correction d'erreurs de scraping ci-dessus en vérifiant l'année.
Il y a peut-être une option pour changer ce comportement mais puisque ce n'est pas illogique…
Lorsqu'elles sont ajoutées à la médiathèque, les vidéos sont notées comme ayant été ajoutées à la date de dernière modification du fichier (ou sa date de création si celle de modification n'est pas valide). Pour que la date corresponde simplement à celle de l'ajout, il faut modifier le fichier advancedsettings.xml:
<videolibrary> <dateadded>0</dateadded> </videolibrary>
Ici, si l'on rafraîchit les informations d'un film, il sera considéré comme nouvellement ajouté à la médiathèque et viendra donc en tête des films récents.
Les autres valeurs possibles sont:
Pour différentes raisons, il peut être utile de masquer certaines images incluses dans les sources désignées.
Pour cela, il faut éditer le fichier AdvancedSettings.xml (dans le dossier “userdata” ou “portable_data\userdata”)…
<advancedsettings> .../... <pictureextensions> <remove>.png</remove> </pictureextensions> .../... </advancedsettings>
Pour exclure plusieurs extensions, utiliser cette syntyaxe:
<remove>.ex1|.ex2</remove>
L'exemple ci-dessous permet d'exclure les fichiers ou dossiers dont le nom contient '_sfpg_' :
<advancedsettings> .../... <pictureexcludes> <regexp>(_sfpg_)</regexp> </pictureexcludes> .../... </advancedsettings>
Les deux interfaces les plus utiles, à mon sens, sont l'interface par défaut pour le contrôle à distance et XMWW WIMM pour modifier manuellement les informations des médias sans passer par l'édition du fichier nfo. Pour accéder à l'interface par défaut, il suffit d'accéder à son adresse IP depuis un navigateur. Pour l'interface supplémentaire, il faut ajouter /addons à l'adresse.
Cette interface permet donc de modifier les infos directement depuis la base de données.
Pour appliquer les modifications faites dans WIMM aux fichiers nfo afin de s'assurer qu'elles seront conservées quoi qu'il arrive, ne pas oublier d'exporter la médiathèque sous la forme de fichiers multiples en écrasant les fichiers existants.
Si l'icône du studio d'un film n’apparait pas, soit l'information est manquante pour ce film, soit c'est l'icône qui manque dans le thème XBMC Kodi utilisé… Dans le second cas, le plus simple est de se créer sa propre collection d'icônes. On peut partir de celles qui existent dans le thème (dans le dossier “c:\\XBMC\portable_data\addons\skin….\media\flags\studios”) ou à partir du dépôt GitHub dédié: https://github.com/XBMC-Addons/media.icons.studio.white (attention dans ce cas aux studio dont le nom contient un ou plusieurs caractères accentués car ils sont remplacés par “_”). Puis, dans les options du thème (qui doit évidement prendre en charge cette option comme par exemple Aeon MQ3), activer l'option “Utiliser des logos studios alternatifs” dans la rubrique “Art” (il faudra redémarrer XBMC Kodi). Selon le thème, l'option peut se nommer autrement et se situer ailleurs). Ensuite il suffira de compléter la collection…
Le plus simple est souvent de partir du logo de la société, de le passer en négatif si il est majoritairement noir, de rendre le noir transparent, de passer l'image en dégradé de gris, et enfin, de passer à nouveau le noir en transparent. L'image finale doit faire 161 pixels de large sur 109 de haut mais pour bien entrer dans les cadres, il vaut mieux que le logo en lui-même ne fasse pas plus de 94 pixels de haut pour 157 de large.
Quelques créations personnelles:
Pour télécharger les images ci-dessous, faites directement un clic-droit dessus sinon elles seront ouvertes dans une page et probablement sur fond blanc donc vous ne verrez pas grand chose
Attention : le scraper Ciné-Passion propose le distributeur au lieu du studio proprement dit pour de nombreux films ce qui n'est pas forcément souhaitable pour faire une recherche par studio.