Jump to content

embyforkodi (next-gen) 10.X.X support


Go to solution Solved by quickmic,

Recommended Posts

FrostByte
Posted

Ahh, nice. 

It would be nice if they had different names in addons, but I just look for the right one by looking at the version or go to recently updated section because it's usually the service one that gets updated.

quickmic
Posted
1 minute ago, FrostByte said:

It would be nice if they had different names in addons

compatibility reasons. You can access the settings also via context menu.

  • Like 1
quickmic
Posted

New BETA version available 10.0.36:

Delta changelog 10.0.36 -> 10.0.37

fix remote playback client selection
fix remote playback commands
fix nodes sort order
fix minor shutdown issue
add translations

Comment:

node reset is recommended to apply sort order fixes

This might be the next stable version.

  • Like 1
Kyrunner
Posted

@quickmicwhats the next big features that your working on for kodi for  Emby next gen. 

quickmic
Posted (edited)
3 hours ago, Kyrunner said:

@quickmicwhats the next big features that your working on for kodi for  Emby next gen. 

10.X nothing, just bugfixes and release it asap as stable.

11.X Not too much, Kodi's native multiversion support and realtime sync of themes are on the list.

Several minor improvements are also on the agenda, but I wouldn't call them features. Code design is pretty clean in 10.X

Edited by quickmic
Posted

Thanks for the updates, just a small thing:

Please rename the skip intro/credits skin files to "script-emby-xyz", so that skins can provide their own version of these dialogs.

Thanks!

 

plugin.service.emby/resources/skins/default/1080i:

script-emby-SkipCreditsDialog.xml
script-emby-SkipIntroDialogEmbuary.xml
script-emby-SkipIntroDialog.xml

 

--- helper/player.py
+++ helper/player.py
@@ -31,9 +31,9 @@
 SkipCreditsJumpDone = False
 TasksRunning = []
 PlayerEventsQueue = queue.Queue()
-SkipIntroDialog = skipintrocredits.SkipIntro("SkipIntroDialog.xml", *utils.CustomDialogParameters)
-SkipIntroDialogEmbuary = skipintrocredits.SkipIntro("SkipIntroDialogEmbuary.xml", *utils.CustomDialogParameters)
-SkipCreditsDialog = skipintrocredits.SkipIntro("SkipCreditsDialog.xml", *utils.CustomDialogParameters)
+SkipIntroDialog = skipintrocredits.SkipIntro("script-emby-SkipIntroDialog.xml", *utils.CustomDialogParameters)
+SkipIntroDialogEmbuary = skipintrocredits.SkipIntro("script-emby-SkipIntroDialogEmbuary.xml", *utils.CustomDialogParameters)
+SkipCreditsDialog = skipintrocredits.SkipIntro("script-emby-SkipCreditsDialog.xml", *utils.CustomDialogParameters)

 # Player events (queued by monitor notifications)
 def PlayerCommands():
quickmic
Posted (edited)
10 hours ago, OpenHT said:

Thanks for the updates, just a small thing:

Please rename the skip intro/credits skin files to "script-emby-xyz", so that skins can provide their own version of these dialogs.

Thanks!

 

plugin.service.emby/resources/skins/default/1080i:

script-emby-SkipCreditsDialog.xml
script-emby-SkipIntroDialogEmbuary.xml
script-emby-SkipIntroDialog.xml

 

--- helper/player.py
+++ helper/player.py
@@ -31,9 +31,9 @@
 SkipCreditsJumpDone = False
 TasksRunning = []
 PlayerEventsQueue = queue.Queue()
