Jump to content

[Help - Version ChangueBreaks] Emby Server y Xnoppo


Recommended Posts

Posted

Hello to all of you,
I haven't updated emby server for months, I was in some 4.7.x version.

I don't know if you know the Xnoppo tool: https://github.com/siberian-git/Xnoppo
But not to go into too much detail, it is an emby client that connects to emby server and allows through several scripts to play on Oppo media centres (very briefly: for playback on the current client, (usually the client installed on the TV, and sends the movie to the Oppo player).

The problem is that this Xnoppo client, until the 4.7.x update (from emby server) received the information about the status of the movie that was playing: Stop, play, start, even where the movie was going.

Since I upgraded to the latest version of EmbyServer, this Xnoppo client no longer receives information about the status of the embyserver.

I don't want to go into much more technical details, because it's more complex.
But by any chance do you know if something has been changed in the Emby server API that could have affected it?

Thanks

Translated with DeepL.com (free version)

Neminem
Posted

Guess you will need to address this with external client software devs.

Since you already know where the issue is, ask them ...

Issues · siberian-git/Xnoppo (github.com)

Since they are not keeping up with Emby server.

Posted
16 minutes ago, jaycedk said:

Guess you will need to address this with external client software devs.

Since you already know where the issue is, ask them ...

Issues · siberian-git/Xnoppo (github.com)

Since they are not keeping up with Emby server.

Yes, yes, I know that the issue would have to be discussed with them.
I was just asking here before, if the problem could be caused by changes made to the emby server API that could be related to HOW an emby client was connecting some time ago.

I just want to confirm this, to focus on the other project.
Or maybe nothing has been changed, and the problem comes from somewhere else.

thanks

Posted

Hi.  Very hard for us to say since we don't know anything about the internal implementation of the external app.

Changelogs are in the releases on GitHub.

Posted
4 minutes ago, ebr said:

Hi.  Very hard for us to say since we don't know anything about the internal implementation of the external app.

Changelogs are in the releases on GitHub.

I know... I know... I understand it can be difficult.

Nothing, I was just asking in case there was something very clear, that could shed some light.

 

Posted
Quote

this Xnoppo client no longer receives information about the status of the embyserver.

hi, can you please describe this in more detail? Thanks.

Posted
On 5/29/2024 at 8:38 PM, Luke said:

hi, can you please describe this in more detail? Thanks.

Of course:

See, the problem is when from the Xnoppo client we call the emby server API, specifically, when using the calls:

emby/Sessions/Playing
emby/Sessions/Playing/Progress

Both have the same error.

2024-05-30 22:09:37.555 Info Server: http/1.1 POST http://localhost:8096/emby/Sessions/e200b8d7864c5da30df53ff45a3a5b4e/Message?Text=Esperando que se inicie la reproducción: 2s&Header=Notification&TimeoutMs=999. UserAgent: python-requests/2.25.1
2024-05-30 22:09:37.556 Info Server: http/1.1 Response 204 to ::1. Time: 0ms. POST http://localhost:8096/emby/Sessions/e200b8d7864c5da30df53ff45a3a5b4e/Message?Text=Esperando que se inicie la reproducción: 2s&Header=Notification&TimeoutMs=999
2024-05-30 22:09:37.568 Info Server: http/1.1 POST http://localhost:8096/emby/Sessions/Playing/?format=json. UserAgent: python-requests/2.25.1
2024-05-30 22:09:37.569 Error Server: Error processing request
*** Error Report ***
Version: 4.8.7.0
Command line: C:\Users\Frost-PC\AppData\Roaming\Emby-Server\system\EmbyServer.dll -noautorunwebapp
Operating system: Microsoft Windows 10.0.19045
Framework: .NET 6.0.30
OS/Process: x64/x64
Runtime: C:/Users/Frost-PC/AppData/Roaming/Emby-Server/system/System.Private.CoreLib.dll
Processor count: 8
Data path: C:\Users\Frost-PC\AppData\Roaming\Emby-Server\programdata
Application path: C:\Users\Frost-PC\AppData\Roaming\Emby-Server\system
System.ArgumentNullException: System.ArgumentNullException: Value cannot be null. (Parameter 'key')
at System.ThrowHelper.ThrowArgumentNullException(String name)
at System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory)
at Emby.Server.Implementations.Session.SessionManager.OnPlaybackStart(PlaybackStartInfo info, SessionInfo session)
at Emby.Server.Implementations.Services.ServiceController.GetTaskResult(Task task)
at Emby.Server.Implementations.Services.ServiceHandler.ProcessRequestAsync(HttpListenerHost httpHost, IServerApplicationHost appHost, IRequest httpReq, IResponse httpRes, IStreamHelper streamHelper, RestPath restPath, String responseContentType, CancellationToken cancellationToken)
at Emby.Server.Implementations.HttpServer.HttpListenerHost.RequestHandler(IRequest httpReq, ReadOnlyMemory`1 urlString, ReadOnlyMemory`1 localPath, CancellationToken cancellationToken)
Source: System.Collections.Concurrent
TargetSite: Void ThrowArgumentNullException(System.String)


