Jump to content

Kodi Beta version discussion thread


im85288

Recommended Posts

im85288

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!

  • Like 2
Link to comment
Share on other sites

xnappo

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 by xnappo
Link to comment
Share on other sites

im85288

Quick update, it's version 0.9.60302 that should resolve the trakt issue reported.

Link to comment
Share on other sites

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?

Link to comment
Share on other sites

Angelblue05

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 by Angelblue05
Link to comment
Share on other sites

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.

Link to comment
Share on other sites

Angelblue05

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

54519bd65109d_reportprogress_stopped.jpg

 

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 by Angelblue05
Link to comment
Share on other sites

im85288

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

  • Like 2
Link to comment
Share on other sites

Angelblue05

@@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 by Angelblue05
Link to comment
Share on other sites

Angelblue05

@, @@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 by Angelblue05
Link to comment
Share on other sites

im85288

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

Link to comment
Share on other sites

Angelblue05

@@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 by Angelblue05
Link to comment
Share on other sites

Angelblue05

@@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 by Angelblue05
Link to comment
Share on other sites

Angelblue05

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, @?  

Link to comment
Share on other sites

im85288

@@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 :(

Link to comment
Share on other sites

Angelblue05

@@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 by Angelblue05
Link to comment
Share on other sites

xnappo

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

Link to comment
Share on other sites

Angelblue05

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 by Angelblue05
Link to comment
Share on other sites

Angelblue05

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 by Angelblue05
Link to comment
Share on other sites

xnappo

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 by xnappo
Link to comment
Share on other sites

Angelblue05

@@im85288, @@xnappo, @

 

[Resolved in version 0.9.60306After 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 by Angelblue05
Link to comment
Share on other sites

im85288

@@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 :)

  • Like 1
Link to comment
Share on other sites

im85288

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.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...