-SkipIntroDialog = skipintrocredits.SkipIntro("SkipIntroDialog.xml", *utils.CustomDialogParameters)
-SkipIntroDialogEmbuary = skipintrocredits.SkipIntro("SkipIntroDialogEmbuary.xml", *utils.CustomDialogParameters)
-SkipCreditsDialog = skipintrocredits.SkipIntro("SkipCreditsDialog.xml", *utils.CustomDialogParameters)
+SkipIntroDialog = skipintrocredits.SkipIntro("script-emby-SkipIntroDialog.xml", *utils.CustomDialogParameters)
+SkipIntroDialogEmbuary = skipintrocredits.SkipIntro("script-emby-SkipIntroDialogEmbuary.xml", *utils.CustomDialogParameters)
+SkipCreditsDialog = skipintrocredits.SkipIntro("script-emby-SkipCreditsDialog.xml", *utils.CustomDialogParameters)

 # Player events (queued by monitor notifications)
 def PlayerCommands():

Yes I will do, may I ask, what's the benefit renaming the xmls? Seems technically unnecessary. Maybe beautification?

Edited by quickmic
Posted
5 hours ago, quickmic said:

Yes I will do, may I ask, what's the benefit renaming the xmls? Seems technically unnecessary. Maybe beautification?

Sure, it's an internal KODI thing.

If an addon skin file has this prefix, KODI will first check if that xml file exists in the current active skin directory, if it's there it will use that instead of the one you provided with your addon. This feature allows skin developers to modify addon dialogs, e.g. if I want to change the look of the skip intro dialog, I could simply create a file named "script-emby-SkipIntroDialog.xml" in my skin directory and KODI would use that instead of yours.

I haven't looked at KODIs source code but last time I checked this feature won't work without that "script-ID-" prefix, possibly to avoid duplicates (e.g. script-emby-context.xml and script-otheraddon-context.xml would be a problem without that prefix) and it makes it easier to identify what skin addon dialog belongs to which addon.

  • Thanks 1
quickmic
Posted

New BETA version available 10.0.38:

Delta changelog 10.0.37 -> 10.0.38

rename dialog files
fix remote playback issue

Comment:

This might be the next stable version.

Posted

Thanks! Just one more performance thing I noticed :

The default logging for the initial sync is very noisy, especially the 100k+ person, episode, etc "ADD" lines are eating a substantial amount of IO and some CPU resources. In this situation the sync is already hammering the sqlite db, so having to deal with this additional IO isn't really helping.

While this isn't a huge problem for modern nvme ssds, it's really noticeable on machines with slower storage (builtin storage, sdcards, hdds). I would suggest to suppress these "ADD" log lines at least for the initial sync.

 

to summarize: changing the log level from info to debug for "ADD" items can reduce the initial sync time on slower systems/storage by almost 1/3

(depends on how big your library is)

