This is an old revision of the document!
Table of Contents
Kodi
Kodi è il nuovo nome di XBMC, a partire dalla versione 14. Vedere le vecchie pagine XBMC Media Center e Raspberry PI mediacenter con OpenELEC, perché gran parte degli appunti restano validi.
Su Debian 9 Stretch
Si è preferito installare il pacchetto da deb-multimedia.org piuttosto che quello ufficiale fornito da Debian, sia perché è una versione più recente (17.6 invece di 17.1) sia per gestire al meglio le dipendenze da codec proprietari che in Debian non ci sono, ma sono presenti in Deb-Multimedia.
La pacchettizzazione Debian di Kodi dipende da xserver-xorg, tuttavia non abbiamo installato un login manager (lightdm, gdm, o simili) quindi l'host si avvia con il login su console testuale.
È stato necessario installare i seguenti pacchetti con le loro dipendenze:
- kodi
- kodi-standalone
- libgl1-mesa-dri
La formula per avviare kodi suggerita da kodi.wiki è la seguente:
/usr/bin/xinit /usr/bin/dbus-launch --exit-with-session \ /usr/bin/kodi-standalone -- :0 -nolisten tcp vt7
Senza il pacchetto libgl1-mesa-dri l'avvio di xinit/kodi falliva, lasciando nel kodi_crashlog-*.log questo errore:
ERROR: Failed to find matching visual
Per consentire all'utente non privilegiato kodi (creato apposta) di avviare Kodi è stato necessario modificare il file /etc/X11/Xwrapper.config, mettendo le righe:
allowed_users=anybody needs_root_rights=yes
In alcuni post viene consigliato anche di eseguire dpkg-reconfigure x11-common
. Senza queste modifiche l'esecuzione di xinit/kodi da parte dell'utente non-root dava il seguente errore del server X:
Fatal server error: (EE) xf86OpenConsole: Cannot open virtual console 7 (Permission denied)
L'utente kodi appartiene ai gruppi di sistema audio, video e plugdev. Il pacchetto policykit-1 è installato, ma non sono state fatte personalizzazioni. In queste condizioni il menu Power di Kodi consente il reboot e lo spengimento anche all'utente non privilegiato.
L'esecuzione xinit/kodi funziona a questo punto da utente non privilegiato, sia da console locale che da terminale remoto. Per avviare il servizio kodi al bootstrap si è creata una unit systemd:
[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/xinit /usr/bin/dbus-launch --exit-with-session /usr/bin/kodi-standalone -- :0 -nolisten tcp vt7 Restart = always RestartSec = 15 [Install] WantedBy = multi-user.target
e quindi si è installato, abilitato e avviato il servizio:
systemctl daemon-reload systemctl enable kodi.service systemctl start kodi.service
Su Debian 7 Wheezy
Si installa facilmente su Debian Wheezy, basta aggiungere i repository:
deb https://people.debian.org/~rbalint/ppa/xbmc-ffmpeg xbmc-ffmpeg-wheezy-backports/ deb http://http.debian.net/debian wheezy-backports main contrib non-free
Seguire le istruzioni del repository, in sintesi:
apt-get install debian-keyring apt-get install apt-transport-https gpg --keyring /usr/share/keyrings/debian-keyring.gpg -a --export 21E764DF | sudo apt-key add -
Quindi installare i seguenti pacchetti:
- alsa-base e alsa-utils per il supporto audio.
- x11-common e xinit per poter avviare l'ambiente grafico. Non serve un ambiente desktop completo.
- kodi e kodi-bin il software media center vero e proprio.
- upower e acpi-support per gestire lo spengimento/reboot dai menu di Kodi.
Quando serve una dipendenza necessariamente dai bacports:
apt-get -t wheezy-backports install libtag1c2a
Si crea un utente kodi per mandare in esecuzione il software omonimo, deve appartenere ai vari gruppi Debian quali audio, video, plugdev, ecc.
Script start/stop
Lo script per avviare Kodi automaticamente al bootstrap è stato preso dalla pagina Autostart Kodi for Linux, opportunamente aggiornato per il passaggio di nome XBMC → Kodi.
Aggiornamento delle miniature
Per ogni video è possibile visualizzare una miniatura personalizzata al posto di quella creata automaticamente; basta mettere un file JPG oppure PNG nella stessa directory del file video, chiamandolo con lo stesso nome e l'estensione .tbn.
Queste immagini vengono salvate in una cache e in un database, quindi aggiornarle non è semplice. Un metodo drastico è eliminare il file $HOME/.kodi/userdata/Database/Textures13.db
e i file in $HOME/.kodi/userdata/Thumbnails/
.
Pare che esista uno script più efficace: Texture Cache Maintenance utility.
Library data from local .nfo files
- Video ⇒ File ⇒ Aggiungi Video…
- Imposta contenuto
- Questa directory contiene: Film
- Scegli provider di informazioni: Local information only
Something is not working as wanted:
- How to override directory names? The folder.jpg is used as thumbnail, but the name is just the directory name.
- Yatse problem in file browse mode: directories are hidden by the thumbnail of one of the files contained into.
File view, but with library data
- Impostazioni
- Impostazioni Media
- Filmati
- Sostituisci nomi file con titoli Librerie
The year 1601 problem
We incurred into a problem with movie date in Yatse, the Android application to control Kodi remotely: every movie was presented as released in year 1601. It turned out that you must use the <premiered> tag into the .nfo file, instead of the <year> one. The tag must be in the ISO format YYYY-MM-DD, otherwise it will be not parsed.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <!-- created on 2017-12-30 15:09:33 - by MediaManager --> <movie> <title>L'era glaciale 3 - L'alba dei dinosauri</title> <sorttitle>era glaciale 3</sorttitle> <set>Era Glaciale</set> <genre>Animazione</genre> <premiered>2009-01-01</premiered> </movie>
Layout tastiera italiana
On-Screen keyboard
Stranamente Kodi 14.0 su Debian Wheezy non include il layout italiano per la tastiera on-screen (cioè quella utilizzabile anche con il telecomando o il mouse). I vari layout sono definiti nel file /usr/share/kodi/system/keyboardlayouts.xml
e pare che non sia possibile creare un file personalizzato con layout aggiuntivi (almeno con la versione 14 Helix). Questo è un problema perché se si modifica il file, questo sarà sostituito durante un aggiornamento di Kodi.
Ad ogni modo si deve aggiungere una sezione del tipo:
<layout name="Italian QWERTY"> <keyboard> <row>1234567890'ì</row> <row>qwertyuiopè+</row> <row>asdfghjklòàù</row> <row>zxcvbnm,.-</row> </keyboard> <keyboard modifiers="shift"> <row>1234567890?^</row> <row>QWERTYUIOPé*</row> <row>ASDFGHJKLç°§</row> <row>ZXCVBNM;:_</row> </keyboard> <keyboard modifiers="symbol,shift+symbol"> <row>/\|@€#[]<>`~</row> <row>!"£$%&()='?</row> <row><>,.-+*_^§ç</row> </keyboard> </layout>
Quindi dall'interfaccia Kodi si seleziona quali layout tenere a disposizione (se sono più di uno sarà possibile cambiare da uno all'altro durante l'input da tastiera virtuale):
- Sistema, Impostazioni, Aspetto
- Livello impostazioni ⇒ Standard (o superiore)
- Internazionale ⇒ Layout della tastiera
Tastiera hardware
Kodi 14.0 su Debian Wheezy ha un bug per cui la tastiera localizzata non funziona: quando si digita un input con la tastiera fisica nell'interfaccia di Kodi, è attivo sempre il layout US. Questo nonostante che il sistema sia configurato correttamente (la console ad esempio produce le lettere accentate come deve essere):
dpkg-reconfigure locales
dpkg-reconfigure keyboard-configuration
Neanche creando un file /etc/X11/xorg.conf.d/00-keyboard.conf
con l'opportuna sezione InputClass
e l'opzione XkbLayout
si ottiene la localizzazione (eppure la direttiva viene caricata, come si può verificare da /var/log/Xorg.0.log
).
Ancor più stranamente: se da una terminale virtuale (Alt+F1) si modifica l'impostazione della tastiera, allora Kodi inizia a funzionare correttamente, senza neanche riavviarlo:
export DISPLAY=:0 setxkbmap it
Il tutto è molto strano, poichè le impostazioni mostrate con setxkbmap -print -verbose 10
non cambiano prima e dopo aver dato il comando. Tutto sommato pare che il workaround migliore sia quello di impostare un autoexec per Kodi in /home/kodi/.kodi/userdata/autoexec.py
:
import os os.system("setxkbmap it")
Personalizzazione Skin
La skin predefinita di Kodi 17 Krypton si chiama Estuary ed è abbastanza soddisfacente, salvo per la dimensione delle miniature dei video nella modalità Muro (Wall): le immagini sono quadrate e troppo piccole. Nella nostra collezione abbiamo invece preparato tutte le miniature (file .tbn) nel formato 4:3.
È sifficiente modificare alcuni file XML e riavviare Kodi per provare un layout più soddisfacente.
- /usr/share/kodi/addons/skin.estuary/xml/View_500_Wall.xml
- /usr/share/kodi/addons/skin.estuary/xml/View_54_InfoWall.xml
Impostazioni Consigliate per Kodi 17
Il nostro utilizzo di Kodi è orientato alle seguenti caratteristiche:
- Si privilegia la consultazione in modalità file, piuttosto che sfogliare i metadati della library. Questo perché in generale la library organizza i contenuti in modalità piatta (ricerca per genere, anno, tag, ecc.), ma non consente una organizzazione strettamente gerarchica, come invece è naturale nella modalità file.
- I metadati sono forniti localmente con file .nfo e miniature .tbn, non si prevede di fare lo scraping da siti esterni. Questo perché la qualità e la completezza dei fan-siti è abbastanza modesta per i contenuti in italiano.
- Non interessa la suddivisione dei video in Movies, TV Shows e Music Videos. Soprattutto la categoria TV Shows impone vincoli e gerarchie molto articolate e stringenti, si preferisce classificare tutto come movie e sfruttare l'organizzazione gerarchica per directory.
- Come metadati da includere nei file .nfo ci è sufficiente assegnare:
- title
- sorttitle titolo da usare per l'ordinamento
- genre
- premiered data dell'uscita nel formato YYYY-MM-DD
- showtitle, per le serie TV, il nome della serie
- tag, per una eventuale ricerca veloce tramite library (es. il nome della serie TV).
- season, per le serie TV, il numero della stagione
- episode, per le serie TV, il numero dell'episodio, nella stagione
Kodi ha innumerevoli parametri che possono essere personalizzati, ecco alcuni consigli su cosa impostare dal menu Settings (icona a forma di ingranaggio):
- System settings ⇒ Addons ⇒ Updates ⇒ Never check for updates
- Media settings ⇒ General ⇒ Show file extensions (No)
- Media settings ⇒ Videos ⇒ Extract thumbnails from video files (Yes)
- Media settings ⇒ Music⇒ Default provider for album information ⇒ Local information only
- Media settings ⇒ Music⇒ Default provider for artist information ⇒ Local information only
Kodi 17 Cheat Sheet
Vedere Keyboard controls.
Key | Function | Note |
---|---|---|
Space | Pause | |
X | Stop playback | |
- (minus) | Volume down | |
+ (plus) | Volume up | |
C | Contextual menu | Utile ad esempio per mettere in coda una intera directory. |
ESC | Previous menu | |
S | Shutdown menu | Per spengere o riavviare l'host. |
T | Subtitles | Attiva o disattiva i sottotitoli. |
A | Audio delay | Aggiusta la sincronizzazione audio-video. |
TAB | Fullscreen playback | |
\ (backslash) | Fullscreen mode | Fullscreen/windowed mode. |