Bloodred 11 Posted September 18, 2017 Author Posted September 18, 2017 I got around to building the ApiClient from the repo and everything seems to be working, though I'm not sure if I'm using the newer API properly. @@Luke I've still got a quick question regarding playback resume though. I've noticed that UserItemDataDto contains the information I need but looking at the ApiClient there doesn't seem to be a method which simply gets the data without updating anything server-side. Am I missing something? Which method am I supposed to be calling?
Luke 38560 Posted September 18, 2017 Posted September 18, 2017 I don't understand what you're asking, sorry.
Bloodred 11 Posted September 18, 2017 Author Posted September 18, 2017 Just this: which method do I call to get the played back percentage of an item?
Luke 38560 Posted September 18, 2017 Posted September 18, 2017 There's no method, it's just a property on the item objects that come back.
Bloodred 11 Posted September 18, 2017 Author Posted September 18, 2017 Yes, but GetItemAsync(itemId, userId) always returns CompletionPercentage as null, even when that isn't the case. Is GetItemAsync the wrong method to use?
Luke 38560 Posted September 18, 2017 Posted September 18, 2017 That's not for playstate. All user specific data will be under the UserData subobject.
Bloodred 11 Posted September 18, 2017 Author Posted September 18, 2017 Yeah I see, I incorrectly assumed all the information returned would be user-specific since the method takes a user ID. I'm getting the right value now, thanks!
Bloodred 11 Posted September 19, 2017 Author Posted September 19, 2017 I've decided to release a version with PlayPause support, though I've noticed mostly by accident (restarted my server) that the client doesn't automatically reconnect anymore. I'll have a look at that and do something about it in a future release, but for now there's v1.0.5.0 on GitHub.
Luke 38560 Posted September 19, 2017 Posted September 19, 2017 If you're referring to web socket, it's not a good pattern that we were using before to automatically reconnect with a timer. if you really want that then you can just add a timer in your app that calls the EnsureWebSocket method. But instead you should look to do it after user interaction, e.g. app resume, navigation, etc.
Bloodred 11 Posted September 19, 2017 Author Posted September 19, 2017 I was thinking of adding a timer outside of the client, yeah. I would just do that on user interaction if I could, but nobody interacts with E2PL directly at all. It just waits in the background until it gets a Play command from the server, so if the connection is interrupted it has to be re-established automatically. I'll probably add some sort of periodic connection check so the user doesn't have to restart the app manually if the server goes down.
KMBanana 100 Posted September 20, 2017 Posted September 20, 2017 I've decided to release a version with PlayPause support, though I've noticed mostly by accident (restarted my server) that the client doesn't automatically reconnect anymore. I'll have a look at that and do something about it in a future release, but for now there's v1.0.5.0 on GitHub. Appreciate the quick response! Thanks!
Bloodred 11 Posted September 20, 2017 Author Posted September 20, 2017 No problem, let me know if you run into any more issues! Actually I've found another one myself, v1.0.5.0 may sometimes hang when attempting to exit or when changing configuration. Fixed that in v1.0.5.1, but auto-reconnect is still not back yet.
Jdiesel 1214 Posted September 20, 2017 Posted September 20, 2017 I need to try this out when I get some free time. How can I launch playback on the external player? Do I need to use an app like ET with an external player configured to start the playback or can I use the "Play On" function to initiate playback from the web or mobile app directly to the external player? Either way being able to use MPC-HC might get me to try out ET again. Thanks for sharing this.
Bloodred 11 Posted September 20, 2017 Author Posted September 20, 2017 (edited) You don't need Emby Theater. After you configure & run E2PL, it will appear by itself in the "Play On" menu, you can then select it and initiate playback from the web interface or from an Emby mobile app. You also get basic remote control functionality (Play/Pause/Stop/Volume/Seeking) and automatic viewing progress syncing. Playback is done straight through a network share (which you need to set up if you don't have it already), so there's no transcoding. E2PL is a simple program though, it's not meant to handle complex scenarios or replace full-blown media centers like ET, Kodi or such. My goal with it is basically to watch videos on my desktop PC while still keeping the Emby library tidy & in sync with all other devices. Edited September 20, 2017 by Bloodred
Bloodred 11 Posted September 22, 2017 Author Posted September 22, 2017 Auto-reconnect is now back, in v1.1.0.0. Don't worry too much if you see JSON-related exceptions in the log coming from the ApiClient, as they do not affect functionality as far as I can tell. ----- Hey @@Luke, I've noticed that the new ApiClient versions log a lot of JsonReaderExceptions, though this does not seem to affect the functionality of the methods and events I use for E2PL. I don't think I'm misusing anything, as the exceptions appear to be coming from internal deserialization of WebSocket messages, due to incorrect JSON. Any idea why? They look like this: 2017-09-23 00:52:47,226 [20 ] ERROR EmbyExternalPlayerLauncher.ServerConnect.Logging.EmbyLogger - Error in OnMessageReceivedInternal Newtonsoft.Json.JsonReaderException: Unterminated string. Expected delimiter: ". Path 'Data.NowPlayingItem.Path', line 1, position 4096. at Newtonsoft.Json.JsonTextReader.ReadStringIntoBuffer(Char quote) at Newtonsoft.Json.JsonTextReader.ParseValue() at Newtonsoft.Json.JsonTextReader.Read() at Newtonsoft.Json.JsonReader.Skip() at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.SetExtensionData(JsonObjectContract contract, JsonProperty member, JsonReader reader, String memberName, Object o) at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id) at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue) at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue) at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent) at Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType) at Newtonsoft.Json.JsonConvert.DeserializeObject(String value, Type type, JsonSerializerSettings settings) at Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value, JsonSerializerSettings settings) at Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value) at Emby.ApiClient.NewtonsoftJsonSerializer.DeserializeFromString[T](String text) at Emby.ApiClient.ApiClient.GetMessageType(String json) at Emby.ApiClient.ApiClient.OnMessageReceivedInternal(String json) at Emby.ApiClient.ApiClient.OnMessageReceived(String json) 2017-09-23 00:52:47,435 [20 ] ERROR EmbyExternalPlayerLauncher.ServerConnect.Logging.EmbyLogger - Error in OnMessageReceivedInternal Newtonsoft.Json.JsonReaderException: Unexpected character encountered while parsing value: d. Path '', line 0, position 0. at Newtonsoft.Json.JsonTextReader.ParseValue() at Newtonsoft.Json.JsonTextReader.Read() at Newtonsoft.Json.JsonReader.ReadForType(JsonContract contract, Boolean hasConverter) at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent) at Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType) at Newtonsoft.Json.JsonConvert.DeserializeObject(String value, Type type, JsonSerializerSettings settings) at Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value, JsonSerializerSettings settings) at Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value) at Emby.ApiClient.NewtonsoftJsonSerializer.DeserializeFromString[T](String text) at Emby.ApiClient.ApiClient.GetMessageType(String json) at Emby.ApiClient.ApiClient.OnMessageReceivedInternal(String json) at Emby.ApiClient.ApiClient.OnMessageReceived(String json) 2017-09-23 00:52:47,635 [20 ] ERROR EmbyExternalPlayerLauncher.ServerConnect.Logging.EmbyLogger - Error in OnMessageReceivedInternal Newtonsoft.Json.JsonReaderException: Additional text encountered after finished reading JSON content: ,. Path '', line 1, position 0. at Newtonsoft.Json.JsonTextReader.Read() at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent) at Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType) at Newtonsoft.Json.JsonConvert.DeserializeObject(String value, Type type, JsonSerializerSettings settings) at Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value, JsonSerializerSettings settings) at Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value) at Emby.ApiClient.NewtonsoftJsonSerializer.DeserializeFromString[T](String text) at Emby.ApiClient.ApiClient.GetMessageType(String json) at Emby.ApiClient.ApiClient.OnMessageReceivedInternal(String json) at Emby.ApiClient.ApiClient.OnMessageReceived(String json) 2017-09-23 00:52:47,835 [20 ] ERROR EmbyExternalPlayerLauncher.ServerConnect.Logging.EmbyLogger - Error in OnMessageReceivedInternal Newtonsoft.Json.JsonReaderException: Unexpected character encountered while parsing value: a. Path '', line 0, position 0. at Newtonsoft.Json.JsonTextReader.ParseValue() at Newtonsoft.Json.JsonTextReader.Read() at Newtonsoft.Json.JsonReader.ReadForType(JsonContract contract, Boolean hasConverter) at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent) at Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType) at Newtonsoft.Json.JsonConvert.DeserializeObject(String value, Type type, JsonSerializerSettings settings) at Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value, JsonSerializerSettings settings) at Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value) at Emby.ApiClient.NewtonsoftJsonSerializer.DeserializeFromString[T](String text) at Emby.ApiClient.ApiClient.GetMessageType(String json) at Emby.ApiClient.ApiClient.OnMessageReceivedInternal(String json) at Emby.ApiClient.ApiClient.OnMessageReceived(String json) 2017-09-23 00:52:48,036 [20 ] ERROR EmbyExternalPlayerLauncher.ServerConnect.Logging.EmbyLogger - Error in OnMessageReceivedInternal Newtonsoft.Json.JsonReaderException: Unexpected character encountered while parsing value: P. Path '', line 0, position 0. at Newtonsoft.Json.JsonTextReader.ParseValue() at Newtonsoft.Json.JsonTextReader.Read() at Newtonsoft.Json.JsonReader.ReadForType(JsonContract contract, Boolean hasConverter) at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent) at Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType) at Newtonsoft.Json.JsonConvert.DeserializeObject(String value, Type type, JsonSerializerSettings settings) at Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value, JsonSerializerSettings settings) at Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value) at Emby.ApiClient.NewtonsoftJsonSerializer.DeserializeFromString[T](String text) at Emby.ApiClient.ApiClient.GetMessageType(String json) at Emby.ApiClient.ApiClient.OnMessageReceivedInternal(String json) at Emby.ApiClient.ApiClient.OnMessageReceived(String json)
HaraldBluetooth 15 Posted September 27, 2018 Posted September 27, 2018 (edited) Hi, thanks for this nice app, just what I need I have installed your program on my local PC (Windows 10 Pro fully updated), where EMBY server is running, with a working movie library from several external disks connected via USB3. When I choose your launcher in the webbrowser (Both EDGE and Chrome) and try to play, nothing happens. I've already had the 64 bit version of MPC-HC installed before I installed the 32 bit version too. I get this in the log file:2018-09-27 12:08:23,023 [53 ] ERROR EmbyExternalPlayerLauncher.ServerConnect.EmbyPlayerConnector - Play command failed.MediaBrowser.Model.Net.HttpException: One or more errors occurred. ---> System.AggregateException: One or more errors occurred. ---> System.Net.WebException: The remote server returned an error: (500) Internal Server Error. at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult) at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) --- End of inner exception stack trace --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task) at Emby.ApiClient.Net.HttpWebRequestClient.<GetResponse>d__10.MoveNext() --- End of inner exception stack trace --- at Emby.ApiClient.Net.HttpWebRequestClient.<GetResponse>d__10.MoveNext()--- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Emby.ApiClient.Net.HttpWebRequestClient.<SendAsync>d__13.MoveNext()--- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Emby.ApiClient.ApiClient.<SendAsync>d__30.MoveNext()--- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Emby.ApiClient.ApiClient.<GetItemAsync>d__40.MoveNext()--- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at EmbyExternalPlayerLauncher.ServerConnect.EmbyPlayerConnector.<Client_PlayCommand>d__26.MoveNext() Can you please help me? Edited September 27, 2018 by HaraldBluetooth
Bloodred 11 Posted September 27, 2018 Author Posted September 27, 2018 Hi! That looks like the server is returning a HTTP 500 error. Generally speaking that error code means the server encountered some sort of unexpected error, so it could be helpful for you to check the server log to see if there is any information there about what the server failed to do exactly. Since this is happening when E2PL is trying to process a Play command and you're not seeing a player start, it probably means E2PL tries to retrieve information about the file you want to play but the request to the server fails. It could be that there's something wrong with your Emby server (not sure what) but it could also happen if the Emby client E2PL uses is no longer compatible with the server version you have. What server version are you running? It's pretty bad news if it turns out the Emby client is incompatible since an update version does not seem to be available. Everything is working for me but my server is older. I'll investigate when I have some time, maybe over the weekend.
HaraldBluetooth 15 Posted September 29, 2018 Posted September 29, 2018 (edited) Thanks for your answer Bloodred. My server version is latest beta 3.6.0.49. I have the same problem with the app MPCRemote, that worked for me until server version 3.6.0.30. I don't know if this is related or something else is wrong. I have tried with many different movies, that all play fine directly in the web-browser, or if I play them in MPC-HC from file explorer. Emby Theater also play these files fine both directly and with MPC-HC as external player. The movies are almost all 720p or 1080p x264 mkv's. Edited September 29, 2018 by HaraldBluetooth
Bloodred 11 Posted September 30, 2018 Author Posted September 30, 2018 I've installed the latest beta myself and sadly it does seem to be a mismatch between the newest available Emby API client and the beta, as in the server complains about the input not being in the correct format which I assume happens due to the expected format changing in the new server. I can't find an updated version of the Emby API client package yet, maybe it hasn't been released since the server itself is still in beta. Anyway, this means there's nothing wrong with your setup in particular, but that E2PL is currently incompatible with this version of the server. I'll investigate more to see if I can get it fixed without a new Emby client package, but in the meantime the obvious workaround would be to use an older version of the Emby server if you need to get this working.
HaraldBluetooth 15 Posted September 30, 2018 Posted September 30, 2018 Thanks Bloodred, I will wait for your update. Unfortunately I can't downgrade to an old server version, because there was some database changes i version 3.6.0.31, so my workaround is to start the movie from file explorer or use Emby Theater.
Bloodred 11 Posted September 30, 2018 Author Posted September 30, 2018 I've tried to build the latest version of the API client I could find from source (last change 5 months ago) but this doesn't seem to address the compatibility issue with the beta server. I think we'll have to wait for an official update to be released, at which point I hope to be able to easily integrate the new version into E2PL.
Bloodred 11 Posted September 30, 2018 Author Posted September 30, 2018 (edited) In short: trying to call the GetItemAsync method on the ApiClient (v3.1.0 nuget package) when the Emby server is the latest 3.6.0.50 beta fails with a HTTP 500 error. Checking the server's log reveals an exception about input being in an invalid format, which I assumed was due to changes in the server's API which have not trickled down into the ApiClient package yet. This is the point where playback through E2PL fails, I'm not sure if other methods are affected as well or not. Client-side exception: 2018-09-30 20:25:22,037 [148] ERROR EmbyExternalPlayerLauncher.ServerConnect.Logging.EmbyLogger - Error getting response from http://localhost:8096/emby/Users/1/Items/313?format=json System.AggregateException: One or more errors occurred. ---> System.Net.WebException: The remote server returned an error: (500) Internal Server Error. at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult) at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) --- End of inner exception stack trace --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task) at Emby.ApiClient.Net.HttpWebRequestClient.<GetResponse>d__10.MoveNext() ---> (Inner Exception #0) System.Net.WebException: The remote server returned an error: (500) Internal Server Error. at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult) at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization)<--- 2018-09-30 20:25:22,038 [148] ERROR EmbyExternalPlayerLauncher.ServerConnect.EmbyPlayerConnector - Play command failed. MediaBrowser.Model.Net.HttpException: One or more errors occurred. ---> System.AggregateException: One or more errors occurred. ---> System.Net.WebException: The remote server returned an error: (500) Internal Server Error. at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult) at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) --- End of inner exception stack trace --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task) at Emby.ApiClient.Net.HttpWebRequestClient.<GetResponse>d__10.MoveNext() --- End of inner exception stack trace --- at Emby.ApiClient.Net.HttpWebRequestClient.<GetResponse>d__10.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Emby.ApiClient.Net.HttpWebRequestClient.<SendAsync>d__13.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Emby.ApiClient.ApiClient.<SendAsync>d__30.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Emby.ApiClient.ApiClient.<GetItemAsync>d__40.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at EmbyExternalPlayerLauncher.ServerConnect.EmbyPlayerConnector.<Client_PlayCommand>d__26.MoveNext() And the corresponding exception in the server's log: 2018-09-30 20:25:20.693 Info HttpServer: HTTP GET http://localhost:8096/emby/Users/1/Items/313?format=json. UserAgent: 2018-09-30 20:25:20.698 Error HttpServer: Error processing request *** Error Report *** Version: 3.6.0.50 Command line: /opt/emby-server/system/EmbyServer.dll -programdata /var/lib/emby -ffmpeg /opt/emby-server/bin/ffmpeg -ffprobe /opt/emby-server/bin/ffprobe -restartexitcode 3 -updatepackage emby-server-deb_{version}_amd64.deb Operating system: Unix 4.15.0.34 64-Bit OS: True 64-Bit Process: True User Interactive: True Processor count: 2 Program data path: /var/lib/emby Application directory: /opt/emby-server/system System.FormatException: Input string was not in a correct format. Source: ServiceStack.Text TargetSite: System.Guid ParseGeneralStyleGuid(System.ReadOnlySpan`1[System.Char], Int32 ByRef) at ServiceStack.Text.DefaultMemory.ParseGeneralStyleGuid(ReadOnlySpan`1 value, Int32& len) at ServiceStack.Text.DefaultMemory.ParseGuid(ReadOnlySpan`1 value) at ServiceStack.Text.Common.DeserializeBuiltin`1.<>c.<GetParseStringSpanFn>b__7_6(ReadOnlySpan`1 value) at ServiceStack.Text.Jsv.JsvReader.<>c__DisplayClass2_0.<GetParseFn>b__0(String v) at Emby.Server.Implementations.ApplicationHost.<>c__DisplayClass300_0.<GetParseFn>b__0(String s) at Emby.Server.Implementations.Services.StringMapTypeDeserializer.PopulateFromMap(Object instance, IDictionary`2 keyValuePairs) at Emby.Server.Implementations.Services.RestPath.CreateRequest(String pathInfo, Dictionary`2 queryStringAndFormData, Object fromInstance) at Emby.Server.Implementations.Services.ServiceHandler.CreateRequest(IRequest httpReq, RestPath restPath, Dictionary`2 requestParams, Object requestDto) at Emby.Server.Implementations.Services.ServiceHandler.CreateRequest(HttpListenerHost host, IRequest httpReq, RestPath restPath, ILogger logger) at Emby.Server.Implementations.Services.ServiceHandler.ProcessRequestAsync(HttpListenerHost appHost, IRequest httpReq, IResponse httpRes, ILogger logger, String operationName, CancellationToken cancellationToken) at Emby.Server.Implementations.HttpServer.HttpListenerHost.RequestHandler(IRequest httpReq, String urlString, String host, String localPath, CancellationToken cancellationToken) 2018-09-30 20:25:20.698 Info HttpServer: HTTP Response 500 to 10.0.2.2. Time: 5ms. http://localhost:8096/emby/Users/1/Items/313?format=json I'm assuming that FormatException on the server is due to something having changed in the API, it looks like it's expecting a GUID but the ApiClient method takes regular strings and I don't believe they follow a GUID format, for instance while debugging I saw that item IDs returned in a PlayRequest just contain numbers (in this case "313"). Edited September 30, 2018 by Bloodred
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now