CastagnaIT / plugin.video.netflix

InputStream based Netflix plugin for Kodi
MIT License
1.91k stars 259 forks source link

TypeError: __init__() missing 2 required keyword-only arguments: 'request' and 'response' #1425

Closed Vitocorl closed 1 year ago

Vitocorl commented 2 years ago

Netflix add-on version

1.18.10

Operative systems used

Windows

Kodi version used

Kodi 19 (Matrix)

Description of the bug

I open Netflix addon and when i press to select my profile i get the following error:

TypeError: init() missing 2 required keyword-only arguments: 'request' and 'response'

I also tried to open the addon from the Settings, Addons, My addons, Video addons menu, with the same result

Steps to reproduce the behavior

Open Netflix addon Press to select profile

Debug log - mandatory

https://paste.kodi.tv/ukugisozor.kodi

Possible fix

No response

Additional context

No response

Screenshots

No response

svnoak commented 2 years ago

I've got the same error message on Raspbian v.1.18.10, default theme and opening Netflix add-on through any possible means.

MPParsley commented 2 years ago

Seems like yesterday's release introduced a bug :

2022-09-27 21:45:58.627 T:13812   ERROR <general>: [plugin.video.netflix (0)] Traceback (most recent call last):
                                                     File "C:\Users\stef\AppData\Roaming\Kodi\addons\plugin.video.netflix\resources\lib\services\cache_management.py", line 163, in get
                                                       cache_entry = self._get_cache_bucket(bucket['name'])[identifier]
                                                   KeyError: '7O6KR5ODUZDINEGJ7FYJCUM2YY_loco_list'

                                                   The above exception was the direct cause of the following exception:

                                                   Traceback (most recent call last):
                                                     File "C:\Users\stef\AppData\Roaming\Kodi\addons\plugin.video.netflix\resources\lib\common\cache_utils.py", line 70, in wrapper
                                                       return G.CACHE.get(_bucket, identifier)
                                                     File "C:\Users\stef\AppData\Roaming\Kodi\addons\plugin.video.netflix\resources\lib\services\cache_management.py", line 171, in get
                                                       raise CacheMiss from exc
                                                   resources.lib.common.exceptions.CacheMiss

                                                   During handling of the above exception, another exception occurred:

                                                   Traceback (most recent call last):
                                                     File "C:\Users\stef\AppData\Roaming\Kodi\addons\plugin.video.netflix\resources\lib\services\http_server.py", line 105, in handle_request
                                                       ret_data = _call_func(func, pickle.loads(data))
                                                     File "C:\Users\stef\AppData\Roaming\Kodi\addons\plugin.video.netflix\resources\lib\services\http_server.py", line 164, in _call_func
                                                       return func()
                                                     File "C:\Users\stef\AppData\Roaming\Kodi\addons\plugin.video.netflix\resources\lib\utils\logging.py", line 139, in timing_wrapper
                                                       return func(*args, **kwargs)
                                                     File "C:\Users\stef\AppData\Roaming\Kodi\addons\plugin.video.netflix\resources\lib\services\nfsession\directorybuilder\dir_builder.py", line 48, in get_mainmenu
                                                       loco_list = self.req_loco_list_root()
                                                     File "C:\Users\stef\AppData\Roaming\Kodi\addons\plugin.video.netflix\resources\lib\common\cache_utils.py", line 72, in wrapper
                                                       output = func(*args, **kwargs)
                                                     File "C:\Users\stef\AppData\Roaming\Kodi\addons\plugin.video.netflix\resources\lib\services\nfsession\directorybuilder\dir_path_requests.py", line 65, in req_loco_list_root
                                                       path_response = self.nfsession.path_request(**call_args)
                                                     File "C:\Users\stef\AppData\Roaming\Kodi\addons\plugin.video.netflix\resources\lib\utils\logging.py", line 139, in timing_wrapper
                                                       return func(*args, **kwargs)
                                                     File "C:\Users\stef\AppData\Roaming\Kodi\addons\plugin.video.netflix\resources\lib\services\nfsession\session\path_requests.py", line 32, in path_request
                                                       response = self.post_safe(
                                                     File "C:\Users\stef\AppData\Roaming\Kodi\addons\plugin.video.netflix\resources\lib\services\nfsession\session\access.py", line 77, in post_safe
                                                       return self.post(endpoint, **kwargs)
                                                     File "C:\Users\stef\AppData\Roaming\Kodi\addons\plugin.video.netflix\resources\lib\services\nfsession\session\http_requests.py", line 41, in post
                                                       return self._request_call(
                                                     File "C:\Users\stef\AppData\Roaming\Kodi\addons\plugin.video.netflix\resources\lib\utils\logging.py", line 139, in timing_wrapper
                                                       return func(*args, **kwargs)
                                                     File "C:\Users\stef\AppData\Roaming\Kodi\addons\plugin.video.netflix\resources\lib\services\nfsession\session\http_requests.py", line 48, in _request_call
                                                       return self._request(method, endpoint, None, **kwargs)
                                                     File "C:\Users\stef\AppData\Roaming\Kodi\addons\plugin.video.netflix\resources\lib\services\nfsession\session\http_requests.py", line 103, in _request
                                                       return self._request(method, endpoint, True, **kwargs)
                                                     File "C:\Users\stef\AppData\Roaming\Kodi\addons\plugin.video.netflix\resources\lib\services\nfsession\session\http_requests.py", line 106, in _request
                                                       response.raise_for_status()
                                                     File "C:\Users\stef\AppData\Roaming\Kodi\addons\plugin.video.netflix\packages\httpx\_models.py", line 1402, in raise_for_status
                                                       raise HTTPStatusError(message, request=request, response=self)
                                                   httpx.HTTPStatusError: 404 Client Error: Not Found for url: https://www.netflix.com/api/shakti/vedfdb694/pathEvaluator?drmSystem=widevine&withSize=false&materialize=false&routeAPIRequestsThroughFTL=false&isVolatileBillboardsEnabled=true&isTop10Supported=true&categoryCraversEnabled=false&original_path=%2Fshakti%2Fvedfdb694%2FpathEvaluator
                                                   For more information check: https://httpstatuses.com/404

@Vitocorl, seems like your skin also has another error:

2022-09-27 21:45:36.492 T:14104   ERROR <general>: :46: 
2022-09-27 21:45:36.492 T:14104   ERROR <general>: SyntaxWarning
2022-09-27 21:45:36.492 T:14104   ERROR <general>: : 
2022-09-27 21:45:36.492 T:14104   ERROR <general>: "is not" with a literal. Did you mean "!="?
2022-09-27 21:45:36.492 T:14104   ERROR <general>: 

2022-09-27 21:45:36.493 T:14104   ERROR <general>:   
2022-09-27 21:45:36.493 T:14104   ERROR <general>: if (self.selecteditem is not ""):
petvoigt commented 2 years ago

I've stumbled over exactly the same issue just a few seconds ago after the nightly auto-update of the Netflix addon from 1.18.9 to 1.18.10 on a Raspi 4 with Kodi 19.

ddavid09 commented 2 years ago

The same problem.

MPParsley commented 2 years ago

Changing is not to != fixed it for me: https://github.com/CastagnaIT/plugin.video.netflix/compare/v1.18.9...v1.18.10#diff-2e96dd6dd2ab596ae2fceddc34dbe4c10ddaef907c8340d75418dd6ea222c93dR112

archtur commented 2 years ago

Seems like yesterday's release introduced a bug :

2022-09-27 21:45:58.627 T:13812   ERROR <general>: [plugin.video.netflix (0)] Traceback (most recent call last):
                                                     File "C:\Users\stef\AppData\Roaming\Kodi\addons\plugin.video.netflix\resources\lib\services\cache_management.py", line 163, in get
                                                       cache_entry = self._get_cache_bucket(bucket['name'])[identifier]
                                                   KeyError: '7O6KR5ODUZDINEGJ7FYJCUM2YY_loco_list'

                                                   The above exception was the direct cause of the following exception:

                                                   Traceback (most recent call last):
                                                     File "C:\Users\stef\AppData\Roaming\Kodi\addons\plugin.video.netflix\resources\lib\common\cache_utils.py", line 70, in wrapper
                                                       return G.CACHE.get(_bucket, identifier)
                                                     File "C:\Users\stef\AppData\Roaming\Kodi\addons\plugin.video.netflix\resources\lib\services\cache_management.py", line 171, in get
                                                       raise CacheMiss from exc
                                                   resources.lib.common.exceptions.CacheMiss

                                                   During handling of the above exception, another exception occurred:

                                                   Traceback (most recent call last):
                                                     File "C:\Users\stef\AppData\Roaming\Kodi\addons\plugin.video.netflix\resources\lib\services\http_server.py", line 105, in handle_request
                                                       ret_data = _call_func(func, pickle.loads(data))
                                                     File "C:\Users\stef\AppData\Roaming\Kodi\addons\plugin.video.netflix\resources\lib\services\http_server.py", line 164, in _call_func
                                                       return func()
                                                     File "C:\Users\stef\AppData\Roaming\Kodi\addons\plugin.video.netflix\resources\lib\utils\logging.py", line 139, in timing_wrapper
                                                       return func(*args, **kwargs)
                                                     File "C:\Users\stef\AppData\Roaming\Kodi\addons\plugin.video.netflix\resources\lib\services\nfsession\directorybuilder\dir_builder.py", line 48, in get_mainmenu
                                                       loco_list = self.req_loco_list_root()
                                                     File "C:\Users\stef\AppData\Roaming\Kodi\addons\plugin.video.netflix\resources\lib\common\cache_utils.py", line 72, in wrapper
                                                       output = func(*args, **kwargs)
                                                     File "C:\Users\stef\AppData\Roaming\Kodi\addons\plugin.video.netflix\resources\lib\services\nfsession\directorybuilder\dir_path_requests.py", line 65, in req_loco_list_root
                                                       path_response = self.nfsession.path_request(**call_args)
                                                     File "C:\Users\stef\AppData\Roaming\Kodi\addons\plugin.video.netflix\resources\lib\utils\logging.py", line 139, in timing_wrapper
                                                       return func(*args, **kwargs)
                                                     File "C:\Users\stef\AppData\Roaming\Kodi\addons\plugin.video.netflix\resources\lib\services\nfsession\session\path_requests.py", line 32, in path_request
                                                       response = self.post_safe(
                                                     File "C:\Users\stef\AppData\Roaming\Kodi\addons\plugin.video.netflix\resources\lib\services\nfsession\session\access.py", line 77, in post_safe
                                                       return self.post(endpoint, **kwargs)
                                                     File "C:\Users\stef\AppData\Roaming\Kodi\addons\plugin.video.netflix\resources\lib\services\nfsession\session\http_requests.py", line 41, in post
                                                       return self._request_call(
                                                     File "C:\Users\stef\AppData\Roaming\Kodi\addons\plugin.video.netflix\resources\lib\utils\logging.py", line 139, in timing_wrapper
                                                       return func(*args, **kwargs)
                                                     File "C:\Users\stef\AppData\Roaming\Kodi\addons\plugin.video.netflix\resources\lib\services\nfsession\session\http_requests.py", line 48, in _request_call
                                                       return self._request(method, endpoint, None, **kwargs)
                                                     File "C:\Users\stef\AppData\Roaming\Kodi\addons\plugin.video.netflix\resources\lib\services\nfsession\session\http_requests.py", line 103, in _request
                                                       return self._request(method, endpoint, True, **kwargs)
                                                     File "C:\Users\stef\AppData\Roaming\Kodi\addons\plugin.video.netflix\resources\lib\services\nfsession\session\http_requests.py", line 106, in _request
                                                       response.raise_for_status()
                                                     File "C:\Users\stef\AppData\Roaming\Kodi\addons\plugin.video.netflix\packages\httpx\_models.py", line 1402, in raise_for_status
                                                       raise HTTPStatusError(message, request=request, response=self)
                                                   httpx.HTTPStatusError: 404 Client Error: Not Found for url: https://www.netflix.com/api/shakti/vedfdb694/pathEvaluator?drmSystem=widevine&withSize=false&materialize=false&routeAPIRequestsThroughFTL=false&isVolatileBillboardsEnabled=true&isTop10Supported=true&categoryCraversEnabled=false&original_path=%2Fshakti%2Fvedfdb694%2FpathEvaluator
                                                   For more information check: https://httpstatuses.com/404

@Vitocorl, seems like your skin also has another error:

2022-09-27 21:45:36.492 T:14104   ERROR <general>: :46: 
2022-09-27 21:45:36.492 T:14104   ERROR <general>: SyntaxWarning
2022-09-27 21:45:36.492 T:14104   ERROR <general>: : 
2022-09-27 21:45:36.492 T:14104   ERROR <general>: "is not" with a literal. Did you mean "!="?
2022-09-27 21:45:36.492 T:14104   ERROR <general>: 

2022-09-27 21:45:36.493 T:14104   ERROR <general>:   
2022-09-27 21:45:36.493 T:14104   ERROR <general>: if (self.selecteditem is not ""):

Sorry, I cannot confirm this. I have the same issue (since today without updating anything since yesterday) with version 1.18.9 (Matrix on LibreELEC RaspberryPi).

MPParsley commented 2 years ago

Sorry, I cannot confirm this. I have the same issue (since today without updating anything since yesterday) with version 1.18.9 (Matrix on LibreELEC RaspberryPi).

On LibrELEC Automatic updates are enabled by default, sure you are on 1.18.9?

putrid1 commented 2 years ago

Changing is not to != fixed it for me: v1.18.9...v1.18.10#diff-2e96dd6dd2ab596ae2fceddc34dbe4c10ddaef907c8340d75418dd6ea222c93dR112

112if ret_data != None: 127if ret_data != None: did not resolved for me. Did you just change the file in /resources/lib/services/http_server.py and restart kodi? (ubuntu)

MPParsley commented 2 years ago

Sorry, I cannot confirm this. I have the same issue (since today without updating anything since yesterday) with version 1.18.9 (Matrix on LibreELEC RaspberryPi).

On LibreELEC Automatic updates are enabled by default, yet I see my LibreELEC also indicates 1.18.9+matrix.1, so you're right.

In fact I cleared the caches as well, this may have solved it for me since the bug is in cache_management.py.

sualk commented 2 years ago

Changing line 176 in resources/lib/services/nfsession/session/http_requests.py from

'original_path': f'/shakti/{G.LOCAL_DB.get_value("build_identifier", "", TABLE_SESSION)}/pathEvaluator'

to

'original_path': f'/nq/website/memberapi/{G.LOCAL_DB.get_value("build_identifier", "", TABLE_SESSION)}/pathEvaluator'

fixes the issue for me.

archtur commented 2 years ago

Sorry, I cannot confirm this. I have the same issue (since today without updating anything since yesterday) with version 1.18.9 (Matrix on LibreELEC RaspberryPi).

On LibrELEC Automatic updates are enabled by default, sure you are on 1.18.9?

Of course I checked the versions twice :). I have disabled automatic updates on my system.

dm2912 commented 2 years ago

Seems like yesterday's release introduced a bug :

Like others can confirm it wasnt introduced with yesterdays release. I had not updated and got this error today.

I only update to see if the error was fixed by new release (None of my addons are set to auto update)

but yes, same request/response error here.

SYSTEM: Coreelec

Log is a mess

2022-09-27 21:57:09.601 T:4614     INFO <general>: CPythonInvoker(60, /storage/.kodi/addons/plugin.video.netflix/addon.py): script successfully run
2022-09-27 21:57:11.119 T:4614     INFO <general>: Python interpreter stopped
2022-09-27 21:57:39.516 T:3708     INFO <general>: CActiveAESink::OpenSink - initialize sink
2022-09-27 21:57:39.516 T:3708     INFO <general>: CAESinkALSA::Initialize - Attempting to open device "@"
2022-09-27 21:57:39.523 T:3708     INFO <general>: CAESinkALSA::Initialize - Opened device "sysdefault"
2022-09-27 21:57:39.525 T:3708     INFO <general>: CAESinkALSA::InitializeHW - Your hardware does not support AE_FMT_FLOAT, trying other formats
2022-09-27 21:57:39.526 T:3708     INFO <general>: CAESinkALSA::InitializeHW - Using data format AE_FMT_S24NE4
2022-09-27 21:57:39.531 T:4650     INFO <general>: initializing python engine.
2022-09-27 21:57:39.636 T:4650     INFO <general>: [plugin.video.netflix (18)] The debug logging is set as DISABLED
2022-09-27 21:57:41.566 T:4657    ERROR <general>: [plugin.video.netflix (0)] IPC callback raised exception: 404 Client Error: Not Found for url: https://www.netflix.com/api/shakti/vedfdb694/pathEvaluator?drmSystem=widevine&withSize=false&materialize=false&routeAPIRequestsThroughFTL=false&isVolatileBillboardsEnabled=true&isTop10Supported=true&categoryCraversEnabled=false&original_path=%2Fshakti%2Fvedfdb694%2FpathEvaluator
                                                   For more information check: https://httpstatuses.com/404
2022-09-27 21:57:41.575 T:4657    ERROR <general>: [plugin.video.netflix (0)] Traceback (most recent call last):
                                                     File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/services/cache_management.py", line 163, in get
                                                       cache_entry = self._get_cache_bucket(bucket['name'])[identifier]
                                                   KeyError: 'VGIFEJTL3NE4PIWDXGCIW2SW2Q_loco_list'

                                                   The above exception was the direct cause of the following exception:

                                                   Traceback (most recent call last):
                                                     File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/common/cache_utils.py", line 70, in wrapper
                                                       return G.CACHE.get(_bucket, identifier)
                                                     File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/services/cache_management.py", line 171, in get
                                                       raise CacheMiss from exc
                                                   resources.lib.common.exceptions.CacheMiss

                                                   During handling of the above exception, another exception occurred:

                                                   Traceback (most recent call last):
                                                     File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/services/http_server.py", line 105, in handle_request
                                                       ret_data = _call_func(func, pickle.loads(data))
                                                     File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/services/http_server.py", line 164, in _call_func
                                                       return func()
                                                     File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/utils/logging.py", line 139, in timing_wrapper
                                                       return func(*args, **kwargs)
                                                     File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/services/nfsession/directorybuilder/dir_builder.py", line 48, in get_mainmenu
                                                       loco_list = self.req_loco_list_root()
                                                     File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/common/cache_utils.py", line 72, in wrapper
                                                       output = func(*args, **kwargs)
                                                     File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/services/nfsession/directorybuilder/dir_path_requests.py", line 65, in req_loco_list_root
                                                       path_response = self.nfsession.path_request(**call_args)
                                                     File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/utils/logging.py", line 139, in timing_wrapper
                                                       return func(*args, **kwargs)
                                                     File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/services/nfsession/session/path_requests.py", line 32, in path_request
                                                       response = self.post_safe(
                                                     File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/services/nfsession/session/access.py", line 77, in post_safe
                                                       return self.post(endpoint, **kwargs)
                                                     File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/services/nfsession/session/http_requests.py", line 41, in post
                                                       return self._request_call(
                                                     File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/utils/logging.py", line 139, in timing_wrapper
                                                       return func(*args, **kwargs)
                                                     File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/services/nfsession/session/http_requests.py", line 48, in _request_call
                                                       return self._request(method, endpoint, None, **kwargs)
                                                     File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/services/nfsession/session/http_requests.py", line 103, in _request
                                                       return self._request(method, endpoint, True, **kwargs)
                                                     File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/services/nfsession/session/http_requests.py", line 106, in _request
                                                       response.raise_for_status()
                                                     File "/storage/.kodi/addons/plugin.video.netflix/packages/httpx/_models.py", line 1402, in raise_for_status
                                                       raise HTTPStatusError(message, request=request, response=self)
                                                   httpx.HTTPStatusError: 404 Client Error: Not Found for url: https://www.netflix.com/api/shakti/vedfdb694/pathEvaluator?drmSystem=widevine&withSize=false&materialize=false&routeAPIRequestsThroughFTL=false&isVolatileBillboardsEnabled=true&isTop10Supported=true&categoryCraversEnabled=false&original_path=%2Fshakti%2Fvedfdb694%2FpathEvaluator
                                                   For more information check: https://httpstatuses.com/404

2022-09-27 21:57:41.847 T:4650    ERROR <general>: [plugin.video.netflix (18)] Traceback (most recent call last):
                                                     File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/run_addon.py", line 29, in wrapper
                                                       func(*args, **kwargs)
                                                     File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/run_addon.py", line 245, in run
                                                       success = route(pathitems)
                                                     File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/run_addon.py", line 87, in lazy_login_wrapper
                                                       return func(*args, **kwargs)
                                                     File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/run_addon.py", line 127, in route
                                                       _execute(nav_handler, pathitems[1:], G.REQUEST_PARAMS, root_handler)
                                                     File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/run_addon.py", line 156, in _execute
                                                       executor(pathitems=pathitems)
                                                     File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/utils/logging.py", line 139, in timing_wrapper
                                                       return func(*args, **kwargs)
                                                     File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/navigation/directory_utils.py", line 28, in set_custom_viewmode
                                                       override_content_type = func(*args, **kwargs)
                                                     File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/navigation/directory.py", line 102, in home
                                                       dir_items, extra_data = common.make_call('get_mainmenu')  # pylint: disable=unused-variable
                                                     File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/utils/logging.py", line 139, in timing_wrapper
                                                       return func(*args, **kwargs)
                                                     File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/common/ipc.py", line 94, in make_call
                                                       return make_http_call(endpoint, func_name, data)
                                                     File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/common/ipc.py", line 115, in make_http_call
                                                       _data = pickle.loads(received_data)
                                                   TypeError: __init__() missing 2 required keyword-only arguments: 'request' and 'response'

2022-09-27 21:57:41.849 T:3644     INFO <general>: Loading skin file: DialogConfirm.xml, load type: KEEP_IN_MEMORY
2022-09-27 21:58:26.828 T:3708     INFO <general>: CActiveAESink::OpenSink - initialize sink
2022-09-27 21:58:26.829 T:3708     INFO <general>: CAESinkALSA::Initialize - Attempting to open device "@"
2022-09-27 21:58:26.837 T:3708     INFO <general>: CAESinkALSA::Initialize - Opened device "sysdefault"
2022-09-27 21:58:26.837 T:3708     INFO <general>: CAESinkALSA::InitializeHW - Your hardware does not support AE_FMT_FLOAT, trying other formats
2022-09-27 21:58:26.837 T:3708     INFO <general>: CAESinkALSA::InitializeHW - Using data format AE_FMT_S24NE4
2022-09-27 21:58:27.148 T:4650     INFO <general>: CPythonInvoker(62, /storage/.kodi/addons/plugin.video.netflix/addon.py): script successfully run
2022-09-27 21:58:27.148 T:4648    ERROR <general>: GetDirectory - Error getting plugin://plugin.video.netflix/directory/home/?switch_profile_guid=VGIFEJTL3NE4PIWDXGCIW2SW2Q
2022-09-27 21:58:27.175 T:3644    ERROR <general>: CGUIMediaWindow::GetDirectory(plugin://plugin.video.netflix/directory/home/?switch_profile_guid=VGIFEJTL3NE4PIWDXGCIW2SW2Q) failed
2022-09-27 21:58:27.188 T:4650     INFO <general>: initializing python engine.
2022-09-27 21:58:28.850 T:3644     INFO <general>: NFS is idle. Closing the remaining connections.
2022-09-27 21:58:35.374 T:4673    ERROR <general>: [plugin.video.netflix (0)] IPC callback raised exception: 404 Client Error: Not Found for url: https://www.netflix.com/api/shakti/vedfdb694/pathEvaluator?drmSystem=widevine&withSize=false&materialize=false&routeAPIRequestsThroughFTL=false&isVolatileBillboardsEnabled=true&isTop10Supported=true&categoryCraversEnabled=false&original_path=%2Fshakti%2Fvedfdb694%2FpathEvaluator
                                                   For more information check: https://httpstatuses.com/404
2022-09-27 21:58:35.375 T:4673    ERROR <general>: [plugin.video.netflix (0)] Traceback (most recent call last):
                                                     File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/services/cache_management.py", line 163, in get
                                                       cache_entry = self._get_cache_bucket(bucket['name'])[identifier]
                                                   KeyError: 'VGIFEJTL3NE4PIWDXGCIW2SW2Q_loco_list'

                                                   The above exception was the direct cause of the following exception:

                                                   Traceback (most recent call last):
                                                     File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/common/cache_utils.py", line 70, in wrapper
                                                       return G.CACHE.get(_bucket, identifier)
                                                     File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/services/cache_management.py", line 171, in get
                                                       raise CacheMiss from exc
                                                   resources.lib.common.exceptions.CacheMiss

                                                   During handling of the above exception, another exception occurred:

                                                   Traceback (most recent call last):
                                                     File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/services/http_server.py", line 105, in handle_request
                                                       ret_data = _call_func(func, pickle.loads(data))
                                                     File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/services/http_server.py", line 164, in _call_func
                                                       return func()
                                                     File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/utils/logging.py", line 139, in timing_wrapper
                                                       return func(*args, **kwargs)
                                                     File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/services/nfsession/directorybuilder/dir_builder.py", line 48, in get_mainmenu
                                                       loco_list = self.req_loco_list_root()
                                                     File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/common/cache_utils.py", line 72, in wrapper
                                                       output = func(*args, **kwargs)
                                                     File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/services/nfsession/directorybuilder/dir_path_requests.py", line 65, in req_loco_list_root
                                                       path_response = self.nfsession.path_request(**call_args)
                                                     File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/utils/logging.py", line 139, in timing_wrapper
                                                       return func(*args, **kwargs)
                                                     File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/services/nfsession/session/path_requests.py", line 32, in path_request
                                                       response = self.post_safe(
                                                     File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/services/nfsession/session/access.py", line 77, in post_safe
                                                       return self.post(endpoint, **kwargs)
                                                     File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/services/nfsession/session/http_requests.py", line 41, in post
                                                       return self._request_call(
                                                     File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/utils/logging.py", line 139, in timing_wrapper
                                                       return func(*args, **kwargs)
                                                     File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/services/nfsession/session/http_requests.py", line 48, in _request_call
                                                       return self._request(method, endpoint, None, **kwargs)
                                                     File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/services/nfsession/session/http_requests.py", line 103, in _request
                                                       return self._request(method, endpoint, True, **kwargs)
                                                     File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/services/nfsession/session/http_requests.py", line 106, in _request
                                                       response.raise_for_status()
                                                     File "/storage/.kodi/addons/plugin.video.netflix/packages/httpx/_models.py", line 1402, in raise_for_status
                                                       raise HTTPStatusError(message, request=request, response=self)
                                                   httpx.HTTPStatusError: 404 Client Error: Not Found for url: https://www.netflix.com/api/shakti/vedfdb694/pathEvaluator?drmSystem=widevine&withSize=false&materialize=false&routeAPIRequestsThroughFTL=false&isVolatileBillboardsEnabled=true&isTop10Supported=true&categoryCraversEnabled=false&original_path=%2Fshakti%2Fvedfdb694%2FpathEvaluator
                                                   For more information check: https://httpstatuses.com/404

2022-09-27 21:58:35.377 T:4650    ERROR <general>: [plugin.video.netflix (18)] Traceback (most recent call last):
                                                     File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/run_addon.py", line 29, in wrapper
                                                       func(*args, **kwargs)
                                                     File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/run_addon.py", line 245, in run
                                                       success = route(pathitems)
                                                     File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/run_addon.py", line 87, in lazy_login_wrapper
                                                       return func(*args, **kwargs)
                                                     File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/run_addon.py", line 127, in route
                                                       _execute(nav_handler, pathitems[1:], G.REQUEST_PARAMS, root_handler)
                                                     File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/run_addon.py", line 156, in _execute
                                                       executor(pathitems=pathitems)
                                                     File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/navigation/directory.py", line 69, in root
                                                       self.home(None)
                                                     File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/utils/logging.py", line 139, in timing_wrapper
                                                       return func(*args, **kwargs)
                                                     File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/navigation/directory_utils.py", line 28, in set_custom_viewmode
                                                       override_content_type = func(*args, **kwargs)
                                                     File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/navigation/directory.py", line 102, in home
                                                       dir_items, extra_data = common.make_call('get_mainmenu')  # pylint: disable=unused-variable
                                                     File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/utils/logging.py", line 139, in timing_wrapper
                                                       return func(*args, **kwargs)
                                                     File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/common/ipc.py", line 94, in make_call
                                                       return make_http_call(endpoint, func_name, data)
                                                     File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/common/ipc.py", line 115, in make_http_call
                                                       _data = pickle.loads(received_data)
                                                   TypeError: __init__() missing 2 required keyword-only arguments: 'request' and 'response'
dm2912 commented 2 years ago

Changing line 176 in resources/lib/services/nfsession/session/http_requests.py from

'original_path': f'/shakti/{G.LOCAL_DB.get_value("build_identifier", "", TABLE_SESSION)}/pathEvaluator'

to

'original_path': f'/nq/website/memberapi/{G.LOCAL_DB.get_value("build_identifier", "", TABLE_SESSION)}/pathEvaluator'

fixes the issue for me.

Can confirm. In Coreelec 19.4 this fixed the issue for me as well.

Visionario commented 2 years ago

Changing line 176 in resources/lib/services/nfsession/session/http_requests.py from

'original_path': f'/shakti/{G.LOCAL_DB.get_value("build_identifier", "", TABLE_SESSION)}/pathEvaluator'

to

'original_path': f'/nq/website/memberapi/{G.LOCAL_DB.get_value("build_identifier", "", TABLE_SESSION)}/pathEvaluator'

fixes the issue for me.

It works for me too. Kubuntu 20, Matrix 19

gilbertoferreira commented 2 years ago

Changing is not to != fixed it for me: v1.18.9...v1.18.10#diff-2e96dd6dd2ab596ae2fceddc34dbe4c10ddaef907c8340d75418dd6ea222c93dR112

Yes. Works for me too. Kubuntu Kinetic Kudu Kodi 20.0~alpha2+dfsg1-1build1

canice86 commented 2 years ago

Changing is not to != fixed it for me: v1.18.9...v1.18.10#diff-2e96dd6dd2ab596ae2fceddc34dbe4c10ddaef907c8340d75418dd6ea222c93dR112

I only encountered this error when reduced TTL caches via expert setting. I did this to reduce usage and thus allow other streaming apps (AmazonPrime, Disney+ Netflix) play properly. The addon was causing itself to play nothing ie. Circling to no end, failing to load any video.

zaphod24 commented 2 years ago

Still broken here after change on line 176 to resources/lib/services/nfsession/session/http_requests.py

2022-09-27 22:07:41.304 T:4655 ERROR : [plugin.video.netflix (0)] IPC callback raised exception: 404 Client Error: Not Found for url: https://www.netflix.com/api/shakti/vedfdb694/pathEvaluator?drmSystem=widevine&withSize=false&materialize=false&routeAPIRequestsThroughFTL=false&isVolatileBillboardsEnabled=true&isTop10Supported=true&categoryCraversEnabled=false&original_path=%2Fnq%2Fwebsite%2Fmemberapi%2Fvedfdb694%2FpathEvaluator

Goorzhel commented 2 years ago

LibreELEC 10.0.2, Kodi 19.4, Pi 4. All evidence in this thread points to an upstream API change.

I'm trying @sualk's fix at <...>/nfsession/session/http_requests.py:174 but it doesn't seem to be taking hold, like @zaphod24 reported. I've tried clearing the compiled Python files (find .kodi -path '*netflix*.pyc' -delete), as well as rebooting.

Logs starting from the point I enable the plugin's debug logging ``` 2022-09-27 20:40:25.040 T:1108 INFO : [plugin.video.netflix (0)] The debug logging is set as ENABLED 2022-09-27 20:40:39.581 T:840 ERROR : Control 55 in window 10025 has been asked to focus, but it can't 2022-09-27 20:40:39.676 T:1120 INFO : initializing python engine. 2022-09-27 20:40:39.693 T:1120 INFO : [plugin.video.netflix (2)] The debug logging is set as ENABLED 2022-09-27 20:40:39.694 T:1120 INFO : [plugin.video.netflix (2)] Started (Version 1.18.10+matrix.1) 2022-09-27 20:40:39.694 T:1120 INFO : [plugin.video.netflix (2)] URL is ParseResult(scheme='plugin', netloc='plugin.video.netflix', path='/', params='', query='', fragment='') 2022-09-27 20:40:39.869 T:1120 INFO : CPythonInvoker(7, /storage/.kodi/addons/plugin.video.netflix/addon.py): script successfully run 2022-09-27 20:40:40.494 T:1120 INFO : initializing python engine. 2022-09-27 20:40:40.519 T:1120 INFO : [plugin.video.netflix (2)] Started (Version 1.18.10+matrix.1) 2022-09-27 20:40:40.520 T:1120 INFO : [plugin.video.netflix (2)] URL is ParseResult(scheme='plugin', netloc='plugin.video.netflix', path='/directory/home/', params='', query='', fragment='') 2022-09-27 20:40:40.613 T:1258 INFO : [plugin.video.netflix (0)] The profile guid E346SWSMSVFODAZKKNZFCU3XF4 is already set, activation not needed. 2022-09-27 20:40:40.814 T:1259 WARNING : [plugin.video.netflix (0)] Attempt to refresh the session due to HTTP error 404 2022-09-27 20:40:41.722 T:1259 ERROR : [plugin.video.netflix (0)] IPC callback raised exception: 404 Client Error: Not Found for url: https://www.netflix.com/api/shakti/vedfdb694/pathEvaluator?drmSystem=widevine&withSize=false&materialize=false&routeAPIRequestsThroughFTL=false&isVolatileBillboardsEnabled=true&isTop10Supported=true&categoryCraversEnabled=false&original_path=%2Fnq%2Fwebsite%2Fmemberapi%2Fvedfdb694%2FpathEvaluator For more information check: https://httpstatuses.com/404 2022-09-27 20:40:41.724 T:1259 ERROR : [plugin.video.netflix (0)] Traceback (most recent call last): File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/services/cache_management.py", line 163, in get cache_entry = self._get_cache_bucket(bucket['name'])[identifier] KeyError: 'E346SWSMSVFODAZKKNZFCU3XF4_loco_list' The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/common/cache_utils.py", line 70, in wrapper return G.CACHE.get(_bucket, identifier) File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/services/cache_management.py", line 171, in get raise CacheMiss from exc resources.lib.common.exceptions.CacheMiss During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/services/http_server.py", line 105, in handle_request ret_data = _call_func(func, pickle.loads(data)) File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/services/http_server.py", line 164, in _call_func return func() File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/utils/logging.py", line 139, in timing_wrapper return func(*args, **kwargs) File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/services/nfsession/directorybuilder/dir_builder.py", line 48, in get_mainmenu loco_list = self.req_loco_list_root() File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/common/cache_utils.py", line 72, in wrapper output = func(*args, **kwargs) File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/services/nfsession/directorybuilder/dir_path_requests.py", line 65, in req_loco_list_root path_response = self.nfsession.path_request(**call_args) File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/utils/logging.py", line 139, in timing_wrapper return func(*args, **kwargs) File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/services/nfsession/session/path_requests.py", line 32, in path_request response = self.post_safe( File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/services/nfsession/session/access.py", line 77, in post_safe return self.post(endpoint, **kwargs) File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/services/nfsession/session/http_requests.py", line 41, in post return self._request_call( File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/utils/logging.py", line 139, in timing_wrapper return func(*args, **kwargs) File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/services/nfsession/session/http_requests.py", line 48, in _request_call return self._request(method, endpoint, None, **kwargs) File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/services/nfsession/session/http_requests.py", line 103, in _request return self._request(method, endpoint, True, **kwargs) File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/services/nfsession/session/http_requests.py", line 106, in _request response.raise_for_status() File "/storage/.kodi/addons/plugin.video.netflix/packages/httpx/_models.py", line 1402, in raise_for_status raise HTTPStatusError(message, request=request, response=self) httpx.HTTPStatusError: 404 Client Error: Not Found for url: https://www.netflix.com/api/shakti/vedfdb694/pathEvaluator?drmSystem=widevine&withSize=false&materialize=false&routeAPIRequestsThroughFTL=false&isVolatileBillboardsEnabled=true&isTop10Supported=true&categoryCraversEnabled=false&original_path=%2Fnq%2Fwebsite%2Fmemberapi%2Fvedfdb694%2FpathEvaluator For more information check: https://httpstatuses.com/404 2022-09-27 20:40:41.726 T:1120 ERROR : [plugin.video.netflix (2)] Traceback (most recent call last): File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/run_addon.py", line 29, in wrapper func(*args, **kwargs) File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/run_addon.py", line 245, in run success = route(pathitems) File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/run_addon.py", line 87, in lazy_login_wrapper return func(*args, **kwargs) File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/run_addon.py", line 127, in route _execute(nav_handler, pathitems[1:], G.REQUEST_PARAMS, root_handler) File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/run_addon.py", line 156, in _execute executor(pathitems=pathitems) File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/utils/logging.py", line 139, in timing_wrapper return func(*args, **kwargs) File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/navigation/directory_utils.py", line 28, in set_custom_viewmode override_content_type = func(*args, **kwargs) File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/navigation/directory.py", line 102, in home dir_items, extra_data = common.make_call('get_mainmenu') # pylint: disable=unused-variable File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/utils/logging.py", line 139, in timing_wrapper return func(*args, **kwargs) File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/common/ipc.py", line 94, in make_call return make_http_call(endpoint, func_name, data) File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/common/ipc.py", line 115, in make_http_call _data = pickle.loads(received_data) TypeError: __init__() missing 2 required keyword-only arguments: 'request' and 'response' 2022-09-27 20:40:43.814 T:1120 INFO : CPythonInvoker(7, /storage/.kodi/addons/plugin.video.netflix/addon.py): script successfully run 2022-09-27 20:40:43.814 T:1257 ERROR : GetDirectory - Error getting plugin://plugin.video.netflix/directory/home/?switch_profile_guid=E346SWSMSVFODAZKKNZFCU3XF4 2022-09-27 20:40:43.848 T:840 ERROR : CGUIMediaWindow::GetDirectory(plugin://plugin.video.netflix/directory/home/?switch_profile_guid=E346SWSMSVFODAZKKNZFCU3XF4) failed 2022-09-27 20:40:43.859 T:1120 INFO : initializing python engine. 2022-09-27 20:40:43.871 T:1120 INFO : [plugin.video.netflix (2)] Started (Version 1.18.10+matrix.1) 2022-09-27 20:40:43.871 T:1120 INFO : [plugin.video.netflix (2)] URL is ParseResult(scheme='plugin', netloc='plugin.video.netflix', path='/', params='', query='', fragment='') 2022-09-27 20:40:44.018 T:1120 INFO : CPythonInvoker(7, /storage/.kodi/addons/plugin.video.netflix/addon.py): script successfully run ```
twhitehead commented 2 years ago

I tried the original_path change (plugin version 1.18.2) and it does not appear to have worked for me. My log file is also still reporting the old URL in the error message.

[plugin.video.netflix (0)] IPC callback raised exception: 404 Client Error: Not Found for url: https://www.netflix.com/api/shakti/vedfdb694/pathEvaluator?drmSystem=widevine&withSize=false&materialize=false&routeAPIRequestsThroughFTL=false&isVolatileBillboardsEnabled=true&isTop10Supported=true&categoryCraversEnabled=false&original_path=%2Fnq%2Fwebsite%2Fmemberapi%2Fvedfdb694%2FpathEvaluator

I tried moving my .kodi directory aside and entirely resetting up the plugin, but that didn't help, and I got the same result. I would also note

fedevx commented 2 years ago

Changing line 176 in resources/lib/services/nfsession/session/http_requests.py from

'original_path': f'/shakti/{G.LOCAL_DB.get_value("build_identifier", "", TABLE_SESSION)}/pathEvaluator'

to

'original_path': f'/nq/website/memberapi/{G.LOCAL_DB.get_value("build_identifier", "", TABLE_SESSION)}/pathEvaluator'

fixes the issue for me.

This worked for me in this way: 1- Patch the file 2- Recursively deleted all pyc files in .kodi/addons/plugin.video.netflix. 3- Tried again.

What I did notice but have not checked deeper is that upon reboot, once the pyc files are re-created, the old endpoint was still used. Had to repeat step 2.

Also, there are several mentions in the code about the shakti endpoint, I'm guessing these should be reviewed as well.

CastagnaIT commented 2 years ago

more or less, the main problem is that netflix has changed api endpoint so its needed partial rework of the part where we fetch the endpoint from website and recheck also others endpoints

Firesphere commented 2 years ago

more or less, the main problem is that netflix has changed api endpoint so its needed partial rework of the part where we fetch the endpoint from website and recheck also others endpoints

Do you have an ETA? Do you need help? (Sorry, not from me, I don't have the time to start getting familiar with the add-on and help fix it, for weeks... sadly)

CastagnaIT commented 2 years ago

Do you have an ETA?

No ETA, i work on it on free time an take many hours so who want support my work there are sponsor links on main page this is a free project and anyone can also collab by following wiki code guidelines

Firesphere commented 2 years ago

No ETA, i work on it on free time an take many hours

I feel you there... I'll see if we can donate you some :)

CastagnaIT commented 2 years ago

seem also that now the new endpoint has enforced jsongraph mode is also more likely needed to change how we manage the data returned by endpoint calls in appropriate way then appears to be not a fast fix

calvin4242 commented 2 years ago

Hello, this fix above does not work for me ( coreelec 19.5- kodi matrix). I did not understand what you intented to do exactly if it is an api problem from netflix. Is this extension to be reworked?( I understand better french)

martinbilek commented 2 years ago

Hello, this fix above does not work for me ( coreelec 19.5- kodi matrix). I did not understand what you intented to do exactly if it is an api problem from netflix. Is this extension to be reworked?( I understand better french)

Agree. If I'm not missing something, then original_path value is not used anywhere in the codebase.

Heidistein commented 2 years ago

Agree. If I'm not missing something, then original_path value is not used anywhere in the codebase.

No it is not used in this codebase, no. Still you are missing something. It is just a key in a hash (params) which is filled on several places and ultimately given to a http GET/POST call (self.session.get, self.sessions.post). the self.session comes from the superclass SessionBase. In that class the 'self.session' is an import+instantiation of plain requests.

For why it is not working, I don't know. Have you verified you changed it correct, you removed the pyc files, you rebooted. It was not updated in the meantime? Is the stacktrace similar enough?

CastagnaIT commented 2 years ago

original_path is not the cause just read my previous message above, what is needed is a partial rework of the add-on to make it compatible with jsonGraph data and construct the correct endpoint so even if you fix just the endpoint nothing will work i will see next days

blacklaboratory commented 2 years ago

On libreelec 9.2.8 Kodi leila 18.9 and netflix addon version 1.12.9 I changed the line 165 of ...\plugin.video.netflix\resources\lib\services\nfsession\session\http_requests.py from

'original_path': '/shakti/{}/pathEvaluator'.format( G.LOCAL_DB.get_value('build_identifier', '', TABLE_SESSION)) }

to

'original_path': '/nq/website/memberapi/{}/pathEvaluator'.format( G.LOCAL_DB.get_value('build_identifier', '', TABLE_SESSION)) }

and it didn't work even after reinstalling the whole addon and clearing the cache (also I know kodi 18 is no longer supported but I gotta tried)

SB211 commented 2 years ago

I see the very same error. System: LibreELEC/Kodi 10.0.0.2, Netflix AddOn 1.18.10. This nasty error seems to be introduced on 24th September for me via automatic update and it revelaed itself after next start (day after) of KODI (no immediate impact after update of AddOn).

t4rif4ri commented 2 years ago

I think i have the same error.

If i click on my profile i get an "http error".

With leya 18.7 on librelec with newest catagna netflix addon

5M7X commented 2 years ago

Changing line 176 in resources/lib/services/nfsession/session/http_requests.py from

'original_path': f'/shakti/{G.LOCAL_DB.get_value("build_identifier", "", TABLE_SESSION)}/pathEvaluator'

to

'original_path': f'/nq/website/memberapi/{G.LOCAL_DB.get_value("build_identifier", "", TABLE_SESSION)}/pathEvaluator'

fixes the issue for me.

Also fixed it on LibreELEC (official): 9.2.8 (RPi2.arm) Raspberry Pi 3 Model B Plus Rev 1.3 running Netflix Addon v1.12.12 (2022-06-19) Kodi (18.9 (18.9.0) Git:newclock5_18.9-Leia). Platform: Linux ARM 32-bit

However the code that had to be replaced looks slightly different here: 'original_path': '/shakti/{}/pathEvaluator'.format( G.LOCAL_DB.get_value('build_identifier', '', TABLE_SESSION)) and the path to the file /storage/.kodi/addons/plugin.video.netflix/resources/lib/services/nfsession/session/http_requests.py

dm2912 commented 2 years ago

fix stopped working for me tonight.

CoreELEC 19.4

Quick find/delete of all pyc files, and its back working again with that fix. .might have to set find . -name "*.pyc" -type f -delete on boot. lol

CastagnaIT commented 2 years ago

I fixed some parts of the add-on to make the menus work but i realized that also other endpoints are changed (like profile switch, parental control etc....) and need to be re-checked could be tomorrow night or this weekend i will publish a test build here (for Kodi v19 or above only)

Frostoman commented 2 years ago

Do you plan to bring these fixes to the Kodi 18 add-on after testing?

jairbubbles commented 2 years ago

Strangely this morning it's working correctly without any change on client, same plugin version than yesterday.

CastagnaIT commented 2 years ago

@jairbubbles you have right seem that website has reenabled the old api endpoint addresses but the website still use the new ones i think its better finish this transation to avoid new headaches

peno64 commented 2 years ago

My best guess here is that Netflix didn't work anymore on alot of smart tvs which have a netflix app running on it which can't be updated anymore because the tv is already quite old and they got alot of complaints and thus enabled the old protocol again.

shithead commented 2 years ago

Changing line 176 in resources/lib/services/nfsession/session/http_requests.py from

'original_path': f'/shakti/{G.LOCAL_DB.get_value("build_identifier", "", TABLE_SESSION)}/pathEvaluator'

to

'original_path': f'/nq/website/memberapi/{G.LOCAL_DB.get_value("build_identifier", "", TABLE_SESSION)}/pathEvaluator'

fixes the issue for me.

works for me libreelec 10.0.2 kodi 19.4

tarifari commented 2 years ago

works for me again without any changes. lol

Selebian commented 2 years ago

Did work again (as reported) but now seems broken again (same error, no add-on changes between working -> not working -> working -> not working). Presumably further changes at Netflix.

Thank you for your efforts to update.

tarifari commented 2 years ago

Same here again

I-Am-CRUD commented 2 years ago

Yeah. MY wife was watching and while starting the next episode she just got this error as the same time as you guys have had. TBH: if this is a netflix backend feature to disturb people watching on some devices - god i would celebrate this kind of feature in Anti-Cheat tools!

CastagnaIT commented 2 years ago

i just finished to adapt new changes, but i think its better wait some other days to make sure there are no other upcoming changes...

This is the test build for kodi v19/20: plugin.video.netflix_1.18.10+matrix.1_20220930_t1.zip

EDIT: new test build at this comment (below): https://github.com/CastagnaIT/plugin.video.netflix/issues/1425#issuecomment-1263436335

For now, seem that works good, if you get some error add a comment by attach the kodi debug log

calvin4242 commented 2 years ago

La classe ça marche, bravo et merci seb

bartmans commented 2 years ago

I installed fix on a Windows 10, Kodi 19.4 install and had partial succes

I can browse shows and start them. I then get an error 1044 - Video not available for direct watch (see screenshot).

By accepting the error, the video then starts playing.

kodi.log 2022-09-30 10_26_25-Greenshot

Edit: changed version from 18.4 to 19.4.

peno64 commented 2 years ago

@bartmans The message says: "This is the test build for kodi v19/20"

This should not work on kodi 18...

CastagnaIT commented 2 years ago

@bartmans your log is Kodi v19 not v18 but you have addon log disabled so its difficult understand more in details for now i can theorize two things 1) you have changed addon "Expert" setting "MSL manifest version" value, so it must be set as DEFAULT 2) netflix are making other changes and for now i am not able reproduce

bartmans commented 2 years ago

Apologies, it is indeed v19. I enabled addon logging. I checked MSL manifest version, it is st to DEFAULT. New log is added.

kodi.log