{{tag>kodi xmbc media-center todo}}
== 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 XBMC((**XB**ox **M**edia **C**enter)), nom qui a dû être abandonné pour des raisons de droits) est un logiciel de type [[wpfr>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... :-D\\
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 [[archives:info:logiciels:kodi:accueil#Organisation des fichiers|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. 8-)
====== 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 {{:wiki:coeur.png?15}})
* 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ème((qui détermine l'aspect esthétique)) 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**:
true
===== 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 XBMC Kodi pour retrouver les données dans le même état qu'avant la mise à jour (un avantage majeur)
* Inconvénients : XBMC Kodi 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
mysql
192.168.100.***
kodi_video
3306
kodiutil
kodimdp
mysql
192.168.100.***
kodi_music
3306
kodiutil
kodimdp
Notez que :
* les valeurs indiquées ci-dessus entre les tags ////,//// et //// doivent évidement être adaptées à votre serveur MySQL
* XBMC Kodi 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 ////, peuvent être librement choisie)
==== Sauvegardes MySQL automatiques ====
{{page>info:logiciels:kodi:sauvegarde_bdd}}
===== 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 France((l'info est d'ailleurs tout simplement difficile à trouver :-())). 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, XBMC Kodi 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 XBMC Kodi 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 en orange 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
>-------\ []
>-----------\ [].avi/mkv/...
>-----------\ [].srt((éventuel fichier de sous-titres, mais XBMC Kodi est aussi capable d'en récupérer à la demande))
>-----------\ [].nfo
>-----------\ []-fanart.jpg((//fanart.jpg// fonctionne aussi))
>-----------\ []-poster.jpg((//folder.jpg// et //poster.jpg// fonctionnent aussi))
>-----------\banner.jpg
>-----------\clearart.png
>-----------\logo.png
===== Séries =====
>...\Séries
>-------\
>-----------\banner.jpg
>-----------\clearart.png
>-----------\fanart.jpg
>-----------\landscape.jpg
>-----------\logo.png
>-----------\poster.jpg
>-----------\season01-poster.jpg
>-----------\season02-poster.jpg
>-----------\...
>-----------\season-all-poster.jpg
>-----------\season-specials-poster.jpg
>-----------\tvshow.nfo
>---------------\Saison 01
>-------------------\s01e01..avi/mkv/...
>-------------------\s01e01..nfo
>-------------------\s01e02..avi/mkv/...
>-------------------\s01e02..nfo
>-------------------\...
>---------------\Saison 02
>-------------------\...
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 (s00e...).
===== Musique =====
>...\Musique
>-----------\
>------------------------\artist.nfo
>------------------------\fanart.jpg
>------------------------\folder.jpg
>------------------------\
>---------------------------------\album.nfo
>---------------------------------\fanart.jpg
>---------------------------------\folder.jpg
>---------------------------------\Chanson 1.mp3
>---------------------------------\Chanson 2.mp3
>---------------------------------\...
>------------------------\
>---------------------------------\album.nfo
>---------------------------------\fanart.jpg
>---------------------------------\folder.jpg
>---------------------------------\Chanson 1.mp3
>---------------------------------\Chanson 2.mp3
>---------------------------------\...
===== 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 à XBMC Kodi 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, XBMC Kodi 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 **** 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 **** 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//:
0
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
.../...
.png
.../...
Pour exclure plusieurs extensions, utiliser cette syntyaxe:
.ex1|.ex2
* 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_' :
.../...
(_sfpg_)
.../...
====== Extensions indispensables ======
* Scraper ciné [[http://passion-xbmc.org/addons/?Page=View&ID=metadata.media.passion.org|Média-Passion]], à priori le meilleur de la communauté francophone (soumis à abonnement :-\)(([[http://geekitude.fr/externe/kodi/metadata.media.passion.org-2.1.4.zip|v2.1.4 en cours le 11/11/2014]]))
* Script [[http://forum.kodi.tv/showthread.php?tid=153502|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 :-(.(([[http://geekitude.fr/externe/kodi/script.moviesetart.frodo.0.2.2.zip|v0.2.2 fonctionnelle avec Kodi le 11/11/2014]]))
* [[http://passion-xbmc.org/addons/?Page=View&ID=plugin.video.allocine|Allociné]] qui permet d'accéder aux bandes annonces des films sortis ou à venir (en triant par dates)(([[http://geekitude.fr/externe/kodi/plugin.video.allocine-2.3.1.zip|v2.1.3 en cours le 11/11/2014]]))
====== 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 8-)
{{gallery> :kodi:studios:?showtitle }}
**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.