CastagnaIT / plugin.video.netflix

InputStream based Netflix plugin for Kodi
MIT License
1.89k stars 258 forks source link

Website parsing error #1689

Closed Fabsonic closed 2 months ago

Fabsonic commented 3 months ago

Netflix add-on version

1.23.2

Operative systems used

LibreELEC

Kodi version used

Kodi 20 (Nexus)

Description of the bug

The extension ont start. There is message: Website parsing error: unable to extract reactContext.

Thanks for your help

Steps to reproduce the behavior

No response

Debug log - mandatory

WebparsingError

Possible fix

No response

Additional context

No response

Screenshots

No response

MurDocgz commented 3 months ago

Exact same problem but on matrix, thanks

CPBridge commented 3 months ago

I am also seeing this issue on CoreElec with Kodi 20.5 and version 1.23.2 of the plugin. This then kicks you out of the plugin, making it unusble currently.

The relevant lines of the ~/.kodi/temp/kodi.log file are shown below.

Thanks for all your work on creating this!

(EDIT: given that country seems to be a relevant factor in similar issues, I am based in the US)

2024-04-06 21:12:11.171 T:3651    error <general>: [plugin.video.netflix (0)] Traceback (most recent call last):
                                                     File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/utils/website.py", line 282, in extract_json
                                                       json_str = json_array[0]
                                                                  ~~~~~~~~~~^^^
                                                   IndexError: list index out of range

2024-04-06 21:12:11.174 T:3651    error <general>: [plugin.video.netflix (0)] Traceback (most recent call last):
                                                     File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/utils/website.py", line 282, in extract_json
                                                       json_str = json_array[0]
                                                                  ~~~~~~~~~~^^^
                                                   IndexError: list index out of range

                                                   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/services/nfsession/session/access.py", line 156, in login
                                                       react_context = website.extract_json(self.get('login'), 'reactContext')
                                                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                                                     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/utils/website.py", line 298, in extract_json
                                                       raise WebsiteParsingError(f'Unable to extract {name}') from exc
                                                   resources.lib.common.exceptions.WebsiteParsingError: Unable to extract reactContext