These are the parameters we pass to it:

For "playing":
 

message_data = {
"CanSeek": True,
"ItemId": params["item_id"],
"SessionId": session_info["Id"],
"MediaSourceId": params["media_source_id"],
"AudioStreamIndex": params["audio_stream_index"],
"SubtitleStreamIndex": params["subtitle_stream_index"],
"IsPaused": False,
"IsMuted": False,
"PositionTicks": 0,
"PlayMethod": "DirectPlay",
"RepeatMode": "RepeatNone"
}


for "playing/Progress"

 

message_data = {
"CanSeek": True,
"ItemId": params["item_id"],
"SessionId": session_info["Id"],
"MediaSourceId": params["media_source_id"],
"AudioStreamIndex": params["audio_stream_index"],
"SubtitleStreamIndex": params["subtitle_stream_index"],
"IsPaused": ispaused,
"IsMuted": ismuted,
"PositionTicks": positionticks,
"RunTimeTicks": totalticks,
"PlayMethod": "DirectPlay",
"RepeatMode": "RepeatNone",
"EventName": "timeupdate"
}


thanks @Luke

Posted

Hi, what they need to do is attach a playSessionId to all stream urls and then attach the same value to all start, progress and stop reports. 

Since i assume they are not using our /playbackInfo api, they can just generate a random value such as a guid.

  • Like 1
Posted
On 6/3/2024 at 3:49 AM, Luke said:

Hi, what they need to do is attach a playSessionId to all stream urls and then attach the same value to all start, progress and stop reports. 

Since i assume they are not using our /playbackInfo api, they can just generate a random value such as a guid.

Thank you very much

It worked!
I finally made an extra call to PlaybackInfo, and I got the PlaySessionId back and propagated it through the calls as you said!

Great!

