04.8.2018, 15:34
Při správě a údržbě Kodi je občas třeba znát prostředí, ve kterém je Kodi instalováno a provozováno. Většinou se o tom, kde který adresář a soubor hledat, hovoří v konkrétních případech, ale určitě nezaškodí, podívat se na tuto problematiku poněkud obecněji a strukturovaněji. Pokusím se tedy tuto problematiku popsat.
Kodi je multiplatformní
Tím, co je velkou předností Kodi, je třeba začít, protože s ohledem na téma je to pro nás jistou komplikací. Základní adresáře Kodi je totiž, s ohledem na použitou platformu, třeba hledat pokaždé jinde. V současné chvíli je možné Kodi provozovat na těchto platformách (seřazeno podle abecedy):
Vnější a vnitřní struktura
Kodi je samo o sobě poměrně rozsáhlá aplikace, s bohatou vnitřní strukturou a má pro klíčové adresáře a další datové struktury vytvořen vlastní "ekosystém", který je nezávislý na použité platformě Hovoříme-li tedy o adresářích, musíme vždy stanovit, z jakého pohledu se na ně díváme (a odkazujeme nebo je jinak využíváme). Drtivá většina uživatelů bude používat pouze vnější strukturu, to znamená pohled z úrovně platformy (operačního systému), pro ty, kteří jdou v případě Kodi do hloubky (tvůrci addon, skinů, hračičkové a podobní), budou potřebovat i pohled vnitřní. O něm se zmíním jen obecně, konkrétní informace získáte na uvedených odkazech na originální dokumenty (většinou na kodi.wiki).
Vnější struktura
Je dána formou a pravidly použitého file systému dané platformy. Jde v podstatě o několik málo adresářů (bude popsáno dále), ve kterých můžeme Kodi a jeho součásti hledat. V popisu se budu tam, kde to znám, snažit použít i systémových proměnných obsahující příslušné cesty, např. $HOME pro Linux, %APPDATA% pro Windows, atd.
Vnitřní struktura
Kodi má pro ni zaveden tzv. special protocol. Zápis cesty ke konkrétnímu adresáři nebo vnitřní datové struktuře je pak dán kombinací odpovídající specifikaci special protocol, případně doplněné o identifikaci převzaté z vnější struktury.
Například special://home/userdata, je specifikace přístupu k adresáři userdata. Část special://home určuje datový adresář Kodi (tzv. HOME, viz dále), část /userdata je pak převzata z vnější struktury. Osvětlí to dva konkrétní příklady:
V Kodi se hovoří o dvou, případně třech a výjimečně i o čtyřech základních adresářích, pro které zavedu symbolické označení:
KODI
Instalační adresář. Adresář, do kterého se instaluje vlastní Kodi, případně další aplikace, základní addons, základní skiny a soubory s popisem výchozí parametrizace. Na některých platformách (nativní LibreELEC) může být umístěn v oblasti, do které není možné běžně zapisovat. Ani u platforem, které zápis do těchto adresářů umožňují, není radno se o to pokoušet. Jednak to může zásadním způsobem ovlivnit funkci instalovaného Kodi, jednak jsou to změny, který se při následujícím upgrade Kodi přepíšou.
HOME
Datový adresář. Adresář, do kterého se ukládají všechny specifické informace dané instalace Kodi, instalované addons, skiny, zadané parametry Kodi, addons i skinů, data knihoven, logy cache a buffery, apod. Význam a roli tohoto adresáře lépe pochopíte z následujícího příkladu. Pokud u provozovaného Kodi, před jeho spuštěním, tento adresář smažete, najede po svém spuštění Kodi do stavu, v jakém bylo po své prvotní instalaci. Home je také adresář, který se vyplatí zálohovat.
TEMP
Dočasný (temporary) adresář. Adresář, do kterého Kodi ukládá "provozní" data. Má charakter základního adresáře pouze u některých platforem. U většiny ostatních je umístěn v HOME adresáři.
CONFIG&CACHE
Konfigurační a cache adresář či adresáře. Adresář obsahuje data, které jsou závislá na použité platformě a nějak přímo či nepřímo souvisí s Kodi a jeho funkcemi, funkcemi jeho addons případně dalšími funkcemi systému. V tomto smyslu existují (co je mi známo) pouze u LibreELEC.
LOG
Hovoříme-li o základních adresářích, je ještě vhodné pohovořit o umístění hlavního logu Kodi. Ten je umístěn v různých adresářích, jejich umístění závisí na použité platformě.
Umístění základních adresářů podle platforem
Android
KODI - /data/org.xbmc.kodi/cache/apk/assets/
HOME - /sdcard/Android/data/org.xbmc.kodi/files/.kodi/
TEMP (umístěn v HOME) - <HOME>/temp/ tedy /sdcard/Android/data/org.xbmc.kodi/files/.kodi/temp/
LOG (umístěn v TEMP) - <TEMP>/kodi.log tedy /sdcard/Android/data/org.xbmc.kodi/files/.kodi/temp/kodi.log
Pozn. Narazil jsem dále na několik dalších verzí toho, jak mohou být adresáře Kodi v tomto systému organizované. Prosím o případné doplnění a také identifikaci jednotlivých variant.
iOS
KODI - /private/var/stash/Applications/Kodi.frappliance/KodiData/KodiHome/
HOME - /private/var/mobile/Library/Preferences/Kodi/
TEMP (umístěn v HOME) - <HOME>/temp tedy /private/var/mobile/Library/Preferences/Kodi/temp/
LOG - /private/var/mobile/Library/Preferences/kodi.log
Linux
KODI - /usr/share/kodi nebo /usr/local/share/kodi/
HOME - $HOME/.kodi/ tedy /home/<USERNAME>/.kodi/
TEMP (umístěn v HOME) - <HOME>/temp/ tedy $HOME/.kodi/temp/ tedy /home/<USERNAME>/.kodi/temp/
LOG (umístěn v TEMP) - <TEMP>/kodi.log tedy $HOME/.kodi/tempkodi.log tedy /home/<USERNAME>/.kodi/temp/kodi.log
LibreELEC
KODI - /usr/share/kodi a /usr/lib/kodi/
HOME - $HOME/.kodi/ tedy /storage/.kodi/
TEMP (umístěn v HOME) - <HOME>/temp/ tedy $HOME/.kodi/temp/ tedy /storage/.kodi/temp/
LOG (umístěn TEMP) - <TEMP>/kodi.log tedy <HOME>/temp/kodi.log tedy $HOME/.kodi/temp/kodi.log tedy /storage/.kodi/temp/kodi.log
CONFIG&CACHE - $HOME/.config/ tedy /storage/.config/ a $HOME/.cache/ tedy /storage/.cache/
Mac OS X
KODI - /Applications/Kodi.app/Contents/Resources/Kodi/
HOME - /Users/<USERNAME>/Library/Application Support/Kodi/
TEMP - /Users/<USERNAME>/.kodi/temp/
LOG - /Users/<USERNAME>/Library/Logs/kodi.log
Windows 10
KODI - %PROGRAMFILES%\Kodi\ tedy C:\Program Files\Kodi\ nebo %PROGRAMFILES(x86)%\Kodi\ tedy C:\Program Files (x86)\Kodi\
HOME - %APPDATA%\Kodi tedy C:\Users\<USERNAME>\AppData\Roaming\Kodi\
TEMP (umístěn v HOME) - %APPDATA%\Kodi tedy C:\Users\<USERNAME>\AppData\Roaming\Kodi\cache\
LOG (umístěn v HOME) - %APPDATA%\Kodi\kodi.log tedy C:\Users\<USERNAME>\AppData\Roaming\Kodi\kodi.log
Pozn. Při jiné konfiguraci může být místo C: použita jiná disková jednotka
Windows 10 (Windows Store, UWP)
KODI - %PROGRAMFILES%\WindowsApp\... tedy C:\Program Files\WindowsApp\... nebo
%PROGRAMFILES%\WindowsApp\... tedy C:\Program Files (x86)\WIndowsAPP\... Pozn. Bude doplněno
HOME - %LOCALAPPDATA%\Packages\XBMCFoundation.Kodi_4n2hpmxwrvr6p\LocalCache\Roaming\Kodi\ tedy
C:\Users\<USERNAME>\AppData\Local\Packages\XBMCFoundation.Kodi_4n2hpmxwrvr6p\LocalCache\Roaming\Kodi\
TEMP - %LOCALAPPDATA%\Packages\XBMCFoundation.Kodi_4n2hpmxwrvr6p\LocalCache\Roaming\Kodi\cache\ tedy
C:\Users\<USERNAME>\AppData\Local\Packages\XBMCFoundation.Kodi_4n2hpmxwrvr6p\LocalCache\Roaming\Kodi\cache\
LOG (umístěn v HOME) - <HOME>\kodi.log tedy
%LOCALAPPDATA%\Packages\XBMCFoundation.Kodi_4n2hpmxwrvr6p\LocalCache\Roaming\Kodi\kodi.log tedy
C:\Users\<USERNAME>\AppData\Local\Packages\XBMCFoundation.Kodi_4n2hpmxwrvr6p\LocalCache\Roaming\Kodi\kodi.log
Pozn. Při jiné konfiguraci může být místo C: použita jiná disková jednotka
XBOX
Pozn. S XBOX nemám žádné zkušenosti, předpokládám, že adresáře by mohly být podobné jako u Windows 10 (Windows Store, UWP). Prosím o pomoc toho, kdo Kodi na XBOX používá.
KODI - Pozn. Bude doplněno
HOME - Pozn. Bude doplněno
TEMP - Pozn. Bude doplněno
LOG - Pozn. Bude doplněno
Adresáře z pohledu vnitřní struktury
Základní adresáře jsou z pohledu vnitřní struktury definované pomocí special protokolu takto:
KODI - special://xbmc - (v některé další verzi bude nahrazeno special://kodi)
HOME - special://home
TEMP - special://temp
LOG - special://logpath
Existuje samozřejmě celá řada dalších, s ohledem na výše uvedené odkazuji sem: https://kodi.wiki/view/Special_protocol
Kodi je multiplatformní
Tím, co je velkou předností Kodi, je třeba začít, protože s ohledem na téma je to pro nás jistou komplikací. Základní adresáře Kodi je totiž, s ohledem na použitou platformu, třeba hledat pokaždé jinde. V současné chvíli je možné Kodi provozovat na těchto platformách (seřazeno podle abecedy):
- Android
- iOS
- Linux - standardní i méně standardní Linuxové distribuce (Debian, Ubuntu, ...). Ty méně standardní jsou většinou určené k instalaci na nějaké méně typické počítače (mediální centra, satelitní přijímače) nebo na specifickém HW (např. RPi)
- Linuxová Kodi distra - LibreELEC, OpenELEC, CoreELEC, OSMC, ... - sestavená z některé Linuxové distribuce a optimalizována pro použití právě jen s Kodi a často i na specifickém HW. Příkladem takového distra je OpenELEC a od něj odvozené LibreELEC, CoreELEC případně jejich další "forks" a klony. Protože já používán LibreELEC, budu se v případě této skupiny vždy odkazovat na ni. Pokud nebude řečeno jinak, všude kde bude uvedeno LibreELEC si víceméně můžete dosadit i OpenLEC, CoreELEC a snad i (bez záruky) OSMC. Specifikou Kodi distra je to, že jeho součástí je i instalace Kodi dané verze. Změní-li se verze Kodi, změní se i verze distra a je ho třeba předinstalovat (update-ovat) celé.
- MAC OS
- Windows - existuje ve dvou základních podobách. První je Kodi, které se do Windows instaluje standardním instalační, procesem, druhé pak Kodi instalované z Windows Store (UWP)
- XBox
Vnější a vnitřní struktura
Kodi je samo o sobě poměrně rozsáhlá aplikace, s bohatou vnitřní strukturou a má pro klíčové adresáře a další datové struktury vytvořen vlastní "ekosystém", který je nezávislý na použité platformě Hovoříme-li tedy o adresářích, musíme vždy stanovit, z jakého pohledu se na ně díváme (a odkazujeme nebo je jinak využíváme). Drtivá většina uživatelů bude používat pouze vnější strukturu, to znamená pohled z úrovně platformy (operačního systému), pro ty, kteří jdou v případě Kodi do hloubky (tvůrci addon, skinů, hračičkové a podobní), budou potřebovat i pohled vnitřní. O něm se zmíním jen obecně, konkrétní informace získáte na uvedených odkazech na originální dokumenty (většinou na kodi.wiki).
Vnější struktura
Je dána formou a pravidly použitého file systému dané platformy. Jde v podstatě o několik málo adresářů (bude popsáno dále), ve kterých můžeme Kodi a jeho součásti hledat. V popisu se budu tam, kde to znám, snažit použít i systémových proměnných obsahující příslušné cesty, např. $HOME pro Linux, %APPDATA% pro Windows, atd.
Vnitřní struktura
Kodi má pro ni zaveden tzv. special protocol. Zápis cesty ke konkrétnímu adresáři nebo vnitřní datové struktuře je pak dán kombinací odpovídající specifikaci special protocol, případně doplněné o identifikaci převzaté z vnější struktury.
Například special://home/userdata, je specifikace přístupu k adresáři userdata. Část special://home určuje datový adresář Kodi (tzv. HOME, viz dále), část /userdata je pak převzata z vnější struktury. Osvětlí to dva konkrétní příklady:
- Adresář userdata se v Libreleec nachází v cestě /storage/.kodi/userdata. To je jeho specifikace z pohledu vnější struktury. V rámci vnitřní struktury je v Kodi pro tuto platformu definován special protocol pro HOME adresář jako special://home, který odpovídá /storage/.kodi, takže specifikace adresáře userdata z pohledu vnitřní struktury bude vypadat takto: special://home/userdata. V rámci vnitřní struktury je ale také definován special protocol pro userdata adresář, takže lze použít i tuto specifikaci: special://userdata
- Adresář skinu Estuary Stream-Cinema se v LibreELEC nachází v cestě /storage/.kodi/addons/skin.estuary.stream-cinema. To je specifikace z pohledu vnější struktury. Použijeme-li ale definice special protocolu, můžeme tuto cestu z pohledu vnitřní struktury přepsat na special://home/addons/skin.estuary.stream-cinema, ale dokonce také na special://skin. To platí ale jen v tom případě, že je skin Estuary Stream-Cinema vybrán jako aktuální skin. Bude-li vybrán skin jiný, bude specifikace special://skin odkazovat pochopitelně na adresář jiný.
V Kodi se hovoří o dvou, případně třech a výjimečně i o čtyřech základních adresářích, pro které zavedu symbolické označení:
KODI
Instalační adresář. Adresář, do kterého se instaluje vlastní Kodi, případně další aplikace, základní addons, základní skiny a soubory s popisem výchozí parametrizace. Na některých platformách (nativní LibreELEC) může být umístěn v oblasti, do které není možné běžně zapisovat. Ani u platforem, které zápis do těchto adresářů umožňují, není radno se o to pokoušet. Jednak to může zásadním způsobem ovlivnit funkci instalovaného Kodi, jednak jsou to změny, který se při následujícím upgrade Kodi přepíšou.
HOME
Datový adresář. Adresář, do kterého se ukládají všechny specifické informace dané instalace Kodi, instalované addons, skiny, zadané parametry Kodi, addons i skinů, data knihoven, logy cache a buffery, apod. Význam a roli tohoto adresáře lépe pochopíte z následujícího příkladu. Pokud u provozovaného Kodi, před jeho spuštěním, tento adresář smažete, najede po svém spuštění Kodi do stavu, v jakém bylo po své prvotní instalaci. Home je také adresář, který se vyplatí zálohovat.
TEMP
Dočasný (temporary) adresář. Adresář, do kterého Kodi ukládá "provozní" data. Má charakter základního adresáře pouze u některých platforem. U většiny ostatních je umístěn v HOME adresáři.
CONFIG&CACHE
Konfigurační a cache adresář či adresáře. Adresář obsahuje data, které jsou závislá na použité platformě a nějak přímo či nepřímo souvisí s Kodi a jeho funkcemi, funkcemi jeho addons případně dalšími funkcemi systému. V tomto smyslu existují (co je mi známo) pouze u LibreELEC.
LOG
Hovoříme-li o základních adresářích, je ještě vhodné pohovořit o umístění hlavního logu Kodi. Ten je umístěn v různých adresářích, jejich umístění závisí na použité platformě.
Umístění základních adresářů podle platforem
Android
KODI - /data/org.xbmc.kodi/cache/apk/assets/
HOME - /sdcard/Android/data/org.xbmc.kodi/files/.kodi/
TEMP (umístěn v HOME) - <HOME>/temp/ tedy /sdcard/Android/data/org.xbmc.kodi/files/.kodi/temp/
LOG (umístěn v TEMP) - <TEMP>/kodi.log tedy /sdcard/Android/data/org.xbmc.kodi/files/.kodi/temp/kodi.log
Pozn. Narazil jsem dále na několik dalších verzí toho, jak mohou být adresáře Kodi v tomto systému organizované. Prosím o případné doplnění a také identifikaci jednotlivých variant.
iOS
KODI - /private/var/stash/Applications/Kodi.frappliance/KodiData/KodiHome/
HOME - /private/var/mobile/Library/Preferences/Kodi/
TEMP (umístěn v HOME) - <HOME>/temp tedy /private/var/mobile/Library/Preferences/Kodi/temp/
LOG - /private/var/mobile/Library/Preferences/kodi.log
Linux
KODI - /usr/share/kodi nebo /usr/local/share/kodi/
HOME - $HOME/.kodi/ tedy /home/<USERNAME>/.kodi/
TEMP (umístěn v HOME) - <HOME>/temp/ tedy $HOME/.kodi/temp/ tedy /home/<USERNAME>/.kodi/temp/
LOG (umístěn v TEMP) - <TEMP>/kodi.log tedy $HOME/.kodi/tempkodi.log tedy /home/<USERNAME>/.kodi/temp/kodi.log
LibreELEC
KODI - /usr/share/kodi a /usr/lib/kodi/
HOME - $HOME/.kodi/ tedy /storage/.kodi/
TEMP (umístěn v HOME) - <HOME>/temp/ tedy $HOME/.kodi/temp/ tedy /storage/.kodi/temp/
LOG (umístěn TEMP) - <TEMP>/kodi.log tedy <HOME>/temp/kodi.log tedy $HOME/.kodi/temp/kodi.log tedy /storage/.kodi/temp/kodi.log
CONFIG&CACHE - $HOME/.config/ tedy /storage/.config/ a $HOME/.cache/ tedy /storage/.cache/
Mac OS X
KODI - /Applications/Kodi.app/Contents/Resources/Kodi/
HOME - /Users/<USERNAME>/Library/Application Support/Kodi/
TEMP - /Users/<USERNAME>/.kodi/temp/
LOG - /Users/<USERNAME>/Library/Logs/kodi.log
Windows 10
KODI - %PROGRAMFILES%\Kodi\ tedy C:\Program Files\Kodi\ nebo %PROGRAMFILES(x86)%\Kodi\ tedy C:\Program Files (x86)\Kodi\
HOME - %APPDATA%\Kodi tedy C:\Users\<USERNAME>\AppData\Roaming\Kodi\
TEMP (umístěn v HOME) - %APPDATA%\Kodi tedy C:\Users\<USERNAME>\AppData\Roaming\Kodi\cache\
LOG (umístěn v HOME) - %APPDATA%\Kodi\kodi.log tedy C:\Users\<USERNAME>\AppData\Roaming\Kodi\kodi.log
Pozn. Při jiné konfiguraci může být místo C: použita jiná disková jednotka
Windows 10 (Windows Store, UWP)
KODI - %PROGRAMFILES%\WindowsApp\... tedy C:\Program Files\WindowsApp\... nebo
%PROGRAMFILES%\WindowsApp\... tedy C:\Program Files (x86)\WIndowsAPP\... Pozn. Bude doplněno
HOME - %LOCALAPPDATA%\Packages\XBMCFoundation.Kodi_4n2hpmxwrvr6p\LocalCache\Roaming\Kodi\ tedy
C:\Users\<USERNAME>\AppData\Local\Packages\XBMCFoundation.Kodi_4n2hpmxwrvr6p\LocalCache\Roaming\Kodi\
TEMP - %LOCALAPPDATA%\Packages\XBMCFoundation.Kodi_4n2hpmxwrvr6p\LocalCache\Roaming\Kodi\cache\ tedy
C:\Users\<USERNAME>\AppData\Local\Packages\XBMCFoundation.Kodi_4n2hpmxwrvr6p\LocalCache\Roaming\Kodi\cache\
LOG (umístěn v HOME) - <HOME>\kodi.log tedy
%LOCALAPPDATA%\Packages\XBMCFoundation.Kodi_4n2hpmxwrvr6p\LocalCache\Roaming\Kodi\kodi.log tedy
C:\Users\<USERNAME>\AppData\Local\Packages\XBMCFoundation.Kodi_4n2hpmxwrvr6p\LocalCache\Roaming\Kodi\kodi.log
Pozn. Při jiné konfiguraci může být místo C: použita jiná disková jednotka
XBOX
Pozn. S XBOX nemám žádné zkušenosti, předpokládám, že adresáře by mohly být podobné jako u Windows 10 (Windows Store, UWP). Prosím o pomoc toho, kdo Kodi na XBOX používá.
KODI - Pozn. Bude doplněno
HOME - Pozn. Bude doplněno
TEMP - Pozn. Bude doplněno
LOG - Pozn. Bude doplněno
Adresáře z pohledu vnitřní struktury
Základní adresáře jsou z pohledu vnitřní struktury definované pomocí special protokolu takto:
KODI - special://xbmc - (v některé další verzi bude nahrazeno special://kodi)
HOME - special://home
TEMP - special://temp
LOG - special://logpath
Existuje samozřejmě celá řada dalších, s ohledem na výše uvedené odkazuji sem: https://kodi.wiki/view/Special_protocol