Kodi – współdzielenie biblioteki w sieci lokalnej
Posiadając w swojej sieci domowej więcej niż jedno urządzenie z odtwarzaczem kodi na pewno chcielibyśmy mieć współdzieloną bibliotekę, tak żeby informacje w bibliotece pomiędzy urządzeniami synchronizowały się podobnie jak w plex. Korzystanie z baz danych bibliotek współdzielonych umożliwia przechowywanie informacji dotyczących biblioteki wideo lub muzycznej w centralnej bazie danych, dzięki czemu wiele urządzeń może jednocześnie uzyskiwać dostęp do tych samych informacji. Otrzymamy na przykład informacje, które filmy lub odcinki seriali zostały już obejrzane.
W sieci domowej jest to możliwe za pomocą protokołu MySQL. Korzystają z niego bazy danych zarówno MySQL jak i MariaDB. Coraz więcej dystrybucji linuksowych przechodzi na MariaDB kosztem MySQL. Obie bazy są jednak ze sobą kompatybilne.
Aby współdzielenie biblioteki działało, na jednym z urządzeń musi być zainstalowany server MySQL, a pozostałe urządzenia będą się z nią łączyć. Server może pracować zarówno na systemie windows jak i linux. Ja preferuję Ubuntu.
Koniecznie należy pamiętać, aby na każdym z urządzeń była zainstalowana ta sama wersja systemu Kodi.
Instalacja serwera MySQL
sudo apt-get install mysql-server
W czasie instalacji należy podać hasło.
Dla MySQL8 lub wyższej wersji (w Ubuntu 20.04 i nowszychr), należy dodać następującą linię do pliku /etc/mysql/mysql.conf.d/mysqld.cnf:
default_authentication_plugin=mysql_native_password
Zresetować serwer MySQL:
sudo service mysql restart
Teraz uruchamiamy wiersz poleceń MySQL:
mysql -u root -p
Tworzymy użytkownika kodi dla MySQL
CREATE USER 'kodi' IDENTIFIED BY 'password';
Lub dla MySQL8 i nowszych:
CREATE USER 'kodi' IDENTIFIED WITH mysql_native_password BY 'password';
Następnie nadajemy uprawnienia:
GRANT ALL ON *.* TO 'kodi';
I odświeżamy:
flush privileges;
Teraz można opuścić wiersz poleceń:
\q
Konfiguracja klientów kodi
Konfiguracja klientów polega na stworzeniu pliku advancedsettings.xml i skopiowaniu go do katalogu Userdata każdego klienta.
W zależności od systemu operacyjnego katalog Userdata znajduje się w następujących lokalizacjach:
System operacyjny | Lokalizacja katalogu Userdata |
Android | Android/data/org.xbmc.kodi/files/.kodi/userdata/ |
iOS | /private/var/mobile/Library/Preferences/Kodi/userdata/ |
LibreELEC | /storage/.kodi/userdata/ |
Linux | ~/.kodi/userdata/ |
Mac | /Users//Library/Application Support/Kodi/userdata/ |
Nvidia Shield (SMB) | smb://<nvidiashieldurl>/internal/Android/data/org.xbmc.kodi/files/.kodi/userdata |
OSMC | /home/osmc/.kodi/userdata/ |
tvOS | /private/var/mobile/Library/Preferences/Kodi/userdata/ |
Windows | %APPDATA%\Kodi\userdata |
Windows Portable | <Install location chosen by you>\portable_data\userdata\ |
Windows Xbox | %LOCALAPPDATA%\Packages\XBMCFoundation.Kodi_4n2hpmxwrvr6p\LocalCache\Roaming\Kodi\ |
Zawartość pliku advancedsettings.xml powinna wyglądać następująco:
<advancedsettings>
<videodatabase>
<type>mysql</type>
<host>***.***.***.***</host>
<port>3306</port>
<user>kodi</user>
<pass>password</pass>
</videodatabase>
<musicdatabase>
<type>mysql</type>
<host>***.***.***.***</host>
<port>3306</port>
<user>kodi</user>
<pass>password</pass>
</musicdatabase>
<videolibrary>
<importwatchedstate>true</importwatchedstate>
<importresumepoint>true</importresumepoint>
</videolibrary>
</advancedsettings>
Po takim skonfigurowaniu należy do klientów dodać źródła wideo w formacie rozpoznawanym przez kodi. Będą to lokalizacje sieciowe, na przykład:
smb://192.168.1.20/Videos/
Po takim skonfigurowaniu współdzielona biblioteka powinna działać.