Table des matières
Kodi
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.
Késako?
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…
De XBMC à Kodi: ce qui change
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).
Du Raspberry Pi 2 au 3
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.
Avant de commencer
XBMC Kodi n'est malheureusement pas parfait .
Certains comportements par défaut sont décevants, voire à la limite de l'aberration:
- les éventuels problèmes qui provoquent une perte des données sont franchement pénibles car il faut à nouveau scraper le contenu et faire une croix sur le statut vu ou non si l'on a pas pensé à exporter régulièrement la médiathèque sous la forme de fichiers multiples (ceci ne s'est pas produit une seule fois avec OpenElec, même à l'occasion des rares plantages )
- par défaut, l'import d'une médiathèque existante ne tiens pas compte du statut “vu” ou “non vu” d'un média
- le thème2) parfait n'existe pas or la création ou même la simple modification des thèmes est complexe et il peut être difficile d'en trouver un qui convienne parfaitement
- enfin, certains bugs traînent depuis longtemps comme l'export de la médiathèque musicale qui, de mon expérience, a toujours été, au mieux, problématique
- pas de méthode de sauvegarde automatique intégrée
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.
Données existantes
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>
Utiliser MySQL
Côté serveur
Les besoins
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.
- Avantage : si la mise à jour provoque un problème, il suffit de réinstaller
XBMCKodi pour retrouver les données dans le même état qu'avant la mise à jour (un avantage majeur) - Inconvénients :
XBMCKodi doit impérativement disposer de privilèges importants sur le moteur de base de données et les anciennes bases ne sont pas purgées automatiquement (mais ce n'est que lorsque l'on a la certitude qu'une version fonctionne que cela devient un défaut)
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.
La méthode
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).
Côté Kodi
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.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 :
- les valeurs indiquées ci-dessus entre les tags <host>,<user> et <pass> doivent évidement être adaptées à votre serveur MySQL
XBMCKodi se chargera lui-même de créer les bases en ajoutant aux noms donnés ici le suffixe numérique en cours, selon sa version (la première partie des noms des bases de données, fixées ci-dessus entre les tags <name>, peuvent être librement choisie)
Sauvegardes MySQL automatiques
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.
Configurer les scrapers
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
Organisation des fichiers
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 fichiers .nfo seront créés automatiquement lors d'un export de la médiathèque sous forme de fichiers multiples mais peuvent être créés manuellement et seront prioritaires lors de la première identification (ce qui peut être utile pour les films inconnus du scraper) et, si un fichier .nfo existe lors d'un rafraîchissement manuel des infos,
XBMCKodi demandera s'il faut l'utiliser ou chercher sur Internet (bien utile pour corriger une erreur de scraping ou forcer une modification des informations) - aucune image n'est indispensable puisque
XBMCKodi est capable de les récupérer sur Internet mais les fournir soi-même permet de s'assurer de celles qui seront utilisées et de les recadrer ou orangeimensionner si nécessaire (le poster et le fanart sont les plus utilisées)
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
…\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
…\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 :
- 2008
- Livre IV
- Tome 3 - Traîtres - Saison 3a et Tome 4 - Fugitifs - Saison 3b
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
…\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>
Infos complémentaires
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 :
- séparer les infos du nom du fichier par exemple avec des crochets
- si on ajoute plusieurs infos, il faut les séparer par un espace et/ou une virgule
- les infos doivent figurer à l'identique dans le nom du fichier source et de l'éventuel fichier
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.
Fanarts, logos, etc.
Images dont la taille est libre
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.
- fanart.jpg : pour un format 16/9, on peut choisir entre une taille de 1920*1080 ou 1280*720, cette dernière étant préférable si le résultat est satisfaisant afin de réduire les ressources nécessaires à leur affichage.
- folder.jpg : la surface optimale de ces images est de 262144 pixels, un algorithme permettant à
XBMCKodi de définir comment adapter l'image pour respecter au mieux le ratio.- posters des films, des séries et de leurs saison: le choix de la taille n'est pas évident car aucune dimension ne donne le nombre de pixel optimal mais 422*620 permet d'obtenir de bons résultats (toutefois il faudra souvent recadrer les affiches pour obtenir ces chiffres et c'est un gros boulot si on ne le fait pas au fur et à mesure).
- jaquettes de CD et vignettes d'artiste: ces images doivent être carrées pour éviter toute déformation ou rognage indésirable. La taille idéale sera donc de 512*512 pixels mais 300*300 donne de bons résultats.
Images dont la taille est imposée
Forcer les fanarts
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é.
Fichiers .nfo: l'arme (presque) ultime
Corriger une erreur de scraping
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:
- le film 'Les Aventures de Clutch Powers' et référencé sur 'AlloCiné' et 'CinéPassion' sous le nom 'Les Aventures de Clutch Power' sans le 's' final
- 'Il était une fois…' est référencé comme des mini séries indépendantes ce qui n'est pas très logique et encore moins pratique mais les fichiers 'nfo' permettent d'en faire une seule série multi-saisons
- si une fiche en français n'existait pas,
XBMCKodi a pu récupérer des infos en anglais que l'on peut vouloir traduire
La méthode pour palier à ces problèmes est la suivantes :
- récupérer normalement les infos disponibles via le scaper, même si elles sont erronées
- exporter la médiathèque concernée sous forme de fichiers séparés afin de générer le(s) fichier(s) 'nfo' correspondant(s) pour le(s) sauvegarder (menu [Système] puis [Vidéo])
- corriger les infos dans le(s) fichier(s) 'nfo' et rafraichir les infos depuis l'écran d'infos détaillées
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.
Ordre de tri des sagas
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…
Configuration avancée
Vidéos récentes
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:
- 1 (valeur par défaut) : date de modification (ou date de création si celle de modification n'est pas valide)
- 2 : date la plus récente entre celle de modification et de création
Masquer certaines images
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”)…
- Exclusion selon formats d'images
<advancedsettings> .../... <pictureextensions> <remove>.png</remove> </pictureextensions> .../... </advancedsettings>
Pour exclure plusieurs extensions, utiliser cette syntyaxe:
<remove>.ex1|.ex2</remove>
- Exclusion selon le nom de fichier ou de dossier
L'exemple ci-dessous permet d'exclure les fichiers ou dossiers dont le nom contient '_sfpg_' :
<advancedsettings> .../... <pictureexcludes> <regexp>(_sfpg_)</regexp> </pictureexcludes> .../... </advancedsettings>
Extensions indispensables
- Scraper ciné Média-Passion, à priori le meilleur de la communauté francophone (soumis à abonnement )7)
- Script Movie Set Artwork Automator qui permet d'attribuer automatiquement les artworks voulus à chaque saga (la version 0.2.2 prévue pour XBMC Frodo ou Gotham fonctionne sans problème avec Kodi). Cet aspect à toujours été délicat avec XBMC et cela ne s'arrange pas (un des rares points noirs de Kodi): sélectionner la saga, invoquer le menu contextuel, sélectionner choisir l'illustration puis [Poster] et enfin appliquer l'image voulue .8)
Interfaces Web Multiples
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.
WIMM
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.
Icônes des studios
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.