Thanks, I was aware of customizing skip steps, although that would make it go back that same amount of time I wouldn’t normally go back, so I would have to tap more, probably would make it 5, but I wanted to inquire about doing it automatically first, so I’ll do that and I’ll wait hopefully for the feature addition.
0.7.9-beta16: script.plexmod.zip (2.8 MB)
This was ridiculously easy to implement.
With that, I’ll feature-freeze 0.7.9. The only thing left before prerelease is to finalize and merge the 16x10 (lower aspect ratio, 4:3 etc.) branch. Widescreen will come later.
Temporary Changelog:
- SeekDialog: Fix player settings scrollbar visible between native Kodi settings dialog fades (returning from subtitle offset adjust for example)
- SeekDialog: Allow for seekbehind on resume after pause (only Direct Play)
- Settings: Rename Player UI to Video Player
- Settings: Add setting to set seekbehind on resume after pause (100ms, 250ms, 500ms, 750ms, 1-10s)
Edit: The implementation isn’t ideal. It reacts to the onResume event and seeks back. I could do the opposite (seek back, then resume), but that’s a whole lot more complicated. This’ll have to do for now.
Edit 2: Oh no, this is the only way. I can’t intercept the Play/Pause actions, which would be necessary for a cleaner implementation. Never mind.
Edit 3: a value of 2 seconds seems to be good enough for a SHIELD connected to a Q995C, connected to a LG B8 with dolby vision and atmos passthrough. 500-750ms to land on the exact word otherwise missed.
Edit 4: Hmm. Immediately seeking when paused could be another solution. Any thoughts? Or is this good enough
Edit: Automatic skipbehind after resume is definitely something useful, that I’ll put on my list.
- Settings: Add setting to set seekbehind on resume after pause (100ms, 250ms, 500ms, 750ms, 1-10s)
I love (and am amazed) that @panni’s backlog has approximately a three hour turnaround.
That implementation took 15 minutes, some things are easy and quick in this codebase ![]()
Edit: and no, my backlog is huge, but every now and then someone comes up with an idea that doesn’t take weeks to implement and is useful to many. I love those.
Much better than mucking about with advanced settings as I suggested.
If it’s only a 5 mins job, I think a seek back on pause would be good. I’m thinking of it as time for my brain to catch up after a doorbell, phonecall or a making a drink interruption.
I think I’ll make this an optional AddonSetting. Let’s see what the one with the original idea thinks and what the default should be.
Very good addition, I was using the unpausejumpback add-on, but now there is no need for it anymore. ![]()
I’m already using the seekbehind on resume feature.
I’ve already used something similar, in the past, on another platform. It’s a nice to have feature, indeed.
I have no opinion about immediately seeking when paused, but it might be a nice to have feature I don’t know I need.
Thanks for the updates, @panni . Plextuary version 4.0.0-pm4k1.2 seems to have introduced a behaviour that I can’t find a way to change in the settings: as soon as the video is paused, the OSD appears top and bottom and doesn’t disappear (i.e a solid black bar across the top of the picture with the title and the current time and a solid black bar across the bottom of the picture with the seek bar, the elapsed time, remaining time and end time).
The previous behaviour (which is my preference) was that nothing appeared on-screen while paused, and the OSD only came up if I pressed the select button (and it was semi-transparent, not solid) and then it disappeared again after a short delay.
I’ve gone back to version 4.0.0-pm4k1.1 for now, but is there a way this previous behaviour can be reinstated in future versions?
Thanks for the quick implementation. I do think seek back on pause is better as it gets it out of the way and it may work better with automations I do based on playback. For some reason, with HA it seems to come off of being unavailable and go to paused before playing and after resume it considers it paused for more than a second as it seeks back.
You’re not using the latest beta of PM4K are you?
No, I’m using 0.7.8. I was previously on 0.7.6 from the Kodi repository, and then the issue started with 4.0.0-pm4k1.2 of Plextuary, so I switched to 0.7.8 from your repository to see if that made a difference, but it didn’t.
Yeah. I messed that up with plextuary pm4k1.2. Only tested against the latest beta. I’ll try and fix that retroactively.
That specifically with the pause state (not OSD open) is weird, though. Can’t seem to reproduce that with 0.7.8. Only the ever-present backdrop when the OSD is open. nvm got it
Edit: Fixed in skin.plextuary: 4.0.0-pm4k1.3, 3.0.10-pm4k1.3
Yeah this one is now wildly outdated. Not sure if it will ever get updated to anything newer.
I might have to drop support for the Kodi repo altogether: [script.plexmod] 0.7.8 by pannal · Pull Request #2620 · xbmc/repo-scripts · GitHub
0.7.9-beta16.1: script.plexmod.zip (2.8 MB)
Temporary Changelog:
- Settings: Slide description of a setting with a selection in a way that it’s still fully readable
- Settings: Rename Resume seek-behind to Automatic seek-back
- Settings: Add setting to seek-back on pause instead of resume
- Settings: Add setting to only seek-back after a certain amount of time in paused state
- Settings: Add setting to only allow seek-back on Direct Play
- Settings/Seek-back: Extend options to 60 seconds
- SeekDialog: Fix seek-back not working for Transcoding
- AddonSettings: Add setting for tickrate (default: 1 Hz, min: 0.5 Hz, max: 10 Hz)
- Main/EventLoop: Allow setting a tickrate different than 1 Hz
- AddonSettings: Reset default Plex Requests timeout to 5s (was 10s); increase maximum to 60s (was 30s)
Edit: Reuploaded zip (13:43 CEST; clamped tickrate to 10 Hz max)
Hi!
Since script.plexmod-0.7.9-beta15.4, a lot of times but not always, Home starts with a “No Content available in this library. Please add content and/or check that ‘Include in dashboard’ is enabled.” background message and an “ERROR: No data - disconnected?” error:
All other libraries work just fine, if I change to them, but not Home, even when I come back to it again.
This is what I find in the log:
2024-07-25 10:24:46.999 T:3317 info <general>: script.plex: Couldn't determine build version, falling back to Kodi version
2024-07-25 10:24:46.999 T:3317 info <general>: script.plex: Kodi 20.5 (build 2005000)
2024-07-25 10:24:47.012 T:3317 info <general>: script.plex: Parsed 1 Kodi sources: [{'file': '/home/osmc/', 'label': 'osmc'}]
2024-07-25 10:24:47.771 T:3317 info <general>: script.plex: Free memory: 3154.0 MB, recommended max: 725 MB
2024-07-25 10:24:47.784 T:3317 info <general>: Skipped 15 duplicate messages..
2024-07-25 10:24:47.783 T:3317 info <general>: script.plex: Using certificate bundle: plex.direct
2024-07-25 10:24:47.793 T:3317 info <general>: script.plex: (plugin) - Switching to home screen before starting addon
2024-07-25 10:24:47.810 T:2926 info <general>: Activate of window '10000' refused because there are active modal dialogs
2024-07-25 10:24:53.203 T:3316 error <general>: GetDirectory - Error getting plugin://script.plexmod/
2024-07-25 10:24:53.212 T:2926 error <general>: CGUIMediaWindow::GetDirectory(plugin://script.plexmod/) failed
2024-07-25 10:24:56.080 T:3321 info <general>: script.plex: Couldn't determine build version, falling back to Kodi version
2024-07-25 10:24:56.080 T:3321 info <general>: script.plex: Kodi 20.5 (build 2005000)
2024-07-25 10:24:56.092 T:3321 info <general>: script.plex: Parsed 1 Kodi sources: [{'file': '/home/osmc/', 'label': 'osmc'}]
2024-07-25 10:24:56.697 T:3321 info <general>: script.plex: Free memory: 3146.0 MB, recommended max: 723 MB
2024-07-25 10:24:56.770 T:3321 info <general>: Skipped 15 duplicate messages..
2024-07-25 10:24:56.770 T:3321 info <general>: script.plex: Using certificate bundle: plex.direct
2024-07-25 10:24:57.013 T:3321 info <general>: script.plex: Looking for templates in: ['/home/osmc/.kodi/userdata/addon_data/script.plexmod/templates', '/home/osmc/.kodi/addons/script.plexmod/resources/skins/Main/1080i/templates']
2024-07-25 10:24:57.242 T:2926 info <general>: Loading skin file: /home/osmc/.kodi/addons/script.plexmod/resources/skins/Main/1080i/script-plex-background.xml, load type: LOAD_ON_GUI_INIT
2024-07-25 10:24:58.276 T:2926 info <general>: Loading skin file: /home/osmc/.kodi/addons/script.plexmod/resources/skins/Main/1080i/script-plex-home.xml, load type: LOAD_ON_GUI_INIT
2024-07-25 10:24:59.509 T:2926 info <general>: Loading skin file: /home/osmc/.kodi/addons/script.plexmod/resources/skins/Main/1080i/script-plex-busy.xml, load type: LOAD_ON_GUI_INIT
2024-07-25 10:25:11.052 T:3339 error <general>: _________________________________________________________________________________
2024-07-25 10:25:11.052 T:3339 error <general>: script.plex: ERROR:
2024-07-25 10:25:11.052 T:3339 error <general>: Traceback (most recent call last):
2024-07-25 10:25:11.052 T:3339 error <general>: File "/home/osmc/.kodi/addons/script.module.urllib3/lib/urllib3/connectionpool.py", line 536, in _make_request
2024-07-25 10:25:11.052 T:3339 error <general>: response = conn.getresponse()
2024-07-25 10:25:11.052 T:3339 error <general>: File "/home/osmc/.kodi/addons/script.module.urllib3/lib/urllib3/connection.py", line 461, in getresponse
2024-07-25 10:25:11.052 T:3339 error <general>: httplib_response = super().getresponse()
2024-07-25 10:25:11.052 T:3339 error <general>: File "/usr/lib/python3.9/http/client.py", line 1347, in getresponse
2024-07-25 10:25:11.052 T:3339 error <general>: response.begin()
2024-07-25 10:25:11.052 T:3339 error <general>: File "/usr/lib/python3.9/http/client.py", line 307, in begin
2024-07-25 10:25:11.052 T:3339 error <general>: version, status, reason = self._read_status()
2024-07-25 10:25:11.052 T:3339 error <general>: File "/usr/lib/python3.9/http/client.py", line 268, in _read_status
2024-07-25 10:25:11.052 T:3339 error <general>: line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
2024-07-25 10:25:11.052 T:3339 error <general>: File "/usr/lib/python3.9/socket.py", line 704, in readinto
2024-07-25 10:25:11.052 T:3339 error <general>: return self._sock.recv_into(b)
2024-07-25 10:25:11.052 T:3339 error <general>: File "/usr/lib/python3.9/ssl.py", line 1241, in recv_into
2024-07-25 10:25:11.052 T:3339 error <general>: return self.read(nbytes, buffer)
2024-07-25 10:25:11.052 T:3339 error <general>: File "/usr/lib/python3.9/ssl.py", line 1099, in read
2024-07-25 10:25:11.052 T:3339 error <general>: return self._sslobj.read(len, buffer)
2024-07-25 10:25:11.052 T:3339 error <general>: socket.timeout: The read operation timed out
2024-07-25 10:25:11.052 T:3339 error <general>:
2024-07-25 10:25:11.052 T:3339 error <general>: The above exception was the direct cause of the following exception:
2024-07-25 10:25:11.053 T:3339 error <general>:
2024-07-25 10:25:11.053 T:3339 error <general>: Traceback (most recent call last):
2024-07-25 10:25:11.053 T:3339 error <general>: File "/home/osmc/.kodi/addons/script.module.urllib3/lib/urllib3/connectionpool.py", line 790, in urlopen
2024-07-25 10:25:11.053 T:3339 error <general>: response = self._make_request(
2024-07-25 10:25:11.053 T:3339 error <general>: File "/home/osmc/.kodi/addons/script.module.urllib3/lib/urllib3/connectionpool.py", line 538, in _make_request
2024-07-25 10:25:11.053 T:3339 error <general>: self._raise_timeout(err=e, url=url, timeout_value=read_timeout)
2024-07-25 10:25:11.053 T:3339 error <general>: File "/home/osmc/.kodi/addons/script.module.urllib3/lib/urllib3/connectionpool.py", line 370, in _raise_timeout
2024-07-25 10:25:11.053 T:3339 error <general>: raise ReadTimeoutError(
2024-07-25 10:25:11.053 T:3339 error <general>: urllib3.exceptions.ReadTimeoutError: AsyncHTTPSConnectionPool(host='REDACTED', port=443): Read timed out. (read timeout=5.0)
2024-07-25 10:25:11.053 T:3339 error <general>:
2024-07-25 10:25:11.053 T:3339 error <general>: The above exception was the direct cause of the following exception:
2024-07-25 10:25:11.053 T:3339 error <general>:
2024-07-25 10:25:11.053 T:3339 error <general>: Traceback (most recent call last):
2024-07-25 10:25:11.053 T:3339 error <general>: File "/home/osmc/.kodi/addons/script.module.requests/lib/requests/adapters.py", line 486, in send
2024-07-25 10:25:11.053 T:3339 error <general>: resp = conn.urlopen(
2024-07-25 10:25:11.053 T:3339 error <general>: File "/home/osmc/.kodi/addons/script.module.urllib3/lib/urllib3/connectionpool.py", line 874, in urlopen
2024-07-25 10:25:11.053 T:3339 error <general>: return self.urlopen(
2024-07-25 10:25:11.053 T:3339 error <general>: File "/home/osmc/.kodi/addons/script.module.urllib3/lib/urllib3/connectionpool.py", line 844, in urlopen
2024-07-25 10:25:11.053 T:3339 error <general>: retries = retries.increment(
2024-07-25 10:25:11.053 T:3339 error <general>: File "/home/osmc/.kodi/addons/script.module.urllib3/lib/urllib3/util/retry.py", line 515, in increment
2024-07-25 10:25:11.053 T:3339 error <general>: raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type]
2024-07-25 10:25:11.053 T:3339 error <general>: urllib3.exceptions.MaxRetryError: AsyncHTTPSConnectionPool(host='REDACTED', port=443): Max retries exceeded with url: /hubs?count=10&includeMarkers=1&X-Plex-Token=REDACTED (Caused by ReadTimeoutError("AsyncHTTPSConnectionPool(host='REDACTED', port=443): Read timed out. (read timeout=5.0)"))
2024-07-25 10:25:11.053 T:3339 error <general>:
2024-07-25 10:25:11.053 T:3339 error <general>: During handling of the above exception, another exception occurred:
2024-07-25 10:25:11.053 T:3339 error <general>:
2024-07-25 10:25:11.053 T:3339 error <general>: Traceback (most recent call last):
2024-07-25 10:25:11.053 T:3339 error <general>: File "/home/osmc/.kodi/addons/script.plexmod/lib/_included_packages/plexnet/plexserver.py", line 259, in query
2024-07-25 10:25:11.053 T:3339 error <general>: response = method(url, **kwargs)
2024-07-25 10:25:11.053 T:3339 error <general>: File "/home/osmc/.kodi/addons/script.module.requests/lib/requests/sessions.py", line 602, in get
2024-07-25 10:25:11.053 T:3339 error <general>: return self.request("GET", url, **kwargs)
2024-07-25 10:25:11.053 T:3339 error <general>: File "/home/osmc/.kodi/addons/script.module.requests/lib/requests/sessions.py", line 589, in request
2024-07-25 10:25:11.053 T:3339 error <general>: resp = self.send(prep, **send_kwargs)
2024-07-25 10:25:11.053 T:3339 error <general>: File "/home/osmc/.kodi/addons/script.module.requests/lib/requests/sessions.py", line 703, in send
2024-07-25 10:25:11.053 T:3339 error <general>: r = adapter.send(request, **kwargs)
2024-07-25 10:25:11.054 T:3339 error <general>: File "/home/osmc/.kodi/addons/script.module.requests/lib/requests/adapters.py", line 519, in send
2024-07-25 10:25:11.054 T:3339 error <general>: raise ConnectionError(e, request=request)
2024-07-25 10:25:11.054 T:3339 error <general>: requests.exceptions.ConnectionError: AsyncHTTPSConnectionPool(host='REDACTED', port=443): Max retries exceeded with url: /hubs?count=10&includeMarkers=1&X-Plex-Token=REDACTED (Caused by ReadTimeoutError("AsyncHTTPSConnectionPool(host='REDACTED', port=443): Read timed out. (read timeout=5.0)"))
2024-07-25 10:25:11.054 T:3339 error <general>: _________________________________________________________________________________
2024-07-25 10:25:11.054 T:3339 error <general>: `
2024-07-25 10:25:11.058 T:3339 error <general>: _________________________________________________________________________________
2024-07-25 10:25:11.058 T:3339 error <general>: script.plex: ERROR: No data - disconnected?
2024-07-25 10:25:11.058 T:3339 error <general>: Traceback (most recent call last):
2024-07-25 10:25:11.058 T:3339 error <general>: File "/home/osmc/.kodi/addons/script.plexmod/lib/windows/home.py", line 75, in run
2024-07-25 10:25:11.058 T:3339 error <general>: hubs = HubsList(plexapp.SERVERMANAGER.selectedServer.hubs(self.section.key, count=HUB_PAGE_SIZE,
2024-07-25 10:25:11.058 T:3339 error <general>: File "/home/osmc/.kodi/addons/script.plexmod/lib/_included_packages/plexnet/plexserver.py", line 174, in hubs
2024-07-25 10:25:11.058 T:3339 error <general>: for elem in data:
2024-07-25 10:25:11.058 T:3339 error <general>: TypeError: 'NoneType' object is not iterable
2024-07-25 10:25:11.058 T:3339 error <general>: _________________________________________________________________________________
2024-07-25 10:25:11.058 T:3339 error <general>: `
(Plex host and token are REDACTED)
If I revert back to script.plexmod-0.7.9-beta15.3, everything works well again.
Please note, I’m with OSMC 2024.05-1 (Kodi 20.5) and I don’t use my own Plex Server but an impressive in size share, from an online friend, which takes its own time to load, even on official Plex clients.
Please sorry for my delay on this, but it took me some time to confirm the last working version.
Try upping the plex request timeout setting outside the addon in AddonSettings. It should be at 5 or 10s right now, if you haven’t changed it.
It’s possible I’ve messed something up, but certain requests never timed out before beta15.4, so it’s natural they might do now, for you, if you have a slow responding server.
Edit: try doubling it
Edit 2: seems to be at 5s, try 15s
Edit 3: 5 seconds is a really long time, though, even for a huge Plex server.
It worked.
Yes, I had it at 5s, before. I’ll keep it now at 10s, at least for now, as it seems to be enough.
Thank you so much for your precious help, once again.
Damn, I just changed that default from 10 to 5 ![]()
I guess I’ll revert that.
Edit: At what value did you have max retries in AddonSettings?
I had the default value, before.
Please sorry, I don’t know exactly what the value was, because I’ve installed script.plexmod-0.7.9-beta16.1 right after your advice, in order to follow it.
Everything seems to be working now with Plex requests timeout to 10s and only 1 for Max retries.
