Kodi MediaImport Testing

Hi All,
A few years back there was a Google summer of Code project to allow Aggregate Media from Multiple Sources and Present them in Unified Library View. After that GSOC, the work was continued by, Montellese, a Team Kodi Member as a side project.
The concept was used to develop what is now referred as Emby for Kodi, and was copied to make a similar plugin to work with Plex. Also, when Jellyfin was forked from Emby, Jellyfin for Kodi was born.
The development has been slow. However, many improvements have been made to, and bugs removed from Kodi, as a part of the development. A big one being the settings system both internal to kodi, and for addons were developed to facilitate it. There has also been improvements to Kodi’s JSON interface and database access speed which help to make EmbyCon and its children more practical. Previously accessing data that like that was so slow it was impractical. A lot of these changes are already in Kodi, as he made PR’s whenever he found a bug or a way where the Kodi core could be improved. So chances are if you use Kodi you have already benefited from his work on this.
The project has reached a stage where he would love some feedback from users. It is alpha software, so technically savvy users are preferred because they should be able to provide useful, actionable feedback that will allow for some polishing before a more general audience takes a go at it.
It allows Kodi to act in a couple of different Scenarios

Client-Server Setup

  • Multiple instances of Kodi acting as clients to another Kodi instance, as a UPnP Server, in the role of a “Media Provider” serving content and metadata.
  • Multiple instances of Kodi acting as clients, to a media server, in the role of “Media Provider” serving content and metadata. Servers currently being tested, Emby, Plex and Jellyfin.
  • Jellyfin is only partially supported because it lacks an endpoint to report playback data to the server.

It should be noted that Kodi can act as a client to one or more of these servers at the same time. The items from the varied sources are aggregated and appear in the library together.

Distributed System
Owing to the fact that Kodi can act as both client and server, it is possible to have a distributed system where multiple instances of Kodi share content and metadata with each other.

Test builds of the MediaImport branch is available here.
https://forum.kodi.tv/showthread.php?tid=224794&pid=2911447#pid2911447

After installing, go to

