Poradniki

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 operacyjnyLokalizacja katalogu Userdata
AndroidAndroid/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ć.