Publié le : 04/08/2019 00:56:44
Catégories : Tutoriels
Installation de Kodi sur une base Raspbian avec prise en charge de Netflix afin de pouvoir utiliser le RaspberryPi pour d'autres choses (serveur de sauvegarde, résolveur DNS local, serveur web, serveur Firefox Sync, etc.).
La tache est plus compliqué que d'installer une image toute prête telle que LibreElec par exemple (installation de Kodi, installation des extensions et des dépendances, création d'un service systemd pour démarrer Kodi automatiquement au démarrage du RaspberryPi, création d'un utilisateur dédié, etc.).
Mise à jour des dépôts puis installation de kodi et d'une bibliothèque nécessaire.
sudo aptitude update
sudo aptitude install kodi libnss3
Ajustement de la mémoire vidéo GPU
sudo raspi-config
Advanced Options > A3 Memory Split > 512
sudo reboot
Pour vérifier la valeur (doit être à 256M)
sudo vcgencmd get_mem gpu
L'utilisateur kodi sera celui qui exécutera le script systemd. Il sera membre de plusieurs groupes nécessaires pour le multimédia ainsi que le groupe sudo nécessaire lors de l'installation du module Windevine CDM afin de pouvoir lire les DRM sur Netflix.
adduser --disabled-password --gecos "User to run Kodi Media Center" kodi
adduser kodi audio
adduser kodi video
adduser kodi plugdev
adduser kodi input
adduser kodi sudo
Nécessaire comme expliqué précédemment lors de l'installation de Widevine CDM comprenant les commandes exécuté en tant que root : losesetup, mount, fdisk, etc.. Ces commandes sont indiqués lors de l'installation.
kodi ALL=(ALL) NOPASSWD: ALL
Depuis debian Jessie (8) il est préférable de le faire via systemd que l'ancien système d'init appelé SysV sous Debian.
[Unit]
Description = Kodi Media Center
# if you don't need the MySQL DB backend, this should be sufficient
After = systemd-user-sessions.service network.target sound.target
# if you need the MySQL DB backend, use this block instead of the previous
# After = systemd-user-sessions.service network.target sound.target mysql.service
# Wants = mysql.service
[Service]
User = kodi
Group = kodi
Type = simple
ExecStart = /usr/bin/kodi-standalone
Restart = on-failure
RestartSec = 15
[Install]
WantedBy = multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable kodi-standalone.service
sudo systemctl start kodi-standalone.service
Source : le gist GitHub de Cyberek
Note : Si la TV est compatible HDMI CEC (c'est affiché lors du démarrage de Kodi), l'utilisation de la télécommande de la TV est possible.
Settings > System > Input > Keyboard layouts > French
System > Interface > Region > Laguage > French
> Disposition du clavier > cliquer sur French AZERTY et English QWERTY
> Format régional prédéfini > France
Avant d'aller plus loin, vous pouvez tester si vous avez l'image, le son, que la langue est la bonne, qu'une vidéo YouTube est fonctionnelle (nécessite l'installation de l'extension). Testé avec succès sur la version v6.4.1.
Ce qui sera traité ici, l'installation de :
Source : Le GitHub de CastagnaIT
sudo apt install python-pip
Source : la documentation officielle Python sur PIP
Pour l'utilisateur kodi uniquement (tel qu'expliqué dans les pré-requis du GitHub de CatagnaIT)
Installation des dépendances :
sudo aptitude install build-essential python-dev
Source : la documentation officielle sur https://pycryptodome.readthedocs.io
sudo su kodi -c 'pip install --user pycryptodomex'
Vérification de l'installation :
sudo su kodi -c 'pip list | grep pycryptodomex'
pycryptodomex (3.8.1)
sudo aptitude install kodi-inputstream-adaptive
sudo systemctl restart kodi-standalone
Activer l'extension :
Extensions > Mes extensions > Flux d'entrée du lecteur VideoPlayer > Activer
Tout accepter, le téléchargement et l'installation sont automatiques.
Récupérer la dernière version tel qu'indiqué sur le GitHub de CastagnaIT
Note : la méthode employée ici est l'ancienne, passant par Mediafire et non par le dépôt GitHub pour les versions suivantes.
Cette méthode nécessite la mise à jour manuelle de Netflix contrairement à la suivante.
cd /tmp && wget https://download1981.mediafire.com/g1rzaylkiexg/fcgb0pupjzhypqk/plugin.video.netflix_0.14.0beta23.zip
Cette seconde méthode permet de profiter des notifications de mise à jour de l'extension Netflix, voire même des mises à jour automatiques.
cd /tmp && wget
https://github.com/castagnait/repository.castagnait/raw/master/repository.castagnait-1.0.0.zip
Paramètres > Système > Extensions > Sources inconnues > activer
Extensions > Installer depuis un fichier ZIP > racine > tmp > plugin.video.netflix_0.14.0beta23.zip
Ouvrir l'extension Netflix :
Extensions > Mes Extensions > Extensions Vidéos > Netflix > Ouvrir
Note pour l'authentification : pour taper l'arobase et le point, il faut activer les majuscules du clavier.
sudo deluser kodi sudo
sudo rm -f /etc/sudoers.d/99_kodi-nopasswd
sudo systemctl restart kodi-standalone
Vous pouvez contrôler via Smartphone l'interface Kodi, pratique pour taper du texte.
Voir : https://kodi.wiki/view/Official_Kodi_Remote
Vous pouvez activer plus d'informations dans les logs Kodi pour vous permettre d'avir des pistes de résolution. Voir cette page officielle sur comment les activer : https://kodi.wiki/view/Settings/System/Logging
Lors du téléchargement de Widevine CDM :
InputstreamError: inputstream.adaptive is not available
L'utilisateur exécutant kodi n'est pas membre du groupe sudo et ne peut pas les exécuter sans demander de mot de passe.
Se référer à l'étape nommée "Création de l'utilisateur dédié".
sudo sed -i 's/#hdmi_force_hotplug=1/hdmi_force_hotplug=1/' /boot/config.txt
sudo sed -i 's/#hdmi_drive=2/hdmi_drive=2/' /boot/config.txt
Source : https://raspbian-france.fr/hdmi-raspberry-pi-marche-pas-solution
sudo reboot
Vérification :
sudo vcgencmd get_config int | grep -P 'hdmi_drive|hdmi_force_hotplug'
hdmi_drive=2
hdmi_force_hotplug=1
N'hésitez pas à regarder sur la FAQ dédiée au RaspberryPi, il y a des astuces d'optimisation et des informations de dépannages.
MSLError: Message expired and not renewable or missing key request data. Rejected.
Redémarrer le RaspberryPi.
Le répertoire et ses sous-répertoires : /home/kodi/.kodi
Comprend :
La base de données Kodi et les fichiers de configuration, playlist, miniatures, extensions.
Peut être sauvegarder sur tout support autorisant l'écriture par l'utilisateur kodi (Dropbox, Google Drive, Partage NFS, disque dur externe, etc.). Penser à externaliser la sauvegarde, hors du raspberryPi si la carte µSD venait à lâcher.
La sauvegarde peut se programmer à intervalle régulier.
Pensez-y car ça peut être utile pour restaurer lorsqu'un paramètre a été modifié et qu'on ne se souvient plus duquel.
Source : https://kodi.wiki/view/Add-on:Backup
Note : Penser à bien sauvegarder le répertoire précédent.
sudo aptitude update && sudo aptitude upgrade kodi
Par défaut les mises à jours sont en automatiques. Vous pouvez choisir de seulement en être notifié et les installer manuellement plus tard.
Télécharger la nouvelle version sur le RPi. Se référer à la section "Netflix : installation de l'extension (ancienne méthode)".
Paramètres > Extensions > Installer depuis un fichier ZIP > racine > tmp > plugin.video.netflix_XXX.zip
La nouvelle méthode pour Netflix vous notifiera lorsqu'une mise à jour sera disponible, il suffira de la faire directement sur l'interface web Kodi en quelques clics.
Source : https://kodi.wiki/view/Add-on_manager
Une simple ADSL 6Mbps en descendant avec 0,8Mbps en débit montant a été utilisé ici.
La lecture de vidéo YouTube fonctionne parfaitement, comprenant la qualité audio et vidéo, sans ralentissement quelconque.
Vous pourrez même caster des vidéos YouTube depuis votre téléphone si vous avez l'application NewPipe, qui permet entre-autre de consulter YouTube.
Concernant Netflix, l'expérience peut être moins agréable. Il peut y avoir par moment des mises en pause de la vidéo car celle-ci nécessite un chargement. Il peut également y avoir des pixels visible à l'écran par intermitence. Dans le pire des cas, la vidéo ne peut pas être décodé. Une mise à jour de l'extension Netflix peut résoudre ce problème.
De manière générale il est possible de regarder des séries mais également des films. L'expérieur est agréable malgré une simple ADSL 6Mbps.
Il faut garder en tête que cette extension n'est pas officielle, elle peut ne plus fonctionner du jour au lendemain ou suite à une mise à jour par Netflix.