<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://kodi.wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=NahsiN</id>
	<title>Official Kodi Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://kodi.wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=NahsiN"/>
	<link rel="alternate" type="text/html" href="https://kodi.wiki/view/Special:Contributions/NahsiN"/>
	<updated>2026-07-05T14:20:03Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://kodi.wiki/index.php?title=HOW-TO:Script_addon&amp;diff=249530</id>
		<title>HOW-TO:Script addon</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=HOW-TO:Script_addon&amp;diff=249530"/>
		<updated>2024-01-17T13:21:59Z</updated>

		<summary type="html">&lt;p&gt;NahsiN: tutorial link points to python3 which is now default in kodi&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav|[[Development]]|[[Add-on development]]}}&lt;br /&gt;
&lt;br /&gt;
This page will outline the basics of creating your first Python script for Kodi. It assumes you&#039;re at least familiar with the basics of Python.&amp;lt;br /&amp;gt;&lt;br /&gt;
If not, we recommend visiting the [https://docs.python.org/3/tutorial/index.html Python tutorial] first, and then returning here.&lt;br /&gt;
&lt;br /&gt;
While a python script can do many things, this tutorial is aimed at creating a window in Kodi.&lt;br /&gt;
&lt;br /&gt;
= Before we get started =&lt;br /&gt;
{{See also|Add-on structure}}&lt;br /&gt;
&lt;br /&gt;
The first step to making an add-on is to put the basic structure in place.&amp;lt;br /&amp;gt;&lt;br /&gt;
Make sure your directory is properly named, e.g. &amp;lt;code&amp;gt;script.my-addon&amp;lt;/code&amp;gt;, this should be the same as your addon id.&amp;lt;br /&amp;gt;&lt;br /&gt;
Once these are done, you can get started writing the actual code for your add-on!&lt;br /&gt;
&lt;br /&gt;
The structure of our addon will look like this:&lt;br /&gt;
&lt;br /&gt;
[[File:script_testwindow_structure.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= The addon.xml file =&lt;br /&gt;
{{See also|Addon.xml}}&lt;br /&gt;
&lt;br /&gt;
In the addon.xml file you define the (unique) id of your addon and the name of the addon.&amp;lt;br /&amp;gt;&lt;br /&gt;
It will also tell Kodi what type of addon it is. Since we&#039;re going to create a script type addon, we need to set our extension point to &#039;xbmc.python.script&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
Also define your python file in the &#039;library&#039; field. This is the file Kodi will execute when you run your script.&lt;br /&gt;
&lt;br /&gt;
This is what your addon.xml will need to look like (the bare minimum):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;yes&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;addon id=&amp;quot;script.testwindow&amp;quot; name=&amp;quot;test window&amp;quot; version=&amp;quot;0.0.1&amp;quot; provider-name=&amp;quot;me&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;requires&amp;gt;&lt;br /&gt;
		&amp;lt;import addon=&amp;quot;xbmc.python&amp;quot; version=&amp;quot;2.25.0&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;/requires&amp;gt;&lt;br /&gt;
	&amp;lt;extension point=&amp;quot;xbmc.python.script&amp;quot; library=&amp;quot;default.py&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;provides&amp;gt;executable&amp;lt;/provides&amp;gt;&lt;br /&gt;
	&amp;lt;/extension&amp;gt;&lt;br /&gt;
	&amp;lt;extension point=&amp;quot;xbmc.addon.metadata&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;summary lang=&amp;quot;en_GB&amp;quot;&amp;gt;window demo script&amp;lt;/summary&amp;gt;&lt;br /&gt;
		&amp;lt;description lang=&amp;quot;en_GB&amp;quot;&amp;gt;a demo script to create a window&amp;lt;/description&amp;gt;&lt;br /&gt;
		&amp;lt;language&amp;gt;&amp;lt;/language&amp;gt;&lt;br /&gt;
		&amp;lt;platform&amp;gt;all&amp;lt;/platform&amp;gt;&lt;br /&gt;
	&amp;lt;/extension&amp;gt;&lt;br /&gt;
&amp;lt;/addon&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Your default.py file =&lt;br /&gt;
:&#039;&#039;See also: [https://codedocs.xyz/xbmc/xbmc/group__python.html &#039;&#039;&#039;kodi python api&#039;&#039;&#039;]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Your python code will look like this, please see the in-line comments for a full explanation of what each line does.&amp;lt;br /&amp;gt;&lt;br /&gt;
Remember these are just the bare basics to get you started, many more options are available to enhance your window.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=python enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
# import the kodi python modules we are going to use&lt;br /&gt;
# see the kodi api docs to find out what functionality each module provides&lt;br /&gt;
import xbmc&lt;br /&gt;
import xbmcgui&lt;br /&gt;
import xbmcaddon&lt;br /&gt;
&lt;br /&gt;
# create a class for your addon, we need this to get info about your addon&lt;br /&gt;
ADDON = xbmcaddon.Addon()&lt;br /&gt;
# get the full path to your addon, decode it to unicode to handle special (non-ascii) characters in the path&lt;br /&gt;
CWD = ADDON.getAddonInfo(&#039;path&#039;).decode(&#039;utf-8&#039;)&lt;br /&gt;
#CWD = ADDON.getAddonInfo(&#039;path&#039;) # for kodi 19 and up..&lt;br /&gt;
&lt;br /&gt;
# add a class to create your xml based window&lt;br /&gt;
class GUI(xbmcgui.WindowXML):&lt;br /&gt;
    # [optional] this function is only needed of you are passing optional data to your window&lt;br /&gt;
    def __init__(self, *args, **kwargs):&lt;br /&gt;
        # get the optional data and add it to a variable you can use elsewhere in your script&lt;br /&gt;
        self.data = kwargs[&#039;optional1&#039;]&lt;br /&gt;
&lt;br /&gt;
    # until now we have a blank window, the onInit function will parse your xml file&lt;br /&gt;
    def onInit(self):&lt;br /&gt;
        # select a view mode, &#039;50&#039; in our case, as defined in the skin file&lt;br /&gt;
        xbmc.executebuiltin(&#039;Container.SetViewMode(50)&#039;)&lt;br /&gt;
        # define a temporary list where we are going to add all the listitems to&lt;br /&gt;
        listitems = []&lt;br /&gt;
        # this will be the first item in the list. &#039;my first item&#039; will be the label that is shown in the list&lt;br /&gt;
        listitem1 = xbmcgui.ListItem(&#039;my first item&#039;)&lt;br /&gt;
        # add this item to our temporary list&lt;br /&gt;
        listitems.append(listitem1)&lt;br /&gt;
        # let&#039;s create another item&lt;br /&gt;
        listitem2 = xbmcgui.ListItem(&#039;my second item&#039;)&lt;br /&gt;
        # and add it to the temporary list as well&lt;br /&gt;
        listitems.append(listitem2)&lt;br /&gt;
        # by default the built-in container already contains one item, the &#039;up&#039; (..) item, let&#039;s remove that one&lt;br /&gt;
        self.clearList()&lt;br /&gt;
        # now we are going to add all the items we have defined to the (built-in) container&lt;br /&gt;
        self.addItems(listitems)&lt;br /&gt;
        # give kodi a bit of (processing) time to add all items to the container&lt;br /&gt;
        xbmc.sleep(100)&lt;br /&gt;
        # this puts the focus on the top item of the container&lt;br /&gt;
        self.setFocusId(self.getCurrentContainerId())&lt;br /&gt;
&lt;br /&gt;
# this is the entry point of your addon, execution of your script will start here&lt;br /&gt;
if (__name__ == &#039;__main__&#039;):&lt;br /&gt;
    # define your xml window and pass these five arguments (more optional items can be passed as well):&lt;br /&gt;
    # 1 &#039;the name of the xml file for this window&#039;, &lt;br /&gt;
    # 2 &#039;the path to your addon&#039;,&lt;br /&gt;
    # 3 &#039;the name of the folder that contains the skin&#039;,&lt;br /&gt;
    # 4 &#039;the name of the folder that contains the skin xml files&#039;&lt;br /&gt;
    # 5 set to True for a media window (a single list window that will list music / videos / pictures), set to False otherwise&lt;br /&gt;
    # 6 [optional] if you need to pass additional data to your window, simply add them to the list&lt;br /&gt;
    # you&#039;ll have to add them as key=value pairs: key1=value1, key2=value2, etc...&lt;br /&gt;
    ui = GUI(&#039;script-testwindow.xml&#039;, CWD, &#039;default&#039;, &#039;1080i&#039;, True, optional1=&#039;some data&#039;)&lt;br /&gt;
    # now open your window. the window will be shown until you close your addon&lt;br /&gt;
    ui.doModal()&lt;br /&gt;
    # window closed, now cleanup a bit: delete your window before the script fully exits&lt;br /&gt;
    del ui&lt;br /&gt;
&lt;br /&gt;
# the end!&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Your script-testwindow.xml file =&lt;br /&gt;
{{See also|Skinning_Manual}}&lt;br /&gt;
&lt;br /&gt;
This is the xml code for the window your script will open. Basically all you need to define is a container (list) which your script will fill with listitems.&amp;lt;br /&amp;gt;&lt;br /&gt;
If you are using images in your xml file, put the inside the &#039;media&#039; folder of your addon.&lt;br /&gt;
&lt;br /&gt;
The subject of skinning is outside of the scope of this tutorial, so please refer for the kodi skinning manual for details.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;window&amp;gt;&lt;br /&gt;
	&amp;lt;views&amp;gt;50&amp;lt;/views&amp;gt;&lt;br /&gt;
	&amp;lt;controls&amp;gt;&lt;br /&gt;
		&amp;lt;control type=&amp;quot;list&amp;quot; id=&amp;quot;50&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;left&amp;gt;500&amp;lt;/left&amp;gt;&lt;br /&gt;
			&amp;lt;top&amp;gt;200&amp;lt;/top&amp;gt;&lt;br /&gt;
			&amp;lt;width&amp;gt;1000&amp;lt;/width&amp;gt;&lt;br /&gt;
			&amp;lt;height&amp;gt;500&amp;lt;/height&amp;gt;&lt;br /&gt;
			&amp;lt;viewtype label=&amp;quot;535&amp;quot;&amp;gt;list&amp;lt;/viewtype&amp;gt;&lt;br /&gt;
			&amp;lt;itemlayout height=&amp;quot;100&amp;quot; width=&amp;quot;1000&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;control type=&amp;quot;label&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;left&amp;gt;20&amp;lt;/left&amp;gt;&lt;br /&gt;
					&amp;lt;top&amp;gt;0&amp;lt;/top&amp;gt;&lt;br /&gt;
					&amp;lt;height&amp;gt;50&amp;lt;/height&amp;gt;&lt;br /&gt;
					&amp;lt;width&amp;gt;960&amp;lt;/width&amp;gt;&lt;br /&gt;
					&amp;lt;font&amp;gt;font13&amp;lt;/font&amp;gt;&lt;br /&gt;
					&amp;lt;label&amp;gt;$INFO[ListItem.Label]&amp;lt;/label&amp;gt;&lt;br /&gt;
				&amp;lt;/control&amp;gt;&lt;br /&gt;
			&amp;lt;/itemlayout&amp;gt;&lt;br /&gt;
			&amp;lt;focusedlayout height=&amp;quot;100&amp;quot; width=&amp;quot;1000&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;control type=&amp;quot;image&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;left&amp;gt;0&amp;lt;/left&amp;gt;&lt;br /&gt;
					&amp;lt;top&amp;gt;0&amp;lt;/top&amp;gt;&lt;br /&gt;
					&amp;lt;width&amp;gt;1000&amp;lt;/width&amp;gt;&lt;br /&gt;
					&amp;lt;height&amp;gt;50&amp;lt;/height&amp;gt;&lt;br /&gt;
					&amp;lt;texture&amp;gt;testwindow-focus.png&amp;lt;/texture&amp;gt;&lt;br /&gt;
				&amp;lt;/control&amp;gt;&lt;br /&gt;
				&amp;lt;control type=&amp;quot;label&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;left&amp;gt;20&amp;lt;/left&amp;gt;&lt;br /&gt;
					&amp;lt;top&amp;gt;0&amp;lt;/top&amp;gt;&lt;br /&gt;
					&amp;lt;height&amp;gt;50&amp;lt;/height&amp;gt;&lt;br /&gt;
					&amp;lt;width&amp;gt;960&amp;lt;/width&amp;gt;&lt;br /&gt;
					&amp;lt;font&amp;gt;font13&amp;lt;/font&amp;gt;&lt;br /&gt;
					&amp;lt;label&amp;gt;$INFO[ListItem.Label]&amp;lt;/label&amp;gt;&lt;br /&gt;
					&amp;lt;textcolor&amp;gt;orange&amp;lt;/textcolor&amp;gt;&lt;br /&gt;
				&amp;lt;/control&amp;gt;&lt;br /&gt;
			&amp;lt;/focusedlayout&amp;gt;&lt;br /&gt;
		&amp;lt;/control&amp;gt;&lt;br /&gt;
	&amp;lt;/controls&amp;gt;&lt;br /&gt;
&amp;lt;/window&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Other options =&lt;br /&gt;
&lt;br /&gt;
I&#039;m sure you&#039;re familiar with the &#039;all roads lead to Rome&#039; saying and, as such, there is another way to handle containers in your window.&amp;lt;br /&amp;gt;&lt;br /&gt;
But, if you&#039;re happy with the way above... you can stop reading now.&lt;br /&gt;
&lt;br /&gt;
Each python window has a built-in container (the one we used in the example above) but it is not mandatory to use the built-in container.&amp;lt;br /&amp;gt;&lt;br /&gt;
you can also define your own container, and as many of them as you need.&lt;br /&gt;
&lt;br /&gt;
Here&#039;s is an example of a window with two custom containers (only commenting on the differences to the example above):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=python enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
import xbmc&lt;br /&gt;
import xbmcgui&lt;br /&gt;
import xbmcaddon&lt;br /&gt;
&lt;br /&gt;
ADDON = xbmcaddon.Addon()&lt;br /&gt;
CWD = ADDON.getAddonInfo(&#039;path&#039;).decode(&#039;utf-8&#039;)&lt;br /&gt;
&lt;br /&gt;
class GUI(xbmcgui.WindowXML):&lt;br /&gt;
    def onInit(self):&lt;br /&gt;
        # define two temporary lists where we are going to add our the listitems to&lt;br /&gt;
        list1 = []&lt;br /&gt;
        list2 = []&lt;br /&gt;
        # create and add some items to the first temporary list&lt;br /&gt;
        listitem1 = xbmcgui.ListItem(&#039;my first item&#039;)&lt;br /&gt;
        list1.append(listitem1)&lt;br /&gt;
        listitem2 = xbmcgui.ListItem(&#039;my second item&#039;)&lt;br /&gt;
        list1.append(listitem2)&lt;br /&gt;
        # create and add some items to the second temporary list&lt;br /&gt;
        listitem3 = xbmcgui.ListItem(&#039;this is one item&#039;)&lt;br /&gt;
        list2.append(listitem3)&lt;br /&gt;
        listitem4 = xbmcgui.ListItem(&#039;this is another item&#039;)&lt;br /&gt;
        list2.append(listitem4)&lt;br /&gt;
        # now define your two containers, the id&#039;s refer to the container id&#039;s you use in your xml file&lt;br /&gt;
        self.cont1 = self.getControl(100)&lt;br /&gt;
        self.cont2 = self.getControl(200)&lt;br /&gt;
        # add all the items in the first list to container 1&lt;br /&gt;
        self.cont1.addItems(list1)&lt;br /&gt;
        # and the items in the second list to container 2&lt;br /&gt;
        self.cont2.addItems(list2)&lt;br /&gt;
        xbmc.sleep(100)&lt;br /&gt;
        # this puts the focus on the first listitem in the first container&lt;br /&gt;
        self.setFocus(self.cont1)&lt;br /&gt;
&lt;br /&gt;
if (__name__ == &#039;__main__&#039;):&lt;br /&gt;
    # media windows only have one builtin list and we need two, therefor we&#039;re not using the built-in container, so do not set the fifth argument (it defaults to False)&lt;br /&gt;
    ui = GUI(&#039;script-testwindow.xml&#039;, CWD, &#039;default&#039;, &#039;1080p&#039;)&lt;br /&gt;
    ui.doModal()&lt;br /&gt;
    del ui&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The xml code you need for two containers looks like this:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;window&amp;gt;&lt;br /&gt;
	&amp;lt;controls&amp;gt;&lt;br /&gt;
		&amp;lt;control type=&amp;quot;list&amp;quot; id=&amp;quot;100&amp;quot;&amp;gt;&lt;br /&gt;
			...&lt;br /&gt;
		&amp;lt;/control&amp;gt;&lt;br /&gt;
		&amp;lt;control type=&amp;quot;list&amp;quot; id=&amp;quot;200&amp;quot;&amp;gt;&lt;br /&gt;
			...&lt;br /&gt;
		&amp;lt;/control&amp;gt;&lt;br /&gt;
	&amp;lt;/controls&amp;gt;&lt;br /&gt;
&amp;lt;/window&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Download =&lt;br /&gt;
&lt;br /&gt;
You can download this test addon here: &amp;lt;br /&amp;gt;&lt;br /&gt;
[https://gitlab.com/ronie/script.testwindow script.testwindow]&lt;/div&gt;</summary>
		<author><name>NahsiN</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Syncing_and_sharing&amp;diff=247973</id>
		<title>Syncing and sharing</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Syncing_and_sharing&amp;diff=247973"/>
		<updated>2023-10-15T19:15:30Z</updated>

		<summary type="html">&lt;p&gt;NahsiN: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav}}&lt;br /&gt;
&lt;br /&gt;
== Sharing the library ==&lt;br /&gt;
This includes sharing video files, watched status, and some settings.&lt;br /&gt;
&lt;br /&gt;
=== Local network ===&lt;br /&gt;
&lt;br /&gt;
;[[Add-on:Emby for Kodi|Emby for {{kodi}}]]&lt;br /&gt;
:{{intro|Add-on:Emby for Kodi}}&lt;br /&gt;
&lt;br /&gt;
;[https://jellyfin.org/docs/general/clients/kodi/#jellyfin-for-kodi Jellyfin for Kodi]&lt;br /&gt;
Similar to PlexKodiConnect, this add-on syncs metadata from your Jellyfin server into the local Kodi database&lt;br /&gt;
&lt;br /&gt;
;[https://jellyfin.org/docs/general/clients/kodi/#jellycon Jellycon]&lt;br /&gt;
JellyCon behaves like a standard Kodi streaming add-on without touching Kodi&#039;s databases. &lt;br /&gt;
&lt;br /&gt;
;[https://github.com/Conceiva/MezzmoKodiPlugin/wiki Mezzmo]&lt;br /&gt;
:Kodi client with Mezzmo backend server for sharing video, music and photos.  Background automatic Mezzmo / Kodi database sync process, resume point / play count sharing, metadata, artwork and much more.  Fully integrates with Kodi but totally friendly with other addons, Kodi data and local Kodi file shares.&lt;br /&gt;
  &lt;br /&gt;
;[[MySQL]]&lt;br /&gt;
:{{intro|MySQL}}&lt;br /&gt;
:{{#lst:MySQL|MariaDB}}&lt;br /&gt;
&lt;br /&gt;
;[https://github.com/croneter/PlexKodiConnect PlexKodiConnect]&lt;br /&gt;
:Uses Plex server as a backend, integrating directly into the Kodi video database.&lt;br /&gt;
&lt;br /&gt;
;[[Add-on:PleXBMC|PleXBMC]]&lt;br /&gt;
:Allows Kodi to play media from a Plex Media Server on Windows, Linux, Raspberry Pi, OSX and more.&lt;br /&gt;
&lt;br /&gt;
;[[UPnP]]&lt;br /&gt;
:{{intro|UPnP}}&lt;br /&gt;
&lt;br /&gt;
=== Over the internet ===&lt;br /&gt;
;[[Add-on:Emby for Kodi|Emby for {{kodi}}]]&lt;br /&gt;
:{{intro|Add-on:Emby for Kodi}}&lt;br /&gt;
&lt;br /&gt;
;[https://jellyfin.org/docs/general/clients/kodi/#jellyfin-for-kodi Jellyfin for Kodi]&lt;br /&gt;
Similar to PlexKodiConnect, this his add-on syncs metadata from your Jellyfin server into the local Kodi database&lt;br /&gt;
&lt;br /&gt;
;[https://jellyfin.org/docs/general/clients/kodi/#jellycon Jellycon]&lt;br /&gt;
JellyCon behaves like a standard Kodi streaming add-on without touching Kodi&#039;s databases. &lt;br /&gt;
&lt;br /&gt;
;[https://github.com/Conceiva/MezzmoKodiPlugin/wiki Mezzmo]&lt;br /&gt;
:Share your video, music and photo media with a browser using Mezzmo.  Interent or local library sharing.  Fully integrated with Kodi. &lt;br /&gt;
  &lt;br /&gt;
;[[MySQL]]&lt;br /&gt;
:{{intro|MySQL}}&lt;br /&gt;
:{{#lst:MySQL|MariaDB}}&lt;br /&gt;
&lt;br /&gt;
;[https://github.com/croneter/PlexKodiConnect PlexKodiConnect]&lt;br /&gt;
:Uses Plex server as a backend, integrating directly into the Kodi video database.&lt;br /&gt;
&lt;br /&gt;
;[[Add-on:PleXBMC|PleXBMC]]&lt;br /&gt;
:Allows Kodi to play media from a Plex Media Server on Windows, Linux, Raspberry Pi, OSX and more.&lt;br /&gt;
&lt;br /&gt;
== Files ==&lt;br /&gt;
* [[File sharing]]&lt;br /&gt;
* [[SMB]]&lt;br /&gt;
* [[UPnP]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Watched status ==&lt;br /&gt;
* [[Add-on:WatchedList]] - local backup/restore of watched list, but can be used with multiple devices.&lt;br /&gt;
* [[Add-on:Trakt]]&lt;br /&gt;
* [[Add-on:MyEpisodes]]&lt;br /&gt;
* [[Add-on:TVShow Time]]&lt;br /&gt;
* [[Add-on:MyEpisodeCalendar]]&lt;br /&gt;
* [[MySQL]]&lt;br /&gt;
* [https://github.com/4lb3rtO/service.nfo.watchedstate.updater Watched state updater add-on] - Update your watchedstate in the nfo files as soon as this happens in the library&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Beaming video, audio, and pictures ==&lt;br /&gt;
* [[AirPlay]]&lt;br /&gt;
* [[UPnP]] (aka DLNA)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pictures ==&lt;br /&gt;
* [[Add-on:iPhoto]]&lt;br /&gt;
* [[Add-on:Flickr]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Related topics ==&lt;br /&gt;
* [[Profiles]] - for using one Kodi install for multiple users&lt;br /&gt;
* [[Backup]] - this page includes info about copying settings from one device to another, in addition to general backup info.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Updated|16}}&lt;br /&gt;
[[Category:Manual]]&lt;/div&gt;</summary>
		<author><name>NahsiN</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Syncing_and_sharing&amp;diff=247972</id>
		<title>Syncing and sharing</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Syncing_and_sharing&amp;diff=247972"/>
		<updated>2023-10-15T19:15:08Z</updated>

		<summary type="html">&lt;p&gt;NahsiN: Add Jellyfin addons to the page and improve spacing&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav}}&lt;br /&gt;
&lt;br /&gt;
== Sharing the library ==&lt;br /&gt;
This includes sharing video files, watched status, and some settings.&lt;br /&gt;
&lt;br /&gt;
=== Local network ===&lt;br /&gt;
&lt;br /&gt;
;[[Add-on:Emby for Kodi|Emby for {{kodi}}]]&lt;br /&gt;
:{{intro|Add-on:Emby for Kodi}}&lt;br /&gt;
&lt;br /&gt;
;[https://jellyfin.org/docs/general/clients/kodi/#jellyfin-for-kodi Jellyfin for Kodi]&lt;br /&gt;
Similar to PlexKodiConnect, this his add-on syncs metadata from your Jellyfin server into the local Kodi database&lt;br /&gt;
&lt;br /&gt;
;[https://jellyfin.org/docs/general/clients/kodi/#jellycon Jellycon]&lt;br /&gt;
JellyCon behaves like a standard Kodi streaming add-on without touching Kodi&#039;s databases. &lt;br /&gt;
&lt;br /&gt;
;[https://github.com/Conceiva/MezzmoKodiPlugin/wiki Mezzmo]&lt;br /&gt;
:Kodi client with Mezzmo backend server for sharing video, music and photos.  Background automatic Mezzmo / Kodi database sync process, resume point / play count sharing, metadata, artwork and much more.  Fully integrates with Kodi but totally friendly with other addons, Kodi data and local Kodi file shares.&lt;br /&gt;
  &lt;br /&gt;
;[[MySQL]]&lt;br /&gt;
:{{intro|MySQL}}&lt;br /&gt;
:{{#lst:MySQL|MariaDB}}&lt;br /&gt;
&lt;br /&gt;
;[https://github.com/croneter/PlexKodiConnect PlexKodiConnect]&lt;br /&gt;
:Uses Plex server as a backend, integrating directly into the Kodi video database.&lt;br /&gt;
&lt;br /&gt;
;[[Add-on:PleXBMC|PleXBMC]]&lt;br /&gt;
:Allows Kodi to play media from a Plex Media Server on Windows, Linux, Raspberry Pi, OSX and more.&lt;br /&gt;
&lt;br /&gt;
;[[UPnP]]&lt;br /&gt;
:{{intro|UPnP}}&lt;br /&gt;
&lt;br /&gt;
=== Over the internet ===&lt;br /&gt;
;[[Add-on:Emby for Kodi|Emby for {{kodi}}]]&lt;br /&gt;
:{{intro|Add-on:Emby for Kodi}}&lt;br /&gt;
&lt;br /&gt;
;[https://jellyfin.org/docs/general/clients/kodi/#jellyfin-for-kodi Jellyfin for Kodi]&lt;br /&gt;
Similar to PlexKodiConnect, this his add-on syncs metadata from your Jellyfin server into the local Kodi database&lt;br /&gt;
&lt;br /&gt;
;[https://jellyfin.org/docs/general/clients/kodi/#jellycon Jellycon]&lt;br /&gt;
JellyCon behaves like a standard Kodi streaming add-on without touching Kodi&#039;s databases. &lt;br /&gt;
&lt;br /&gt;
;[https://github.com/Conceiva/MezzmoKodiPlugin/wiki Mezzmo]&lt;br /&gt;
:Share your video, music and photo media with a browser using Mezzmo.  Interent or local library sharing.  Fully integrated with Kodi. &lt;br /&gt;
  &lt;br /&gt;
;[[MySQL]]&lt;br /&gt;
:{{intro|MySQL}}&lt;br /&gt;
:{{#lst:MySQL|MariaDB}}&lt;br /&gt;
&lt;br /&gt;
;[https://github.com/croneter/PlexKodiConnect PlexKodiConnect]&lt;br /&gt;
:Uses Plex server as a backend, integrating directly into the Kodi video database.&lt;br /&gt;
&lt;br /&gt;
;[[Add-on:PleXBMC|PleXBMC]]&lt;br /&gt;
:Allows Kodi to play media from a Plex Media Server on Windows, Linux, Raspberry Pi, OSX and more.&lt;br /&gt;
&lt;br /&gt;
== Files ==&lt;br /&gt;
* [[File sharing]]&lt;br /&gt;
* [[SMB]]&lt;br /&gt;
* [[UPnP]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Watched status ==&lt;br /&gt;
* [[Add-on:WatchedList]] - local backup/restore of watched list, but can be used with multiple devices.&lt;br /&gt;
* [[Add-on:Trakt]]&lt;br /&gt;
* [[Add-on:MyEpisodes]]&lt;br /&gt;
* [[Add-on:TVShow Time]]&lt;br /&gt;
* [[Add-on:MyEpisodeCalendar]]&lt;br /&gt;
* [[MySQL]]&lt;br /&gt;
* [https://github.com/4lb3rtO/service.nfo.watchedstate.updater Watched state updater add-on] - Update your watchedstate in the nfo files as soon as this happens in the library&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Beaming video, audio, and pictures ==&lt;br /&gt;
* [[AirPlay]]&lt;br /&gt;
* [[UPnP]] (aka DLNA)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pictures ==&lt;br /&gt;
* [[Add-on:iPhoto]]&lt;br /&gt;
* [[Add-on:Flickr]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Related topics ==&lt;br /&gt;
* [[Profiles]] - for using one Kodi install for multiple users&lt;br /&gt;
* [[Backup]] - this page includes info about copying settings from one device to another, in addition to general backup info.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Updated|16}}&lt;br /&gt;
[[Category:Manual]]&lt;/div&gt;</summary>
		<author><name>NahsiN</name></author>
	</entry>
</feed>