Closed zeroquinc closed 9 months ago
Seems to be happening since this commit: https://github.com/Taxel/PlexTraktSync/commit/48ace04932e4fae10be29b1527bd2803f390f1a5
If you revert it, you no longer get the rate limit messages?
because, that commit is supposed to help in cases rate limit happens, i.e retry the query, so previous version should just print error similarly, but not retry.
48ace049 was added in 0.28.1, so 0.28.0 is fine?
and please, exact versions not 0.28.x
48ace04 was added in 0.28.1, so 0.28.0 is fine?
and please, exact versions not 0.28.x
I just tested 0.27.16, 0.28.0, 0.28.1 and 0.28.2. It seems to started on 0.28.0.
0.27.16:
INFO Websocket connected
INFO on_play: <Movie:1195:Napoleon>: 12.117320%, State: playing, Watched:
False, LastViewed: 2024-01-11 21:19:39
INFO on_play: <Movie:1195:Napoleon>: 12.130265%, State: playing, Watched:
False, LastViewed: 2024-01-11 21:19:39
INFO on_play: <Movie:1195:Napoleon>: 12.141059%, State: playing, Watched:
False, LastViewed: 2024-01-11 21:19:39
INFO on_play: <Movie:1195:Napoleon>: 12.151853%, State: playing, Watched:
False, LastViewed: 2024-01-11 21:19:39
INFO on_play: <Movie:1195:Napoleon>: 12.162815%, State: playing, Watched:
False, LastViewed: 2024-01-11 21:19:39
INFO on_play: <Movie:1195:Napoleon>: 12.173745%, State: playing, Watched:
False, LastViewed: 2024-01-11 21:19:39
INFO on_play: <Movie:1195:Napoleon>: 12.184539%, State: playing, Watched:
False, LastViewed: 2024-01-11 21:19:39
INFO on_play: <Movie:1195:Napoleon>: 12.195406%, State: playing, Watched:
False, LastViewed: 2024-01-11 21:19:39
INFO on_play: <Movie:1195:Napoleon>: 12.204176%, State: playing, Watched:
False, LastViewed: 2024-01-11 21:19:39
INFO on_play: <Movie:1195:Napoleon>: 12.214928%, State: playing, Watched:
False, LastViewed: 2024-01-11 21:19:39
INFO on_play: <Movie:1195:Napoleon>: 12.225743%, State: playing, Watched:
False, LastViewed: 2024-01-11 21:19:39
0.28.0 starts throwing Rate Limted Exceeded:
INFO Websocket connected
INFO on_play: <Movie:1195:Napoleon>: 11.109496%, State: playing, Watched:
False, LastViewed: 2024-01-11 21:13:13
INFO on_play: <Movie:1195:Napoleon>: 11.122167%, State: playing, Watched:
False, LastViewed: 2024-01-11 21:13:13
ERROR RateLimitException was raised: Rate Limit Exceeded
INFO on_play: <Movie:1195:Napoleon>: 11.132877%, State: playing, Watched:
False, LastViewed: 2024-01-11 21:13:13
INFO on_play: <Movie:1195:Napoleon>: 11.143514%, State: playing, Watched:
False, LastViewed: 2024-01-11 21:13:13
INFO on_play: <Movie:1195:Napoleon>: 11.154235%, State: playing, Watched:
False, LastViewed: 2024-01-11 21:13:13
INFO on_play: <Movie:1195:Napoleon>: 11.164787%, State: playing, Watched:
False, LastViewed: 2024-01-11 21:13:13
INFO on_play: <Movie:1195:Napoleon>: 11.175466%, State: playing, Watched:
False, LastViewed: 2024-01-11 21:13:13
INFO on_play: <Movie:1195:Napoleon>: 11.186050%, State: playing, Watched:
False, LastViewed: 2024-01-11 21:13:13
INFO on_play: <Movie:1195:Napoleon>: 11.196582%, State: playing, Watched:
False, LastViewed: 2024-01-11 21:13:13
INFO on_play: <Movie:1195:Napoleon>: 11.207176%, State: playing, Watched:
False, LastViewed: 2024-01-11 21:13:13
INFO on_play: <Movie:1195:Napoleon>: 11.217729%, State: playing, Watched:
False, LastViewed: 2024-01-11 21:13:13
And on 0.28.2 it started adding plextraktsync.trakt.ScrobberProxy.update:
INFO Websocket connected
INFO on_play: <Movie:1195:Napoleon>: 11.920060%, State: playing, Watched:
False, LastViewed: 2024-01-11 21:15:53
INFO on_play: <Movie:1195:Napoleon>: 11.932910%, State: playing, Watched:
False, LastViewed: 2024-01-11 21:15:53
WARNING Rate Limit Exceeded for plextraktsync.trakt.ScrobblerProxy.update(),
retrying after 1 seconds (try: 1/2)
INFO on_play: <Movie:1195:Napoleon>: 11.943715%, State: playing, Watched:
False, LastViewed: 2024-01-11 21:15:53
INFO on_play: <Movie:1195:Napoleon>: 11.954456%, State: playing, Watched:
False, LastViewed: 2024-01-11 21:15:53
WARNING Rate Limit Exceeded for plextraktsync.trakt.ScrobblerProxy.update(),
retrying after 1 seconds (try: 1/2)
INFO on_play: <Movie:1195:Napoleon>: 11.965083%, State: playing, Watched:
False, LastViewed: 2024-01-11 21:15:53
INFO on_play: <Movie:1195:Napoleon>: 11.975730%, State: playing, Watched:
False, LastViewed: 2024-01-11 21:15:53
WARNING Rate Limit Exceeded for plextraktsync.trakt.ScrobblerProxy.update(),
retrying after 1 seconds (try: 1/2)
INFO on_play: <Movie:1195:Napoleon>: 11.986387%, State: playing, Watched:
False, LastViewed: 2024-01-11 21:15:53
INFO on_play: <Movie:1195:Napoleon>: 11.997024%, State: playing, Watched:
False, LastViewed: 2024-01-11 21:15:53
so it started getting rate limit errors from 0.28.0 (not 0.28.2), and as said before, 0.28.1 only adds retry to the rate limits. I started getting them too myself, so I guessed it was because I was running watch command 3 times and added retry to the methods.
as for 0.28.0, there's api domain change:
could be that the official domain has higher rate limits. can you hack the code and change back to old domain:
you could also enable debug logging and see the request rate to trakt.tv/scrobble
:
2024-01-11 23:16:59,704 DEBUG[trakt.core]:post: https://api.trakt.tv/scrobble/start
2024-01-11 23:17:15,448 DEBUG[trakt.core]:post: https://api.trakt.tv/scrobble/stop
@zeroquinc can you test with old domain then?
@zeroquinc can you test with old domain then?
Sorry, I didn't had time but I have now.
could be that the official domain has higher rate limits. can you hack the code and change back to old domain:
I tried, but I have no clue how to do this. I would love to test this for you though to have it fixed.
I tried, but I have no clue how to do this. I would love to test this for you though to have it fixed.
See the pull request I was referring to: https://github.com/glensc/python-pytrakt/pull/34/files
do you see the filename and the change?
edit that file and then start the watch command
I tried, but I have no clue how to do this. I would love to test this for you though to have it fixed.
See the pull request I was referring to: https://github.com/glensc/python-pytrakt/pull/34/files
do you see the filename and the change?
edit that file and then start the watch command
I saw the pull request you referred to yes, but I use this in docker and my /opt/plextraktsync don't have any of these files because this seems to be the python-pytrakt module. How can I edit this file?
$ docker-compose run --user=root -e PUID= -e PGID= --rm plextraktsync sh
# vi /usr/local/lib/python3.12/site-packages/trakt/core.py
or you could create copy of that file and mount bind mount to that path
volumes:
- ./core.py:/usr/local/lib/python3.12/site-packages/trakt/core.py
$ docker-compose run --user=root -e PUID= -e PGID= --rm plextraktsync sh # vi /usr/local/lib/python3.12/site-packages/trakt/core.py
or you could create copy of that file and mount bind mount to that path
volumes: - ./core.py:/usr/local/lib/python3.12/site-packages/trakt/core.py
Thanks, I changed the API endpoint to https://api-v2launch.trakt.tv/
and I don't get any Rate Limits now on the latest
tag:
INFO Websocket connected
INFO on_play: <Movie:1195:Napoleon>: 12.859786%, State: playing, Watched:
False, LastViewed: 2024-01-13 16:24:12
INFO on_play: <Movie:1195:Napoleon>: 12.870506%, State: playing, Watched:
False, LastViewed: 2024-01-13 16:24:12
INFO on_play: <Movie:1195:Napoleon>: 12.881258%, State: playing, Watched:
False, LastViewed: 2024-01-13 16:24:12
INFO on_play: <Movie:1195:Napoleon>: 12.891989%, State: playing, Watched:
False, LastViewed: 2024-01-13 16:24:12
INFO on_play: <Movie:1195:Napoleon>: 12.904724%, State: playing, Watched:
False, LastViewed: 2024-01-13 16:24:12
INFO on_play: <Movie:1195:Napoleon>: 12.915350%, State: playing, Watched:
False, LastViewed: 2024-01-13 16:24:12
INFO on_play: <Movie:1195:Napoleon>: 12.926039%, State: playing, Watched:
False, LastViewed: 2024-01-13 16:24:12
INFO on_play: <Movie:1195:Napoleon>: 12.936938%, State: playing, Watched:
False, LastViewed: 2024-01-13 16:24:12
It also stopped on 0.28.2 (just in case because this was the version I originally had problems with)
INFO Websocket connected
INFO on_play: <Movie:1195:Napoleon>: 13.755171%, State: paused, Watched:
False, LastViewed: 2024-01-13 16:25:37
INFO on_play: <Movie:1195:Napoleon>: 13.755171%, State: paused, Watched:
False, LastViewed: 2024-01-13 16:25:37
INFO on_play: <Movie:1195:Napoleon>: 13.755171%, State: paused, Watched:
False, LastViewed: 2024-01-13 16:25:37
INFO on_play: <Movie:1195:Napoleon>: 13.755171%, State: paused, Watched:
False, LastViewed: 2024-01-13 16:25:37
INFO on_play: <Movie:1195:Napoleon>: 13.759388%, State: playing, Watched:
False, LastViewed: 2024-01-13 16:25:37
INFO on_play: <Movie:1195:Napoleon>: 13.770223%, State: playing, Watched:
False, LastViewed: 2024-01-13 16:25:37
INFO on_play: <Movie:1195:Napoleon>: 13.781038%, State: playing, Watched:
False, LastViewed: 2024-01-13 16:25:37
INFO on_play: <Movie:1195:Napoleon>: 13.791832%, State: playing, Watched:
False, LastViewed: 2024-01-13 16:25:37
INFO on_play: <Movie:1195:Napoleon>: 13.802773%, State: playing, Watched:
False, LastViewed: 2024-01-13 16:25:37
ok. so maybe then it was trakt api site wide problem that is resolved now?
ok. so maybe then it was trakt api site wide problem that is resolved now?
Nope, still immediately get Rate Limit Exceeded for plextraktsync.trakt.ScrobblerProxy.update
on latest
again after switching back to the new API url. Guess I'll stay on 0.27.16 for a while. Well I just read that the URL will get deprecated on the 1st of February. Hope we can fix it because my scrobbles are out of sync now because of the Rate Limit Exceeded.
Hope we can fix it because my scrobbles are out of sync now because of the Rate Limit Exceeded.
nope. it retries 1 time and then it's fine. program will exit if it can't retry.
trakt replied that same rate limits:
So, I'm wondering why it appears like domain change gets into rate limit trouble?
Hope we can fix it because my scrobbles are out of sync now because of the Rate Limit Exceeded.
nope. it retries 1 time and then it's fine. program will exit if it can't retry.
@zeroquinc you didn't respond to this. correct? Am I missing something?
from your logs I see it retried and that helped
INFO on_play: <Movie:1195:Napoleon>: 11.975730%, State: playing, Watched:
False, LastViewed: 2024-01-11 21:15:53
WARNING Rate Limit Exceeded for plextraktsync.trakt.ScrobblerProxy.update(),
retrying after 1 seconds (try: 1/2)
INFO on_play: <Movie:1195:Napoleon>: 11.986387%, State: playing, Watched:
Hope we can fix it because my scrobbles are out of sync now because of the Rate Limit Exceeded.
nope. it retries 1 time and then it's fine. program will exit if it can't retry.
@zeroquinc you didn't respond to this. correct? Am I missing something?
from your logs I see it retried and that helped
INFO on_play: <Movie:1195:Napoleon>: 11.975730%, State: playing, Watched: False, LastViewed: 2024-01-11 21:15:53 WARNING Rate Limit Exceeded for plextraktsync.trakt.ScrobblerProxy.update(), retrying after 1 seconds (try: 1/2) INFO on_play: <Movie:1195:Napoleon>: 11.986387%, State: playing, Watched:
Please keep the issue open until this weekend. I'll update to the latest version today and I'll test it for 2 days to see if it doesn't miss any scrobbles. If it doesn't, we can close it I guess. Although it would be nice to be able to at least filter all the errors out.
I'll update this within 48 hours.
Yeah, I do get out of syncs with the latest version. Just stopped the episode and Trakt still shows its scrobbling at 85%. Have absolutely zero issues on 0.27.16 with also the correct percentage while its scrobbling and if I pause it it shows it instantly on Trakt. Now it's still showing as scrobbling 3 minutes after I stopped the episode.
Very weird, just checked the logs and it still shows as scrobbling while I stopped the episode 5 minutes ago.
retrying after 1 seconds (try: 1/2)
INFO on_play: <Episode:1287:Prison-Break-s02e01>: 95.620810%, State:
playing, Watched: False, LastViewed: None
INFO on_play: <Episode:1287:Prison-Break-s02e01>: 95.662229%, State:
playing, Watched: False, LastViewed: None
WARNING Rate Limit Exceeded for plextraktsync.trakt.ScrobblerProxy.update(),
retrying after 1 seconds (try: 1/2)
INFO on_play: <Episode:1287:Prison-Break-s02e01>: 95.695243%, State:
playing, Watched: False, LastViewed: None
WARNING Rate Limit Exceeded for plextraktsync.trakt.ScrobblerProxy.update(),
retrying after 1 seconds (try: 1/2)
INFO on_play: <Episode:1287:Prison-Break-s02e01>: 95.736542%, State:
playing, Watched: False, LastViewed: None
INFO on_play: <Episode:1287:Prison-Break-s02e01>: 95.778162%, State:
playing, Watched: False, LastViewed: None
WARNING Rate Limit Exceeded for plextraktsync.trakt.ScrobblerProxy.update(),
retrying after 1 seconds (try: 1/2)
EDIT: Finally it stopped, it seems like its literally around 7 minutes behind.
retrying after 1 seconds (try: 1/2)
ERROR KeyError was raised: 'sessionKey'
INFO on_play: <Episode:1287:Prison-Break-s02e01>: 98.830658%, State:
stopped, Watched: False, LastViewed: None
ERROR KeyError was raised: 'sessionKey'
It marks it as played, but with a 5 to 8 minutes delay. This doesn't happen on 0.27.16. All instantly.
EDIT2: Well, I played 4 episodes in a row now and they all scrobbled fine without any delay. Nevermind, I looked wrong. It's still like 5 minutes behind.
As you can see here, the next episode is already playing for 1 minute but Plextraktsync is still scrobbling the episode from before: It also completely missed the E04 scrobble now. It didnt marked it as watched on Trakt.
you can perhaps enable debug log and check the rate of scribble api requests made. are they more frequent then?
and are you sure you not running another instance of the script from same outgoing ip?
and you should make another issue with ERROR KeyError was raised: 'sessionKey'
error. I'm guessing debug log contains trace as well where it comes from.
and are you sure you not running another instance of the script from same outgoing ip?
I think I know what is going on. Last week my provider turned on CGNAT. Which basicly means because they are running out of IPv4 addresses they give you a 100.xx.xx.xx IP which you share with other people. Since I found out about that yesterday, because I couldnt connect to my VPN anymore, I called their servicedesk and they turned it off for me and my IP switched back to a similar one I had before. I rebooted my server and container and I don't get the warnings anymore. I think it worked fine on the old version because that API wasn't used a lot anymore. Sorry for the inconvenience. I hope this is it because I haven't seen the error since.
I'll make an issue about the sessionKey error when I get it again, I turned on debugging for now.
if I look my plextraktsync log, I see it submits results every 10s, not often
$ grep trakt.tv/scrobble/start plextraktsync.log | grep RESPONSE
2024-01-20 20:33:21,229 DEBUG[trakt.core]:RESPONSE [post] (https://api.trakt.tv/scrobble/start): <Response [201]>
2024-01-20 20:33:31,125 DEBUG[trakt.core]:RESPONSE [post] (https://api.trakt.tv/scrobble/start): <Response [201]>
2024-01-20 20:33:41,222 DEBUG[trakt.core]:RESPONSE [post] (https://api.trakt.tv/scrobble/start): <Response [201]>
2024-01-20 20:33:51,142 DEBUG[trakt.core]:RESPONSE [post] (https://api.trakt.tv/scrobble/start): <Response [201]>
you may also test this pr:
it will limit requests made by this application not to exceed thresholds.
I get them again ofcourse 10 minutes after I posted that I didn't see the errors anymore..
2024-01-20 19:53:57,212 DEBUG[PlexTraktSync.ScrobblerProxy]:pause(<TVEpisode>: Prison Break S2E7 Buried): 81.06772727272727
2024-01-20 19:53:57,213 DEBUG[trakt.core]:post: https://api.trakt.tv/scrobble/pause
2024-01-20 19:53:57,213 DEBUG[trakt.core]:method, url :: post, https://api.trakt.tv/scrobble/pause
2024-01-20 19:53:57,216 DEBUG[requests_cache.policy.actions]:Cache directives from request headers: CacheDirectives()
2024-01-20 19:53:57,217 DEBUG[requests_cache.policy.actions]:Pre-read cache checks: disabled method
2024-01-20 19:53:57,217 DEBUG[requests_cache.policy.actions]:Post-read cache actions: CacheActions(expire_after=-1, send_request=True, skip_read=True)
2024-01-20 19:53:57,324 DEBUG[urllib3.connectionpool]:https://api.trakt.tv:443 "POST /scrobble/pause HTTP/1.1" 429 None
2024-01-20 19:53:57,326 DEBUG[requests_cache.policy.actions]:Cache directives from response headers: CacheDirectives(no_cache=True)
2024-01-20 19:53:57,326 DEBUG[requests_cache.policy.actions]:Pre-write cache checks: disabled method, disabled status
2024-01-20 19:53:57,326 DEBUG[requests_cache.session]:Skipping cache write for URL: https://api.trakt.tv/scrobble/pause
2024-01-20 19:53:57,326 DEBUG[trakt.core]:RESPONSE [post] (https://api.trakt.tv/scrobble/pause): <Response [429]>
2024-01-20 19:53:57,326 WARNING[PlexTraktSync]:Rate Limit Exceeded for plextraktsync.trakt.ScrobblerProxy.pause(), retrying after 1 seconds (try: 1/2)
2024-01-20 19:53:57,330 DEBUG[PlexTraktSync]:{'name': 'AUTHED_API_POST_LIMIT', 'period': 1, 'limit': 1, 'remaining': 0, 'until': '2024-01-20T18:53:58Z'}
2024-01-20 19:53:58,331 DEBUG[PlexTraktSync.ScrobblerProxy]:pause(<TVEpisode>: Prison Break S2E7 Buried): 81.06772727272727
you may also test this pr:
* [Refactor: Add TraktScrobbleWorker worker #1757](https://github.com/Taxel/PlexTraktSync/pull/1757)
it will limit requests made by this application not to exceed thresholds.
I will test it, can you give a brief description on how to merge this in my docker image?
see readme.md how to install from pull request.
the idea of logs checking was to check how often it plextraktsync makes the scribble post requests. i.e. the log entry timestamps.
see readme.md how to install from pull request.
Doesn't seem to work. Followed instructions but got an error, I installed it via pipx for convenience. Instructions we're pretty clear.
desiler@skywalker:~$ plextraktsync@1757 self-update
Installed as pr #1757, enabling pr mode
Uninstalling previous plextraktsync@1757
pipx uninstall plextraktsync@1757
uninstalled PlexTraktSync@1757! ✨ 🌟 ✨
Updating PlexTraktSync to the pull request #1757 version using pipx
pipx install --suffix=@1757 --force git+https://github.com/Taxel/PlexTraktSync@refs/pull/1757/head
installed package PlexTraktSync 0.28.0.dev0 (PlexTraktSync@1757), installed using Python 3.10.12
These apps are now globally available
- plextraktsync@1757
done! ✨ 🌟 ✨
desiler@skywalker:~$ plextraktsync@1757 watch
INFO Connecting with url: https://xxx.3e3569cb1a934e20a2b3b210ea983d2b.plex.direct:32400, timeout 30 seconds
ERROR HTTPSConnectionPool(host='xxx.3e3569cb1a934e20a2b3b210ea983d2b.plex.direct', port=32400): Max retries exceeded with url: / (Caused by
NameResolutionError("<urllib3.connection.HTTPSConnection object at 0x7f94ecc556c0>: Failed to resolve '192-168-0-150.3e3569cb1a934e20a2b3b210ea983d2b.plex.direct'
([Errno -3] Temporary failure in name resolution)"))
WARNING Adding rewritten http url to connect with: http://xxx.3e3569cb1a934e20a2b3b210ea983d2b.plex.direct:32400
INFO Connecting with url: https://172-18-0-1.3e3569cb1a934e20a2b3b210ea983d2b.plex.direct:32400, timeout 30 seconds
ERROR HTTPSConnectionPool(host='172-18-0-1.3e3569cb1a934e20a2b3b210ea983d2b.plex.direct', port=32400): Max retries exceeded with url: / (Caused by
NameResolutionError("<urllib3.connection.HTTPSConnection object at 0x7f94ecc563b0>: Failed to resolve '172-18-0-1.3e3569cb1a934e20a2b3b210ea983d2b.plex.direct' ([Errno
-3] Temporary failure in name resolution)"))
WARNING Adding rewritten http url to connect with: http://172-18-0-1.3e3569cb1a934e20a2b3b210ea983d2b.plex.direct:32400
INFO Connecting with url: http://xxx, timeout 30 seconds
ERROR No module named 'plextraktsync.media'
╭───────────────────────────────────────────────────────────────── Traceback (most recent call last) ──────────────────────────────────────────────────────────────────╮ │ /home/desiler/.local/pipx/venvs/plextraktsync@1757/lib/python3.10/site-packages/plextraktsync/cli.py:26 in wrap │ │ │ │ 23 │ │ │ cmd = getattr(module, name) │ │ 24 │ │ │ │ │ 25 │ │ │ try: │ │ ❱ 26 │ │ │ │ cmd(*args, **kwargs) │ │ 27 │ │ │ except ClickException as e: │ │ 28 │ │ │ │ from plextraktsync.factory import logger │ │ 29 │ │ │ │ logger.fatal(f"Error running {name} command: {str(e)}") │ │ │ │ /home/desiler/.local/pipx/venvs/plextraktsync@1757/lib/python3.10/site-packages/plextraktsync/commands/watch.py:14 in watch │ │ │ │ 11 │ │ server=server, │ │ 12 │ ) │ │ 13 │ ws = factory.web_socket_listener │ │ ❱ 14 │ updater = factory.watch_state_updater │ │ 15 │ │ │ 16 │ ws.on(ServerStarted, updater.on_start) │ │ 17 │ ws.on( │ │ │ │ /usr/lib/python3.10/functools.py:981 in __get__ │ │ │ │ 978 │ │ │ │ # check if another thread filled cache while we awaited lock │ │ 979 │ │ │ │ val = cache.get(self.attrname, _NOT_FOUND) │ │ 980 │ │ │ │ if val is _NOT_FOUND: │ │ ❱ 981 │ │ │ │ │ val = self.func(instance) │ │ 982 │ │ │ │ │ try: │ │ 983 │ │ │ │ │ │ cache[self.attrname] = val │ │ 984 │ │ │ │ │ except TypeError: │ │ │ │ /home/desiler/.local/pipx/venvs/plextraktsync@1757/lib/python3.10/site-packages/plextraktsync/util/Factory.py:213 in watch_state_updater │ │ │ │ 210 │ │ return WatchStateUpdater( │ │ 211 │ │ │ plex=self.plex_api, │ │ 212 │ │ │ trakt=self.trakt_api, │ │ ❱ 213 │ │ │ mf=self.media_factory, │ │ 214 │ │ │ config=self.config, │ │ 215 │ │ ) │ │ 216 │ │ │ │ /usr/lib/python3.10/functools.py:981 in __get__ │ │ │ │ 978 │ │ │ │ # check if another thread filled cache while we awaited lock │ │ 979 │ │ │ │ val = cache.get(self.attrname, _NOT_FOUND) │ │ 980 │ │ │ │ if val is _NOT_FOUND: │ │ ❱ 981 │ │ │ │ │ val = self.func(instance) │ │ 982 │ │ │ │ │ try: │ │ 983 │ │ │ │ │ │ cache[self.attrname] = val │ │ 984 │ │ │ │ │ except TypeError: │ │ │ │ /home/desiler/.local/pipx/venvs/plextraktsync@1757/lib/python3.10/site-packages/plextraktsync/util/Factory.py:54 in media_factory │ │ │ │ 51 │ │ │ 52 │ @cached_property │ │ 53 │ def media_factory(self): │ │ ❱ 54 │ │ from plextraktsync.media.MediaFactory import MediaFactory │ │ 55 │ │ │ │ 56 │ │ trakt = self.trakt_api │ │ 57 │ │ plex = self.plex_api │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ModuleNotFoundError: No module named 'plextraktsync.media'
Error: Error running watch command: No module named 'plextraktsync.media'
I also seem to get the WARNING Rate Limit Exceeded for plextraktsync.trakt.ScrobblerProxy.update() right after I start it.
Followed instructions but got an error
I don't have my crystal ball here. which instructions you follow (copy text), what did you do (share commands and output)?
Error: Error running watch command: No module named 'plextraktsync.media'
Rebased:
ERROR HTTPSConnectionPool
you may want to edit your servers.yml and put working URL as first
Followed instructions but got an error
I don't have my crystal ball here. which instructions you follow (copy text), what did you do (share commands and output)?
Error: Error running watch command: No module named 'plextraktsync.media'
Rebased:
* [Refactor: Add TraktScrobbleWorker worker #1757 (comment)](https://github.com/Taxel/PlexTraktSync/pull/1757#issuecomment-1904098688)
ERROR HTTPSConnectionPool
you may want to edit your servers.yml and put working URL as first
You dont really need a crystal ball to guess which instructions I followed, because you can literally see the what command I entered to update the git pull request.
Anyhow, thanks for updating the PR, I will try it again and edit my servers.yml so that only the URL that doesnt timeout is in it.
I still get the issue, also it seems to be way more out of sync now. I pause the episode and it still shows it scrobbling almost 10 minutes later on Trakt. It keeps spawning new workers with different percentages. here is the full log because it's a bit long:
EDIT: 15 minutes later, I even stopped it. And logs still shows its paused and its still scrobbling on Trakt.
You dont really need a crystal ball to guess which instructions I followed, because you can literally see the what command I entered to update the git pull request.
there are at least three ways documented to install pr for docker. and I can see which one you succeeded, not the one(s) you failed.
also. don't put things to pastebin. too many ads, and the pastes expire. you can attach .txt extension files to github issues.
after. that merge, the timer there could be updated not to submit more than N seconds. what would the value be? currently it's 1.1 seconds:
Confirmation
The problem
I keep getting a Rate Limit Exceeded for plextraktsync.trakt.ScrobblerProxy.update every 1 second when I run PlexTraktSync with the watch command since version v0.28.x
Error trace / logs
Expected behavior
To scrobble without hitting the Rate Limit.
Steps to reproduce the behavior
Inspect of problematic items
Seems to be happening since this commit: https://github.com/Taxel/PlexTraktSync/commit/48ace04932e4fae10be29b1527bd2803f390f1a5
Workarounds
Reverting back to v0.27.15 got rid of the Rate Limit Exceeded errors. I didn't try other versions.
Install method
docker-compose
Config file contents
Version
0.28.2
Python Version
3.12.1
Plex Server Version
1.32.8.7639
Operating System and Version
Ubuntu 22.04