core/* (EMBY.core.xyz: ADD lines) :

- xbmc.log(f"EMBY.core.person: ADD [{Item['KodiItemId']}] {Item['Name']}: {Item['Id']}", 1) # LOGINFO
+ xbmc.log(f"EMBY.core.person: ADD [{Item['KodiItemId']}] {Item['Name']}: {Item['Id']}", 0) # LOGDEBUG

 

  • Like 2
quickmic
Posted
On 7/9/2024 at 2:12 PM, OpenHT said:

Thanks! Just one more performance thing I noticed :

The default logging for the initial sync is very noisy, especially the 100k+ person, episode, etc "ADD" lines are eating a substantial amount of IO and some CPU resources. In this situation the sync is already hammering the sqlite db, so having to deal with this additional IO isn't really helping.

While this isn't a huge problem for modern nvme ssds, it's really noticeable on machines with slower storage (builtin storage, sdcards, hdds). I would suggest to suppress these "ADD" log lines at least for the initial sync.

 

to summarize: changing the log level from info to debug for "ADD" items can reduce the initial sync time on slower systems/storage by almost 1/3

(depends on how big your library is)

core/* (EMBY.core.xyz: ADD lines) :

- xbmc.log(f"EMBY.core.person: ADD [{Item['KodiItemId']}] {Item['Name']}: {Item['Id']}", 1) # LOGINFO
+ xbmc.log(f"EMBY.core.person: ADD [{Item['KodiItemId']}] {Item['Name']}: {Item['Id']}", 0) # LOGDEBUG

 

I'll switch it permanently to debug log in 10.X (for all added content) and add a proper fix 11.X.

A proper fix affects many lines in the code, the risk missing/breaking something is too big.

quickmic
Posted

New BETA version available 10.0.39:

Delta changelog 10.0.38 -> 10.0.39

change log modes

Comment:

This might be the next stable version.

quickmic
Posted (edited)

New BETA version available 10.0.40:

Delta changelog 10.0.39 -> 10.0.40

fix realtime sync issue for unsyncable content e.g. photos (plugin crash)

Comment:

This might be the next stable version.

Edited by quickmic
Posted

Hi quickmic.

I'm trying to get Emby for Kodi webOS up and running and it works ok for the most part but seemingly fails to actually play anything.

The debug log shows that it tries again and again to connect to the server and it just spams the following error indefinitely:

2024-07-13 14:33:48.692 T:6156    debug <general>: EMBY.hooks.webservice: send_delay_content: p-227834-0-p-8a3e62201d4a6ca8096df2b75995dc22
2024-07-13 14:33:48.721 T:6153    debug <general>: EMBY.hooks.webservice: send_delay_content: p-946883-0-p-0915b4c3e7406a787e6de97afba5369f
2024-07-13 14:33:48.722 T:6154    debug <general>: EMBY.hooks.webservice: send_delay_content: p-660223-0-p-b44f47e3a7b714c705196f7f48516f31
2024-07-13 14:33:48.760 T:6155    debug <general>: EMBY.hooks.webservice: send_delay_content: p-348-0-p-0d6f7db0b84484c7146bc72801a46a31
2024-07-13 14:33:48.760 T:5968    debug <general>: EMBY.emby.http: Socket MAIN opened
2024-07-13 14:33:48.789 T:5968    error <general>: EMBY.emby.http: Header error MAIN: Undefined error 'content-length'
2024-07-13 14:33:48.789 T:5968  warning <general>: EMBY.emby.http: Request retry 612 / MAIN
2024-07-13 14:33:48.789 T:5968    debug <general>: EMBY.emby.http: Socket MAIN closed
2024-07-13 14:33:48.789 T:5968    debug <general>: Emby.helper.utils: get_url_info: ConnectionString='https://(url of my server):443/' Scheme='https' Hostname='(url of my server)' SubUrl='/' Port='443'

Do you have any idea what I can try troubleshooting? I tried toggle HTTPS2 support and "use websocket", just to try something, to no avail.

Of course it works fine with Kodi on other platforms.

quickmic
Posted
5 minutes ago, Kocane said:

Hi quickmic.

I'm trying to get Emby for Kodi webOS up and running and it works ok for the most part but seemingly fails to actually play anything.

The debug log shows that it tries again and again to connect to the server and it just spams the following error indefinitely:

2024-07-13 14:33:48.692 T:6156    debug <general>: EMBY.hooks.webservice: send_delay_content: p-227834-0-p-8a3e62201d4a6ca8096df2b75995dc22
2024-07-13 14:33:48.721 T:6153    debug <general>: EMBY.hooks.webservice: send_delay_content: p-946883-0-p-0915b4c3e7406a787e6de97afba5369f
2024-07-13 14:33:48.722 T:6154    debug <general>: EMBY.hooks.webservice: send_delay_content: p-660223-0-p-b44f47e3a7b714c705196f7f48516f31
2024-07-13 14:33:48.760 T:6155    debug <general>: EMBY.hooks.webservice: send_delay_content: p-348-0-p-0d6f7db0b84484c7146bc72801a46a31
2024-07-13 14:33:48.760 T:5968    debug <general>: EMBY.emby.http: Socket MAIN opened
2024-07-13 14:33:48.789 T:5968    error <general>: EMBY.emby.http: Header error MAIN: Undefined error 'content-length'
2024-07-13 14:33:48.789 T:5968  warning <general>: EMBY.emby.http: Request retry 612 / MAIN
2024-07-13 14:33:48.789 T:5968    debug <general>: EMBY.emby.http: Socket MAIN closed
2024-07-13 14:33:48.789 T:5968    debug <general>: Emby.helper.utils: get_url_info: ConnectionString='https://(url of my server):443/' Scheme='https' Hostname='(url of my server)' SubUrl='/' Port='443'

Do you have any idea what I can try troubleshooting? I tried toggle HTTPS2 support and "use websocket", just to try something, to no avail.

Of course it works fine with Kodi on other platforms.

The log indicates an problem with Emby's webserver's (http) responses. Could be a proxy issue, a redirect issue and also a plugin issue.

Do you use the latest beta version of the plugin?

Can you trigger the issue/is there a pattern?

Could you create a test account for me on your server for review?

Posted (edited)
32 minutes ago, quickmic said:

The log indicates an problem with Emby's webserver's (http) responses. Could be a proxy issue, a redirect issue and also a plugin issue.

Do you use the latest beta version of the plugin?

Can you trigger the issue/is there a pattern?

Could you create a test account for me on your server for review?

The error is pretty much constantly. At first connection it wouldn't load any art for movies/shows and I could see the log in nginx showing that the client was constantly trying to connect to the live-tv part of Emby (and just showing the above error in the Kodi log). Then I disabled my users access to live tv and it immediately begun downloading the art, but actually starting to play something just fails.

I fear it's very WebOS specific, the entire setup is pretty hacky after all, but you're welcome to get a user to my server to test. Should I PM it to you?

EDIT: Also yes, latest version (just installed it today).

Edited by Kocane
quickmic
Posted
1 hour ago, Kocane said:

I fear it's very WebOS specific, the entire setup is pretty hacky after all, but you're welcome to get a user to my server to test. Should I PM it to you?

Well, I don't have WebOS but maybe I could find something. Yes via PM please.

quickmic
Posted (edited)
3 hours ago, Kocane said:

The error is pretty much constantly. At first connection it wouldn't load any art for movies/shows and I could see the log in nginx showing that the client was constantly trying to connect to the live-tv part of Emby (and just showing the above error in the Kodi log). Then I disabled my users access to live tv and it immediately begun downloading the art, but actually starting to play something just fails.

I fear it's very WebOS specific, the entire setup is pretty hacky after all, but you're welcome to get a user to my server to test. Should I PM it to you?

EDIT: Also yes, latest version (just installed it today).

Thanks for the test account. I can confirm it's a plugin http-issue when the webserver (in your case the nginx proxy you are using) sends chunked data. I'll fix it in next version, please let the testaccount enabled for the moment until I solved the problem.

Edited by quickmic
  • Like 1
Posted

Voting for stable release. 10.0.36..10.0.40 have been solid on my clients. Great job @quickmic

  • Like 1
quickmic
Posted
8 hours ago, d0ogie said:

Voting for stable release. 10.0.36..10.0.40 have been solid on my clients. Great job @quickmic

Agreed, but I need the fix the reported issue from Kocane, even it's an edge case.

quickmic
Posted
17 hours ago, Kocane said:

Awesome, man. Thanks!

I send you a test version via PM.

quickmic
Posted

New BETA version available 10.0.41:

Delta changelog 10.0.40 -> 10.0.41

fix http issue when chunked data are received

Comment:

This might be the next stable version.

quickmic
Posted

New BETA version available 10.0.42:

Delta changelog 10.0.41 -> 10.0.42

fix player crash for edge cases

Comment:

This might be the next stable version.

thacolonel
Posted (edited)

I can't seem to get the userrating field to be populated in the kodi database. Diving into the code, it looks like the field CriticRating is not being tagged to Kodi as userrating. It seems to only be set as rating tomatometerallcritics. 

Any way you can update to populate the userrating field? I'm trying to use it for showing the rottentomatoes score from Emby.

Edited by thacolonel

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...