Well, if you don't mind, I'll ask you one last question, in case you could help me in a similar way, since I have another part of the code that also stopped working as before (although it's not as critical).

We have a websocket connected to emby server, waiting for the message ‘UserDataChanged’, when we receive it we make a call to:
/emby/Sessions?ControllableByUserId=xxxxx&DeviceID=xxxxx.

This call returns (when the user tries to play an item) the parameter: ‘NowPlayingItem’.

The problem is that it does NOT always return it, when before it did. This happens for ISO movies (for MKV movies it always returns it). I know Emby doesn't play ISO, but it tries, and that attempt is reflected in the Emby server dashboard now. And as I said, in the old days it always did it in the NowPlayingItem parameter of the UserDataChanged message.

Do you have any idea why? Out of 20 attempts I get it in 1 (to tell you), I always got it before.

Anyway, I don't want to entertain you too much with this, if you have any idea, fine, if not, no problem.
Or if you can think of any other way to get that ISO reproduction attempt, welcome.

thanks

 

  • Like 1
Posted
Quote

We have a websocket connected to emby server, waiting for the message ‘UserDataChanged’, when we receive it we make a call to:
/emby/Sessions?ControllableByUserId=xxxxx&DeviceID=xxxxx.

You make a call to do what?

Quote

This call returns (when the user tries to play an item) the parameter: ‘NowPlayingItem’.

It's only going to be there after while it is actively playing, not before, not after.

  • Like 1
  • 4 weeks later...
Posted
On 04/06/2024 at 10:11, Daicon said:

Thank you very much

It worked!
I finally made an extra call to PlaybackInfo, and I got the PlaySessionId back and propagated it through the calls as you said!

Any chance you can do a pull request of your changes to the main branch of Xnoppo?

  • 5 months later...
GokuTradeDevil
Posted

hi, any solution to that playing now iso file , someone know how to force that ?

GokuTradeDevil
Posted
On 6/4/2024 at 10:11 AM, Daicon said:

Thank you very much

It worked!
I finally made an extra call to PlaybackInfo, and I got the PlaySessionId back and propagated it through the calls as you said!

Great!

Well, if you don't mind, I'll ask you one last question, in case you could help me in a similar way, since I have another part of the code that also stopped working as before (although it's not as critical).

We have a websocket connected to emby server, waiting for the message ‘UserDataChanged’, when we receive it we make a call to:
/emby/Sessions?ControllableByUserId=xxxxx&DeviceID=xxxxx.

This call returns (when the user tries to play an item) the parameter: ‘NowPlayingItem’.

The problem is that it does NOT always return it, when before it did. This happens for ISO movies (for MKV movies it always returns it). I know Emby doesn't play ISO, but it tries, and that attempt is reflected in the Emby server dashboard now. And as I said, in the old days it always did it in the NowPlayingItem parameter of the UserDataChanged message.

Do you have any idea why? Out of 20 attempts I get it in 1 (to tell you), I always got it before.

Anyway, I don't want to entertain you too much with this, if you have any idea, fine, if not, no problem.
Or if you can think of any other way to get that ISO reproduction attempt, welcome.

thanks

 

Did you get any solution to this ?

Posted
1 hour ago, GokuTradeDevil said:

Did you get any solution to this ?

HI, what is the problem you're experiencing?

Posted
17 hours ago, GokuTradeDevil said:

Did you get any solution to this ?

nothingg.. 😞

Posted

Have you updated to Emby server 4.8.10?

  • 4 weeks later...
GokuTradeDevil
Posted
On 12/10/2024 at 6:28 PM, Luke said:

Have you updated to Emby server 4.8.10?

hi, i'm on version 4.9.0.34 beta , the problem is that the iso file doesn't reproduce on my lg tv so what i need is to start reproduction of the iso file like until the update, so i need to modify the profile of the lgtv to reproduce the iso file but i don't know how ! 

The lg tv player doesn,t play the file but will try , then  the bluray will cut the reproduction and will load the iso file , i'm not sure if that was broken with the update of the server or with the update of the lg app !

Posted
On 1/4/2025 at 6:09 PM, GokuTradeDevil said:

hi, i'm on version 4.9.0.34 beta , the problem is that the iso file doesn't reproduce on my lg tv so what i need is to start reproduction of the iso file like until the update, so i need to modify the profile of the lgtv to reproduce the iso file but i don't know how ! 

The lg tv player doesn,t play the file but will try , then  the bluray will cut the reproduction and will load the iso file , i'm not sure if that was broken with the update of the server or with the update of the lg app !

Hi, for smart TV's you will need video files. There is no support for transcoding the iso at this stage, nor can the LG handle it directly.

GokuTradeDevil
Posted

hi, the xnoppo got updated to work with emby server 4.8 and now works perfect !

  • Thanks 1

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...