asciidisco / plugin.video.netflix

Inputstream based Netflix plugin for Kodi
MIT License
1.24k stars 226 forks source link

Plugin stops working until you delete its data #683

Open allo- opened 5 years ago

allo- commented 5 years ago

I'm submitting a ...

General infomration

The plugin stops working when it is not used and I need to remove its addon_data (I backup settings.xml and restore it afterwards), so it works again.

I can select the user, then I can (sometimes) select "my list", but when I then select a series, I get a "netflix error" message

Prerequisites

Latest Version from the netflix repo

Description

[Description of the bug or feature]

Steps to Reproduce

  1. Start the addon, select a user, select a series (probably select a list that is not cached
  2. netflix error
  3. delete addon data, reboot
  4. It works (most the time) once, before you need to remove the data gain

Expected behavior: It should work

Actual behavior: It does not work

Context (Environment)

Libreelec on a Raspberry Pi 3

Installation

Operating System

Debug log

https://paste42.de/14509/

Other information

The addon does the log in again using settings.xml (and setds a "new login" mail). I am not 199% sure if the stored cookie may be stale, but I do not know why it should be no longer valid.

jakermx commented 5 years ago

Here is your issue

                                          File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/Navigation.py", line 1053, in call_netflix_service
                                            data = urllib2.urlopen(full_url).read()

modify "/storage/.kodi/addons/plugin.video.netflix/resources/lib/Navigation.py" line 1053 data = urllib2.urlopen(full_url, timeout = 60).read()

You have too many items on your list, or you have high latency or high response time on your Internet Connection, increasing the timeout or reducing the paging will solve the issue.

If you are not familiar with python or linux, try 0.14 beta from CastagnaIT fork

allo- commented 5 years ago

I will try, but I already increased the timeout some time ago, because I read something like this in another issue.

I am not sure if it was exactly this one, as I did a clean reinstall in the meantime. I will report back when I tried it and it works or I got a new stacktrace.

Would it be the same error,when the cookie is invalid? It could be that deleting the cookie file works as well (it is hard to tell what worked in the end, when testing involves deleting stuff and rebooting afterwards).

jakermx commented 5 years ago

sometimes the cookie expired and you will get that behavior.

allo- commented 5 years ago

My problem is, that it seems to expire after a day.

The same account is used on a always connected fire stick, that uses another Netflix user of that account, with a plan that allows for two concurrent users. Is there still something, that can cause the kodi cookie to be invalidated by the active fire stick?

jakermx commented 5 years ago

just 1 tv account, but as I said, it is a timeout, addding the timeout parameter will solve it

allo- commented 5 years ago

I now got to use the kodi installation again, here is the log with the timeout parameter (failure after 1-2 seconds, almost instantly when selecting the correct netflix user)

2019-07-27 21:55:59.291 T:1276388208   ERROR: Traceback (most recent call last):
2019-07-27 21:55:59.291 T:1276388208   ERROR:   File "/usr/lib/python2.7/SocketServer.py", line 290, in _handle_request_noblock
2019-07-27 21:55:59.292 T:1276388208   ERROR:   File "/usr/lib/python2.7/SocketServer.py", line 318, in process_request
2019-07-27 21:55:59.292 T:1276388208   ERROR:   File "/usr/lib/python2.7/SocketServer.py", line 331, in finish_request
2019-07-27 21:55:59.292 T:1276388208   ERROR:   File "/usr/lib/python2.7/SocketServer.py", line 652, in __init__
2019-07-27 21:55:59.292 T:1276388208   ERROR:   File "/usr/lib/python2.7/BaseHTTPServer.py", line 340, in handle
2019-07-27 21:55:59.292 T:1276388208   ERROR:   File "/usr/lib/python2.7/BaseHTTPServer.py", line 328, in handle_one_request
2019-07-27 21:55:59.292 T:1276388208   ERROR:   File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/NetflixHttpRequestHandler.py", line 50, in do_GET
2019-07-27 21:55:59.303 T:1276388208   ERROR:     result = getattr(self.server.res_handler, method)(params)
2019-07-27 21:55:59.303 T:1276388208   ERROR:   File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/NetflixHttpSubRessourceHandler.py", line 158, in fetch_video_list_ids
2019-07-27 21:55:59.316 T:1276388208   ERROR:     video_list_ids_raw = self.netflix_session.fetch_video_list_ids()
2019-07-27 21:55:59.317 T:1276388208   ERROR:   File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/NetflixSession.py", line 1404, in fetch_video_list_ids
2019-07-27 21:55:59.346 T:1276388208   ERROR:     response = self._path_request(paths=paths)
2019-07-27 21:55:59.346 T:1276388208   ERROR:   File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/NetflixSession.py", line 1698, in _path_request
2019-07-27 21:55:59.346 T:1276388208   ERROR:     data=data)
2019-07-27 21:55:59.346 T:1276388208   ERROR:   File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/NetflixSession.py", line 2000, in _session_post
2019-07-27 21:55:59.347 T:1276388208   ERROR:     url = self._get_api_url_for(component=component)
2019-07-27 21:55:59.347 T:1276388208   ERROR:   File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/NetflixSession.py", line 1738, in _get_api_url_for
2019-07-27 21:55:59.347 T:1276388208   ERROR:     has_base_url = api_root.find(base_url) > -1
2019-07-27 21:55:59.347 T:1276388208   ERROR: TypeError: coercing to Unicode: need string or buffer, NoneType found
2019-07-27 21:55:59.412 T:1223930736   ERROR: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--
                                             - NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS!
                                            Error Type: <class 'httplib.BadStatusLine'>
                                            Error Contents: ''
                                            Traceback (most recent call last):
                                              File "/storage/.kodi/addons/plugin.video.netflix/addon.py", line 33, in <module>
                                                NAVIGATION.router(paramstring=REQUEST_PARAMS)
                                              File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/utils.py", line 60, in wrapped
                                                result = func(*args, **kwargs)
                                              File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/Navigation.py", line 158, in router
                                                return self.show_video_lists(widget_display=widget_display)
                                              File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/Navigation.py", line 544, in show_video_lists
                                                'cache': True}))
                                              File "/storage/.kodi/addons/plugin.video.netflix/resources/lib/Navigation.py", line 1053, in call_netflix_service
                                                data = urllib2.urlopen(full_url, timeout=60).read()
                                              File "/usr/lib/python2.7/urllib2.py", line 154, in urlopen
                                              File "/usr/lib/python2.7/urllib2.py", line 429, in open
                                              File "/usr/lib/python2.7/urllib2.py", line 447, in _open
                                              File "/usr/lib/python2.7/urllib2.py", line 407, in _call_chain
                                              File "/usr/lib/python2.7/urllib2.py", line 1228, in http_open
                                              File "/usr/lib/python2.7/urllib2.py", line 1201, in do_open
                                              File "/usr/lib/python2.7/httplib.py", line 1121, in getresponse
                                              File "/usr/lib/python2.7/httplib.py", line 438, in begin
                                              File "/usr/lib/python2.7/httplib.py", line 402, in _read_status
                                            BadStatusLine: ''
                                            -->End of Python script error report<--
2019-07-27 21:55:59.635 T:1223930736 WARNING: CPythonInvoker(7, /storage/.kodi/addons/plugin.video.netflix/addon.py): the python script "/storage/.kodi/addons/plugin.video.netflix/addon.py" has left several classes in memory that we couldn't clean up. The classes include: N9XBMCAddon9xbmcaddon5AddonE
2019-07-27 21:55:59.638 T:1799328624   ERROR: GetDirectory - Error getting plugin://plugin.video.netflix/?action=video_lists&profile_id=XXX
2019-07-27 21:55:59.669 T:1937051168   ERROR: CGUIMediaWindow::GetDirectory(plugin://plugin.video.netflix/?action=video_lists&profile_id=XXX) failed

This evening I did not get it to work even with reinstalling the plugin. The earliest I will be able to test again is in two weeks, but any hint what to test then is welcome.