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.
debug.log (99.6 KB)
kodi.log (68.7 KB)
As always the template have it’s utility
Please provide the asked logs https://yatse.tv/wiki/debug-yatse-kodi-remote
Kodi does not support transcoding unlike Twonky and other tools, so it’s highly possible that it’s a file format limitation.
I attached the logs above. Twonky is not transcoding.
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.
Can’t really workaround that properly
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 set manually the episode.c09 value in the database, but that does not have any effect. Are there other tables, which contain the duration?
There’s stream details stored too but i don’t know how and where. Those are tied to files and not the global media.
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?
You have everything in the logs
Previously you used file mode so no it was Files.GetDirectory
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?
Nothing, but if you start your media from the normal library mode in the left then duration should be there as for GetEpisodeDetails
Mmh. I do not get it. I did for both episodes the same, started both from the library. For one getEpisodeDetails is called, for one not.
notOkay.log (64.4 KB)
okay.log (58.3 KB)
I have no idea what you are talking about getEpisodeDetails is never called only set.
When you are in file mode then the duration from file mode is used, it’s not returned by Kodi on your setup.
When in library mode then the c09 value is used Yatse have it and can use it.
This is how Kodi works, I’m not sure what you are trying to achieve.
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).