2024-04-06 21:12:11.886 T:3761    error <general>: [plugin.video.netflix (0)] IPC callback raised exception: 
2024-04-06 21:12:11.902 T:3761    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 167, in get
                                                       cache_entry = self._get_cache_bucket(bucket['name'])[identifier]
                                                                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^
                                                   KeyError: 'KBLUDWXR4VFVLIAZEPBPLMTQMQ_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 175, 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 66, 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 30, in path_request
                                                       response = self.post_safe(
                                                                  ^^^^^^^^^^^^^^^
                                                     File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/services/nfsession/session/access.py", line 75, in post_safe
                                                       self.assert_logged_in()
                                                     File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/services/nfsession/session/access.py", line 56, in assert_logged_in
                                                       raise NotLoggedInError
                                                   resources.lib.common.exceptions.NotLoggedInError

2024-04-06 21:12:12.224 T:3762    error <general>: [plugin.video.netflix (0)] Traceback (most recent call last):
                                                     File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/utils/website.py", line 282, in extract_json
                                                       json_str = json_array[0]
                                                                  ~~~~~~~~~~^^^
                                                   IndexError: list index out of range

2024-04-06 21:12:12.225 T:3762    error <general>: [plugin.video.netflix (0)] Traceback (most recent call last):
                                                     File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/utils/website.py", line 282, in extract_json
                                                       json_str = json_array[0]
                                                                  ~~~~~~~~~~^^^
                                                   IndexError: list index out of range

                                                   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/services/nfsession/session/access.py", line 156, in login
                                                       react_context = website.extract_json(self.get('login'), 'reactContext')
                                                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                                                     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/utils/website.py", line 298, in extract_json
                                                       raise WebsiteParsingError(f'Unable to extract {name}') from exc
                                                   resources.lib.common.exceptions.WebsiteParsingError: Unable to extract reactContext

2024-04-06 21:12:12.225 T:3762    error <general>: [plugin.video.netflix (0)] IPC callback raised exception: Unable to extract reactContext
2024-04-06 21:12:12.227 T:3762    error <general>: [plugin.video.netflix (0)] Traceback (most recent call last):
                                                     File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/utils/website.py", line 282, in extract_json
                                                       json_str = json_array[0]
                                                                  ~~~~~~~~~~^^^
                                                   IndexError: list index out of range

                                                   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/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/session/access.py", line 156, in login
                                                       react_context = website.extract_json(self.get('login'), 'reactContext')
                                                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                                                     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/utils/website.py", line 298, in extract_json
                                                       raise WebsiteParsingError(f'Unable to extract {name}') from exc
                                                   resources.lib.common.exceptions.WebsiteParsingError: Unable to extract reactContext

2024-04-06 21:12:12.232 T:3719    error <general>: [plugin.video.netflix (1)] Traceback (most recent call last):
                                                     File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/run_addon.py", line 90, in lazy_login_wrapper
                                                       return func(*args, **kwargs)
                                                              ^^^^^^^^^^^^^^^^^^^^^
                                                     File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/run_addon.py", line 130, 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 159, 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 117, in make_http_call
                                                       raise _data
                                                   resources.lib.common.exceptions.NotLoggedInError

                                                   During handling of the above exception, another exception occurred:

                                                   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 265, in run
                                                       success = route(pathitems)
                                                                 ^^^^^^^^^^^^^^^^
                                                     File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/run_addon.py", line 97, in lazy_login_wrapper
                                                       if login(ask_credentials=not check_credentials()):
                                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                                                     File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/utils/api_requests.py", line 42, in login
                                                       if common.make_call('login', credentials):
                                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                                                     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 117, in make_http_call
                                                       raise _data
                                                   resources.lib.common.exceptions.WebsiteParsingError: Unable to extract reactContext
VVolfenstein commented 3 months ago

Same problem kodi 20.2 - 1.23.2

VVolfenstein commented 3 months ago

working with authentication key solution

MurDocgz commented 2 months ago

Thanks VVolfenstein, didn't think that was the problem as it didn't give password error but logged out re-authenticated with authentication key, profit, cheers

KaMeHb-UA commented 2 months ago

@VVolfenstein can you please explain exactly what should we do? I'm trying to authenticate with a key file, enter a PIN, than I'm asked for a password additionally. If I select 'cancel' or leave a password empty than I will be redirected to start where I need to select auth method: email/password or a key. And if I enter my password than I will see this error: WebsiteParsingError: E-mail field not found

frenkdefrog commented 2 months ago

I face with the same issue, would be nice if someone could help us out here. Authkey is not a solution, after providing it with the PIN it requires for the password. After providing the password email field not found error message is shown.

CPBridge commented 2 months ago

I found that I had to go into the addon settings (through Kodi settings rather than through the addon itself, which wouldn't start) and then logout, and log back in again (by starting the addon) using authkey, enter PIN and netflix password. This worked for me and it's back working as normal

KaMeHb-UA commented 2 months ago

@CPBridge got almost the same error: WebsiteParsingError: Unable to extract reactContext

frenkdefrog commented 2 months ago

@CPBridge nope, didn't help. The same error.

Nedjohh commented 2 months ago

Didnt work for me either. Same error for me.

giuseppelarosa commented 2 months ago

Same issue here. Logged out, then logged in with email and password. Same error.

micressor commented 2 months ago

Key method does not work. After providing keyfile, PIN and password I get the error: WebsiteParsingError: E-mail field not found is there any workaround for this? Can I something test to help fixing that?

CastagnaIT commented 2 months ago

fix on new release

grantmulholland commented 1 month ago

I am encountering this same problem on version "1.23.3+matrix.1"

Banesh009 commented 1 month ago

I have also the the same issue on latest version 1.23.3.