im85288 1493 Posted October 28, 2014 Posted October 28, 2014 There's a new version up on the Beta repo 0.9.60301 which changes the way playback is reported to the server to use the newer API. Please test as much as you can with regards playing, stopping etc. One of the improvements is correct reporting of the playback and play method to the web client. @@Angelblue05 - looking forward to your results! 2
xnappo 1597 Posted October 28, 2014 Posted October 28, 2014 (edited) Thanks im85288 @@foghat if you could test this one (requires changing to beta repo) it would be appreciated! After you finish painting of course. Edited October 28, 2014 by xnappo
im85288 1493 Posted October 29, 2014 Author Posted October 29, 2014 Quick update, it's version 0.9.60302 that should resolve the trakt issue reported.
foghat 65 Posted October 29, 2014 Posted October 29, 2014 Thanks im85288 @@foghat if you could test this one (requires changing to beta repo) it would be appreciated! After you finish painting of course. Just so I'm not messing around with the wrong stuff, this is the repo I need? http://cdn.mediabrow...3c-1.0.301.zip" Do I have to uninstall the current version of the repo first? Or can they run in tandem?
Angelblue05 4131 Posted October 29, 2014 Posted October 29, 2014 (edited) Does scrobbled happen instantly as the content played ends? If it is, then it's not reporting to Trakt. At least, not in a stable way. 0 out of 3 episodes scrobbled. 1 out of 1 movie scrobbled (will need to test further). Also, it seems the playback progress is stuck after I'm done watching an episode. It still reports in MBS after the episode is long over or I start a new episode. I will do further testing and post appropriate logs later. This error keeps being thrown in my log (not exactly sure what was happening at the time): 02:00:30 T:6864 ERROR: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<-- - NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS! Error Type: <type 'exceptions.RuntimeError'> Error Contents: XBMC is not playing any file Traceback (most recent call last): File "C:\Users\Corruption\AppData\Roaming\XBMC\addons\plugin.video.xbmb3c\service.py", line 390, in onPlayBackEnded stopAll(self.played_information) File "C:\Users\Corruption\AppData\Roaming\XBMC\addons\plugin.video.xbmb3c\service.py", line 231, in stopAll reportPlayback("0000000") File "C:\Users\Corruption\AppData\Roaming\XBMC\addons\plugin.video.xbmb3c\service.py", line 287, in reportPlayback currentFile = xbmc.Player().getPlayingFile() RuntimeError: XBMC is not playing any file -->End of Python script error report<-- Edited October 29, 2014 by Angelblue05
Luke 38553 Posted October 29, 2014 Posted October 29, 2014 the only thing we're testing here is that Xbmb3c is reporting correctly to MBS. you can verify this in the server's activity log based on the presence of the entry user has stopped playing xyz. what the trakt plugin then does with that notification is beyond the control of xbmb3c, and should be reported in the plugin area.
Angelblue05 4131 Posted October 30, 2014 Posted October 30, 2014 (edited) @@Luke, I understand that I should report the problem to the Trakt plugin. I was simply asking what was the devs expectation regarding the fix, since im82588 mentioned it. Something they did definitely worked. I'm getting scrobbled instead of manually marked as watched. It also reports what I'm currently watching to it. __________________________________________________________ @@im85288 and @@xnappo Version: XBMB3C 0.9.60302, MBS 3.0.5413.14205 Tested: Report playback headers Profile switch Watched for possible fix of Trakt -scrobbled vs manually marked as watched Report: I finished watching an episode using XBMB3C and MBS seems to report it for a couple of minutes after it ended. I checked the log and there's and error being thrown when stopping content. It could be the reason why the report fails. The "has stopped playing" happened 3 minutes later. Errors Report playback: Here is the error that appears in my xbmc log. It happens when I stop content. 20:34:10 T:5836 ERROR: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<-- - NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS! Error Type: <type 'exceptions.RuntimeError'> Error Contents: XBMC is not playing any file Traceback (most recent call last): File "C:\Users\Corruption\AppData\Roaming\XBMC\addons\plugin.video.xbmb3c\service.py", line 395, in onPlayBackStopped stopAll(self.played_information) File "C:\Users\Corruption\AppData\Roaming\XBMC\addons\plugin.video.xbmb3c\service.py", line 231, in stopAll reportPlayback("0000000") File "C:\Users\Corruption\AppData\Roaming\XBMC\addons\plugin.video.xbmb3c\service.py", line 287, in reportPlayback currentFile = xbmc.Player().getPlayingFile() RuntimeError: XBMC is not playing any file -->End of Python script error report<-- 20:34:10 T:8148 ERROR: Control 59 in window 10025 has been asked to focus, but it can't 20:34:10 T:7248 NOTICE: -->Python Interpreter Initialized<-- Profile switch: This was recently fixed. It seems to be a different variation of the same problem. When I try the profile switch, it will see the new user instantly in MBS and a few seconds later, it will switch back to the original account. The previous problem was that it did not even acknowledge the profile switch. Content is back to being played under the wrong MBS account. Trakt scrobbled report: It seems to now scrobble watched content. It will also report what I'm currently watching. However, could the current error reported above cause the Trakt plugin to not scrobble reliably? Only 2 out 10+ episodes scrobbled. __________________________________________________________ Unrelated inquiry: Where should I report other bugs that I see in 0.9.60302? Can we do something like the MBS (dev) forums, with a specific post for every major versions? This would allow to group up relevant posts regarding the beta repo with some sort of organisation. Edited October 30, 2014 by Angelblue05
im85288 1493 Posted October 30, 2014 Author Posted October 30, 2014 @@Angelblue05 - Thanks for the reports. The problem when you stop should now be fixed in version 0.9.60304 and this could well fix the trakt issue. For the switching profile, I looked at the code again and nothing stands out. Can you set the log level to debug in the addon and post your log here? That may reveal something. And for reporting bugs on the beta version I changed the title of this thread and pinned it. 2
Angelblue05 4131 Posted October 30, 2014 Posted October 30, 2014 (edited) @@im85288 I can confirm that 0.9.60304 fixes the stop function and it seems to have fixed the Trakt scrobbled as well (I will keep testing to make sure). Thanks for this! I've noticed there seems to be an error every time I start XBMC while it's still loading. I'm not exactly sure to what it relates to. If you have any idea, please let me know. Resolved 18:06:07 T:7248 ERROR: --- request header --- 18:06:07 T:7248 NOTICE: . 18:06:07 T:7248 ERROR: GET /mediabrowser HTTP/1.1 Upgrade: websocket Connection: Upgrade Host: 192.168.0.190:8096 Origin: http://192.168.0.190:8096 Sec-WebSocket-Key: 4Yyzl0HrT66KHGFLcC38+Q== Sec-WebSocket-Version: 13 18:06:07 T:7248 NOTICE: . 18:06:07 T:7248 ERROR: ----------------------- 18:06:07 T:7248 NOTICE: . 18:06:07 T:7248 ERROR: --- response header --- ______________________________________________________________ Profile switch [Resolved]: I enabled Debug (2). What does Background rotation thread do? It seems to keep pulling from my MBS account after I profile switched to somebody else's. Here is the log capture when I switched profile. On another's account, it also seems that Downloadutils return the same user ID as my profile. I hope this helps, because I saw nothing else sticking out in my log. My account user ID: 18:36:37 T:9172 NOTICE: XBMB3C DownloadUtils -> Username Found:AngelnDaniel 18:36:37 T:9172 NOTICE: XBMB3C DownloadUtils -> userid : 6a9cb6714653c32997a4ef3d56a13743 18:36:37 T:9172 NOTICE: XBMB3C RecentInfoUpdaterThread -> UserName : AngelnDaniel UserID : 6a9cb6714653c32997a4ef3d56a13743 Smiley's user ID when I profile switched: http://pastebin.com/5JBiDa9x Edited November 1, 2014 by Angelblue05
Angelblue05 4131 Posted October 31, 2014 Posted October 31, 2014 (edited) @, @@xnappo, @@im85288 Thank you all for your quick replies! You guys are awesome. If I knew programming, I would love to get more involved in the XBMB3C project. ______________________________________________________ [Resolved in 0.9.60305] After more research and getting a reply from Luke (I almost typed Sheldon ), it seems something is missing between XBMB3C and MBS. This is why the Trakt plugin is having a hard time scrobbling content watched using XBMB3C vs instant scrobble using the Webclient. It might be worth looking into it to make this version even better! Inquiry: I've observed my MBS server logs for a few hours. I would love if a dev would explain how MBS works regarding the following lines. I'm just trying to figure out what's causing Trakt to not scrobble everytime I finish watching something using XBMC. After an episode ended using the webclient -SessionWebSocketListener: This seems to be what Trakt depends on to know when to scrobble content. 2014-10-30 20:00:21.4522 Debug - SessionWebSocketListener: Received ReportPlaybackStopped message 2014-10-30 20:00:21.4522 Debug - HttpServer: HTTP Response 204 to 192.168.0.189. Response time: 4.0002 ms. Url: http://corruption-pc:8096/mediabrowser/Videos/ActiveEncodings?deviceId=267e2373c4c5445c01cd4276f157e5586d71ba18 2014-10-30 20:00:21.4522 Info - Trakt: Item is played. Scrobble After an episode ended using XBMB3C -App: Session: This seems to allow the episode to be scrobbled. It is absent in most cases. Only 2 out of 10 episodes scrobbled. The following info only appeared twice in my log. 2014-10-30 13:51:18.8780 Debug - App: Session 2bbba06a0964415c8b37627a5da150f5 has gone idle while playing 2014-10-30 13:51:18.8780 Info - Trakt: Item is played. Scrobble Possible solution: Is there a way for XBMB3C to communicate SessionWebSocketListener: Received ReportPlaybackStopped message to MBS after watching a show/movie? It seems XBMB3C doesn't report to the server that playback has stopped. If you see has gone idle while playing, then that indicates the client never reported to the server that playback stopped, so eventually the sees that it has stopped responding and removes the now playing item. Edited November 1, 2014 by Angelblue05
im85288 1493 Posted October 31, 2014 Author Posted October 31, 2014 @@Angelblue05 - there is a new version up 0.9.60305. This may help with the trakt reporting...but do not expect much with the profiles (as I have no clue at the minute why it's keeping the old user). Please test again though.
Angelblue05 4131 Posted October 31, 2014 Posted October 31, 2014 (edited) @@im85288 [Resolved] I've tried the latest version 0.9.60305. I checked both my logs (XBMB3C and MBS) and I don't think XBMB3C reported that playback has stopped unless this line found in my MBS log would be it? If it is, then is it possible to send the specific SessionWebSocketListener line to MBS after playback? 2014-10-31 18:35:49.7400 Debug - HttpServer: Exiting HttpConnection.OnReadInternal because nread=0. ConnectionId: 1971f25f131f4d5dbcfcfad22f959876 I'm asking this to educate myself, is this Swagger UI entry related to what would need to happen? Swagger UI > Sessions > Sessions/Playing/Stopped. Edited November 1, 2014 by Angelblue05
Angelblue05 4131 Posted November 1, 2014 Posted November 1, 2014 (edited) I'll definitively try it out @. Seems easy enough Edited November 1, 2014 by Angelblue05
Angelblue05 4131 Posted November 1, 2014 Posted November 1, 2014 (edited) @@im85288 : I guess I forgot to restart XBMC after updating to the latest version (0.9.60305) of XBMB3C. Trakt seems to scrobble everytime I finish watching content. Woot! I can see the playing stopped line in my MBS server logs. Trakt picks it up and scrobbles instantly. Now, to figure out what's going on with profiles..... 2014-10-31 20:30:39.7823 Debug - HttpServer: HTTP POST http://192.168.0.190:8096/mediabrowser/Sessions/Playing/Stopped?itemId=b593dce66115a4efd121b451e2f01c9b&canSeek=true&PlayMethod=DirectPlay&QueueableMediaTypes=Video&MediaSourceId=b593dce66115a4efd121b451e2f01c9b&PositionTicks=12436080590&AudioStreamIndex=1 Ip: 192.168.0.190:61766. Headers: Host=192.168.0.190:8096,Content-Length=0,Accept-encoding=gzip,X-MediaBrowser-Token=b01e76e4e1ef4e9db751756dd5bc1650,Accept-Charset=UTF-8,*,Content-Type=application/x-www-form-urlencoded,Authorization=MediaBrowser UserId="6a9cb6714653c32997a4ef3d56a13743",Client="XBMC",Device="XBMC",DeviceId="D736AAF672FA494EA4A020CC9E2948BE",Version="0.9.60305" 2014-10-31 20:30:39.7823 Info - Trakt: Item is played. Scrobble @ : Trakt also scrobble using your version. If there's anything else you want me to test, let me know. __________________________________________________________________ I'm getting a new error-ish since the new version 0.9.60305. It also shows a message within XBMC (:url not found: Could not connect to server). This is a custom request. Is there a way to make this error "silently" fail to stop the error from appearing on screen? It's an error caused by Trakt timing out (I think?). Don't worry about it if it's not possible... I've also reported the error to Trakt devs. Edit: Seems Trakt dev can't do anything about it. It caused by deprecated api from Trakt. XBMB3C log error: 23:04:51 T:6428 NOTICE: Unable to connect to 192.168.0.190:8096 : timed out 23:04:51 T:6428 NOTICE: XBMB3C Service -> Exception in Playback Monitor : timed out MBS log error: 2014-10-31 23:04:51.9045 Error - App: Error getting response from http://api.trakt.tv/show/watching/77449c38c9f4f9b3cdb8d3f9ef0566b167a935eb The operation has timed out System.Net.WebException 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) 2014-10-31 23:04:51.9045 Error - Trakt: Exception handled sending status update The operation has timed out MediaBrowser.Model.Net.HttpException at MediaBrowser.Common.Implementations.HttpClientManager.HttpClientManager.<SendAsyncInternal>d__1e.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 MediaBrowser.Common.Implementations.HttpClientManager.HttpClientManager.<SendAsync>d__7.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 MediaBrowser.Common.Implementations.HttpClientManager.HttpClientManager.<Post>d__2c.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 System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task) at Trakt.Api.TraktApi.<SendEpisodeStatusUpdateInternalAsync>d__20.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 Trakt.Api.TraktApi.<SendEpisodeStatusUpdateAsync>d__18.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 Trakt.ServerMediator.<KernelPlaybackProgress>d__19.MoveNext() InnerException: System.Net.WebException The operation has timed out 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) Edited November 2, 2014 by Angelblue05
Angelblue05 4131 Posted November 1, 2014 Posted November 1, 2014 Ok I will let you know tomorrow. I will test the speed regarding navigating thru my library and the cache. Thanks a lot for your efforts. Do you have any ideas why the profile switch is not working correctly, @?
im85288 1493 Posted November 1, 2014 Author Posted November 1, 2014 @@Angelblue05 - thanks for confirming the latest version reports progress back. Perhaps you can re-try the profile switch thing now that you restarted...and then also try it on null_pointers version? Unless of course you have already done so. The log you posted last time did not reveal much unfortunately. @ - thanks for helping out here..was beginning to feel like the only developer looking into it
Angelblue05 4131 Posted November 1, 2014 Posted November 1, 2014 (edited) @@im85288 I have retried the profile switch and it still does not work. I experience the same issue using @ version. As always, I'll be searching and testing like a mad woman to try and find the problem. Inquiry: This is working in the latest stable version. What was modified since? Maybe it could give us clues as to what went wrong? Webclient play to device feature: I'm not able to send content to play to XBMB3C via the webclient. This option has been unavailable since I've started using the beta repo. I thought it was because I was using MBS dev version, but I was incorrect. It is most definitively something with XBMB3C. I've tested the same feature using MBCon (null_pointer fork version) and it worked. I don't know what is required for this feature, but it's no longer working. Edited November 1, 2014 by Angelblue05
xnappo 1597 Posted November 1, 2014 Posted November 1, 2014 The MB3 server in adding additional security, and we had to completely change the way that we make requests to the server. Our code was admittedly sloppy before having been written over the period of a year, with multiple different ways of requesting data. We must have broke something in this process, but it was a pretty major re-write so it is not surprising. On the web client issue - that is weird because it works for me. xnappo
Angelblue05 4131 Posted November 1, 2014 Posted November 1, 2014 (edited) I know that it works for you @@xnappo . We had that conversation recently, I just thought I'd bring it back up. I installed a clean version of XBMC Gotham on my personal computer with two profiles (one using MBCon and the other XBMB3C). When I'm on the profile that uses XBMB3C, the Webclient does not allow me to send content to play and when I'm using MBCon, it allows me to. [Answered] If you are willing to share with me what is required for the feature to work (or at least send me in the right direction), I can most likely pinpoint why this feature is no longer working (for me? It's hard to say, not many beta users out there). I will also ask in the MBS section of the forums. Edited November 1, 2014 by Angelblue05
Angelblue05 4131 Posted November 1, 2014 Posted November 1, 2014 (edited) Thanks to ebr, I can now tell you what the problem is after he replied to my post in the MBS section of the forums. It seems that XBMB3C is not reporting to the server what type of media it can play. [Resolved in version 0.9.60306] I'm having difficulty sending content to play to my XBMB3C using the Webclient. Any other types of client works just fine. What exactly is missing to get this feature working? Is something not being communicated to the server? I thought maybe it had to do with Sessions/Capabilities/PlayableMediaTypes. Please help me by pointing me in the right direction to narrow down why I can't use the "Webclient Play To" feature. In MBS server log, I get the following error when I try to play content to XBMB3C: 2014-11-01 10:45:53.6767 Error - DtoUtils: ServiceBase<TRequest>::Service Exception XBMC is unable to play the requested media type. System.ArgumentException at MediaBrowser.Server.Implementations.Session.SessionManager.SendPlayCommand(String controllingSessionId, String sessionId, PlayRequest command, CancellationToken cancellationToken) at MediaBrowser.Api.Session.SessionsService.Post(Play request) at lambda_method(Closure , Object , Object ) at ServiceStack.Host.ServiceExec`1.<>c__DisplayClass6.<CreateExecFn>b__5(Object service, Object request) at ServiceStack.Host.ServiceRunner`1.Execute(IRequest request, Object instance, TRequest requestDto) 2014-11-01 10:45:53.6767 Error - HttpServer: Error processing request for /mediabrowser/Sessions/62b7ef886eb14c1ebb4baba7ba26548c/Playing?ItemIds=ab6b2be78174757157c31e90a3637eb8&PlayCommand=PlayNow XBMC is unable to play the requested media type. ServiceStack.HttpError No Stack Trace Available Yes, that error would indicate that the target system is reporting it cannot play the type of item you are attempting. Or, rather, it is NOT reporting that it can. Edited November 1, 2014 by Angelblue05
xnappo 1597 Posted November 1, 2014 Posted November 1, 2014 (edited) Okay - interesting. @ - did you rip out all the transcoding logic in your branch? @@ebr - is there possibly a conflict with XBMC DNLA server and our server? xnappo Edited November 1, 2014 by xnappo
Angelblue05 4131 Posted November 1, 2014 Posted November 1, 2014 (edited) @@im85288, @@xnappo, @ [Resolved in version 0.9.60306] After days...ok not days, but many many hours of scrutinizing my logs...I'm just going to throw an idea out there to try to solve the profile switch issue. This is the last feature that's not working for me. After this is fixed, I feel confident we can go ahead and make this the new stable version (at least, for Gotham...not sure about Helix). What I did: I installed the stable version of XBMB3C on my personal computer to compare profile switch logs to the beta version. Since profile switch works on stable, I thought it'd be the best way to find out what's going on. Please bare with me as this is just guesswork. I really hope this helps! XBMB3C Stable log: "Looking for user name" happens multiple times. Therefore, the correct saved UserID is always returned and used. 12:04:15 T:8632 NOTICE: XBMB3C DownloadUtils -> Looking for user name: Acct_test [...] 12:04:15 T:8632 NOTICE: XBMB3C DownloadUtils -> Username Found:Acct_test 12:04:15 T:8632 NOTICE: XBMB3C DownloadUtils -> userid : 1016128de9c7ad83de8f203cf9137c51 12:04:15 T:8632 NOTICE: XBMB3C DownloadUtils -> DownloadUtils -> Returning saved UserID : 1016128de9c7ad83de8f203cf9137c51 XBMB3C Beta log: "Looking for user name" only happens once when loading XBMC, even with a profile switch. It just keeps returning the same saved UserID because the information is never refreshed until XBMC restarts and pulls the new information. Possible solution: I understand there is no need to keep looking for user name multiple times, like before. However, is it possible to make it happen once, when a different profile is loaded? I think this would solve the issue, if it's possible. You guys are the devs, you know what's best. Edited November 3, 2014 by Angelblue05
im85288 1493 Posted November 1, 2014 Author Posted November 1, 2014 @@Angelblue05 - thanks for the deep investigation..I think it does reveal an issue with our caching mechanism. I am going to try something and put a new version up to test soon. Also for the play to feature from the web client I have a suspicion when you tested it with the mbcon fork the MB3 server you were using did not have authorisation activated for xbmc...I think Luke turned it off for the last Beta release. Regardless I can now see we do not announce what we are capable of playing since we moved to the new Playback API. Again I'll have a change up for that in the next hour or so. Thanks 1
im85288 1493 Posted November 1, 2014 Author Posted November 1, 2014 Version 0.9.60306 is up on the beta repo. This should fix the play to issue from the web client and may fix the profile issue...if not a bit more logging was added so hopefully we will get there Also included is the fix for people using the latest Helix Builds.
Angelblue05 4131 Posted November 1, 2014 Posted November 1, 2014 The new version doesn't show up when I force refresh the beta repo?
Recommended Posts