Settings>Addons>Install from Zip file. (It should prompt to enable Unknown sources, enable it and go back to install the zip file, using zip file obtained here.

There are no settings for the addon itself so there is nothing to configure there.

  • Settings>Media Sources>All Media Providers/Actice Media Providers (Either should work).
    You should see your server here, sign in.
    If not, choose Add Provider…, then choose ‘EMBY’, and add the URL of your server (http(s)://ipaddress:port)

  • If your server is found, a dialog will pop up allowing you to enter and test your credentials. Do so and click ok.

  • If authenticated, your server will now appear as a provider after the dialog closes. Choose it and choose Add Imports… .

  • You should see the media types available there. Choose one, a dialog should pop up which allows you to choose what libraries are imported and synchronized.

  • The default is All, for importing all libraries of that media type. However, the setting can be changed to choose, enabling you to select which libraries are imported from the multiselect dialog that appears.

  • Having selected your library, or libraries, choose Ok. Synchronization should begin immediately.

  • There is also a Synchronize Tab which allows to edit what info is synchronized but the defaults are best be left as is for testing.

    You can then return to Kodi’s Home screen and play whatever item has been imported. You do not have to wait for the import process to be completed.

    Feedback would be greatly appreciated. As you can guess, when you are working on something for a long time, there might be little things that you overlook, or labels that should have been changed overtime but have not been and so are not as specific as they could be.
    Give it a spin and say what you think about it

Thanks in advance,

CopperYang

1 Like

Test Builds - Feb 5, 2020

ATTENTION: If you were running a previous test-build delete your MyVideosxXX.db.

Changelog Feb 5, 2020

  • General
    • Handle media provider registration and activation in a separate job queue to faster detect changes
    • Fixed not detecting a changed plot for movie sets
    • Support adding (external) subtitles to the currently playing item in Kodi through the Python API
    • Minor changes to the Python media import API
  • mediaimporter.emby/jellyfin
    • make Direct Play configurable
    • Fix crash in emby.player.Player callbacks
    • automatically add external subtitles when starting playback of a video
    • make external subtitles configurable
    • make importing collections / movie sets configurable (enabled by default)
    • support secure websocket connections
    • improve websocket connections to remote Emby servers

Changelog Jan 22, 2020

  • General
    • Support importing movie sets together with movies
    • Fix updating playback metadata on the media provider when having played a video from a widget
  • mediaimporter.emby/jellyfin
    • Fix importing clearlogo artwork
    • Import the following additional artwork: clearart, banner, landscape, discart
    • Fix reporting playback progress to the Emby server
    • Import movie sets together with movies

After installing, go to

  • The MediaImport Repo is Installed but disabled. To enable…
  • Settings>Addons>My Addons>Addon Repository>repository.mediaimport>enable
  • Install from Respository
    • repository.mediaimport
  • mediaimport.emby
  • There are no settings for the addon itself so there is nothing to configure there.
    • There are no settings for the addon itself so there is nothing to configure there.
  • Now go to Settings>Media Sources>All Media Providers/Active Media Providers (Either should work).
    • You should see your server here, sign in.
      If not, choose Add Provider…, then choose ‘EMBY’, and add the URL of your server (http(s)://ipaddress:port)
    • If your server is found, a dialog will pop up allowing you to enter and test your credentials. Do so and click ok.
    • If authenticated, your server will now appear as a provider after the dialog closes.
  • Choose it and choose Add Imports… .
    • You should see the media types available there.
    • Choose one, a dialog should pop up which allows you to choose what libraries are imported and synchronized.
    • The default is All, for importing all libraries of that media type.
    • However, the setting can be changed to choose, enabling you to select which libraries are imported from the multiselect dialog that appears.
    • Having selected your library, or libraries, choose Ok.
    • Synchronization should begin immediately.
    • There is also a Synchronize Tab which allows to edit what info is synchronized but the defaults are best be left as is for testing.
  • You can then return to Kodi’s Home screen and play whatever item has been imported . You do not have to wait for the import process to be completed.

Feedback would be greatly appreciated. As you can guess, when you are working on something for a long time, there might be little things that you overlook, or labels that should have been changed overtime but have not been and so are not as specific as they could be.
Give it a spin and say what you think about it

About Kodi’s MediaImport Project

A few years back there was a Google summer of Code project to allow Aggregate Media from Multiple Sources and Present them in Unified Library View in Kodi. After that GSOC, the work was continued by, Montellese, a Team Kodi Member as a side project.

What’s this all about?

The general idea is to provide a framework to be able to import media items from all kinds of services and locations which are not supported by our current library scanners which are purely filesystem based. Examples are importing some or all items from a plugin or from a UPnP server. This will allow users to directly integrate these items into their usual library so when they go through their library they’ll also see items that are not directly available as a file on their disks/NAS but are available through another service and can play them like any other library item (as long as the service is available).

It allows Kodi to act in a couple of different Scenarios

Client-Server Setup

  • Multiple instances of Kodi acting as clients to another Kodi instance, as a UPnP Server, in the role of a “Media Provider” serving content and metadata.
  • Multiple instances of Kodi acting as clients, to a media server, in the role of “Media Provider” serving content and metadata.
  • There is a plugin written for Emby. Only for videos, no music yet.

It should be noted that Kodi can act as a client to one or more of these servers at the same time. The items from the varied sources are aggregated and appear in the library together.

Distributed System

  • Owing to the fact that Kodi can act as both client and server, it is possible to have a distributed system where multiple instances of Kodi share content and metadata with each other.

The project has reached a stage where he would love some feedback from users. It is alpha software, so technically savvy users are preferred because they should be able to provide useful, actionable feedback that will allow for some polishing before a more general audience takes a go at it. New test test builds of the MediaImport branch is available here.