I’m using Yatse to stream from a Kodi source (mkv, SMB source) to an LG TV with WebOs 4.0. In principle it’s working fine (great work!), but the total length shown is only 1.0 minutes, nevertheless the video plays over the actual length. Jumping to a certain point within the video oder fast forward or backward results in restart of the video. Streaming the same source from DLNA (Twonky) works including fast forward and correct length.
Well Kodi does not return duration or runtime for those So Yatse can’t send the proper duration and set 1 minutes as the fallback as it allows playing on a lot more devices.
It seems your device does not properly analyse the file and return the correct runtime later but just return the sent value.
Okay, understood.
Direct from Kodi it works, it just happens via casting from Yatse. Even casting from Chorus Webfrontend to a browser windows works. It seems not to be related with the mkv container, as with an MP4 movie the behaviour is the same.
Casting from Yatse to another device or to your local device will work too.
It seems your TV can’t properly check the media duration and Kodi does not send it to me. Yatse have no way to know the media duration so can’t invent a value
I could maybe change the 1 second value to something randomly based on the media filesize but this will never be the right value and it’s hard to know if it will have other negative impacts on other players.
Perhaps it would be worth to check to change the one minute value to some kind of near infinite value. At least cueing and pause would work then. Perhaps you could add a config value in the expert setup.
This is not that simple it would break other devices.
And would not solve a lot of things, seek require proper times too, so the seekbar would not work, and the seekbar position would be wrong too.
The only difference is that it would write 99:99:99 instead of 00:01:00 but everything would have the same issue.
Usually browsing the folder from Kodi GUI to have the files scanned is enough to have Kodi returning proper duration.
Remote have no way to force that scan
Mmh, unfortunately it is a headless installation. Browsing with chorus did not help. I will try an installation on another pc using the same database, perhaps that helps. Do you happen to know if the duration is stored in the database?
I just checked with the JSON API. It seems that the GetEpisodes method takes the value for the runtime property from episode.c09. is this the way, you determine the duration?
This seems to be the issue. In the logs I can see, that if GetEpisodeDetails is called, the duration is being sent from Kodi to you. If just GetDirectory is called there is no duration is beeing delivered.
What triggers to call GetEpisodeDetails?
GetEpisodeDetails is called in okay.log in line 68. In line 78 you see that it returns the correct duration. In not okay.log this does not happen, although I did exactly the same, just with another show, but both times from library mode.
This is unrelated to streaming this is Yatse updating the episode from Kodi.
Streaming use Yatse database cache.
If you want to force that just swipe down in any episode view to trigger that call. I thought it was obvious that if you change Kodi database you need to sync on Yatse side if there’s changes. (Swipe in the show list to sync all shows).