plugin.video.invidious icon indicating copy to clipboard operation
plugin.video.invidious copied to clipboard

Add socks5 proxy configuration

Open s0rau opened this issue 8 months ago • 8 comments

Can you add proxy SOCKS5 support in order to bypass "Sign in you're not a bot" I mean in settings user can configure proxy by setting these variables : username, password, hostname and port ?

s0rau avatar Apr 27 '25 18:04 s0rau

I'll have a look...

lekma avatar Apr 28 '25 09:04 lekma

can you test master and report, please?

lekma avatar May 09 '25 11:05 lekma

Here's raw logs :
https://paste.centos.org/view/raw/49cac7a6

s0rau avatar May 12 '25 15:05 s0rau

does it work? or not? (I cannot access the logs)

lekma avatar May 19 '25 15:05 lekma

Yes the link expired.. It does not, but it may dues to instance. I'll have another test and directly paste logs here.

s0rau avatar May 20 '25 05:05 s0rau

2025-05-20 16:57:16.653 T:5177    error <general>: GetDirectory - Error getting plugin://plugin.video.invidious/?action=search&new=True
2025-05-20 16:57:16.658 T:1523    error <general>: CGUIMediaWindow::GetDirectory(plugin://plugin.video.invidious/?action=search&new=True) failed
2025-05-20 16:57:16.664 T:5125    error <general>: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--
                                                    - NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS!
                                                   Error Type: <class 'iapc.client.RequestError'>
                                                   Error Contents: remote error
                                                   Traceback (most recent call last):
                                                     File "/home/user/.kodi/addons/script.module.iapc/lib/iapc/service.py", line 89, in execute
                                                       return {"result": method(*args, **kwargs)}
                                                                         ~~~~~~^^^^^^^^^^^^^^^^^
                                                     File "/home/user/.kodi/addons/plugin.video.invidious/lib/invidious/search.py", line 127, in search
                                                       (items := self.__instance__.search(query)),
                                                                 ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^
                                                     File "/home/user/.kodi/addons/plugin.video.invidious/lib/invidious/instance.py", line 357, in search
                                                       return IVResults(results)
                                                     File "/home/user/.kodi/addons/plugin.video.invidious/lib/invidious/extract.py", line 283, in __init__
                                                       super(IVResults, self).__init__(
                                                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
                                                           self.__types__[item["type"]](item) for item in items if item
                                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                                                       )
                                                       ^
                                                     File "/home/user/.kodi/addons/plugin.video.invidious/lib/invidious/extract.py", line 284, in <genexpr>
                                                       self.__types__[item["type"]](item) for item in items if item
                                                                      ~~~~^^^^^^^^
                                                   TypeError: string indices must be integers, not 'str'
                                                   Traceback (most recent call last):
                                                     File "/home/user/.kodi/addons/plugin.video.invidious/lib/plugin.py", line 246, in <module>
                                                       dispatch(*argv)
                                                       ~~~~~~~~^^^^^^^
                                                     File "/home/user/.kodi/addons/plugin.video.invidious/lib/plugin.py", line 242, in dispatch
                                                       IVPlugin(url, int(handle)).dispatch(**parseQuery(query))
                                                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^
                                                     File "/home/user/.kodi/addons/script.module.nuttig/lib/nuttig/plugin.py", line 85, in dispatch
                                                       return action(**kwargs)
                                                     File "/home/user/.kodi/addons/script.module.nuttig/lib/nuttig/plugin.py", line 44, in wrapper
                                                       raise error
                                                     File "/home/user/.kodi/addons/script.module.nuttig/lib/nuttig/plugin.py", line 41, in wrapper
                                                       success = func(self, **kwargs)
                                                     File "/home/user/.kodi/addons/plugin.video.invidious/lib/plugin.py", line 227, in search
                                                       return self.__search__(query)
                                                              ~~~~~~~~~~~~~~~^^^^^^^
                                                     File "/home/user/.kodi/addons/plugin.video.invidious/lib/plugin.py", line 219, in __search__
                                                       if ((results := self.__client__.search(query)) is not None):
                                                                       ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^
                                                     File "/home/user/.kodi/addons/plugin.video.invidious/lib/invidious/client.py", line 28, in wrapper
                                                       return func(self, *args, **kwargs)
                                                     File "/home/user/.kodi/addons/plugin.video.invidious/lib/invidious/client.py", line 140, in search
                                                       items, next = self.__client__.search.search(query)
                                                                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^
                                                     File "/home/user/.kodi/addons/script.module.iapc/lib/iapc/client.py", line 82, in __call__
                                                       return Request(self.id).execute((self.name, args, kwargs))
                                                              ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
                                                     File "/home/user/.kodi/addons/script.module.iapc/lib/iapc/client.py", line 39, in execute
                                                       raise self.response
                                                   iapc.client.RequestError: remote error
                                                   Traceback (most recent call last):
                                                     File "/home/user/.kodi/addons/script.module.iapc/lib/iapc/service.py", line 89, in execute
                                                       return {"result": method(*args, **kwargs)}
                                                                         ~~~~~~^^^^^^^^^^^^^^^^^
                                                     File "/home/user/.kodi/addons/plugin.video.invidious/lib/invidious/search.py", line 127, in search
                                                       (items := self.__instance__.search(query)),
                                                                 ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^
                                                     File "/home/user/.kodi/addons/plugin.video.invidious/lib/invidious/instance.py", line 357, in search
                                                       return IVResults(results)
                                                     File "/home/user/.kodi/addons/plugin.video.invidious/lib/invidious/extract.py", line 283, in __init__
                                                       super(IVResults, self).__init__(
                                                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
                                                           self.__types__[item["type"]](item) for item in items if item
                                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                                                       )
                                                       ^
                                                     File "/home/user/.kodi/addons/plugin.video.invidious/lib/invidious/extract.py", line 284, in <genexpr>
                                                       self.__types__[item["type"]](item) for item in items if item
                                                                      ~~~~^^^^^^^^
                                                   TypeError: string indices must be integers, not 'str'
                                                   -->End of Python script error report<--

s0rau avatar May 20 '25 15:05 s0rau

If invidious instance are off, is that possible to bypass invidious by directly fetch videos behind youtube with proxy SOCKS5 without using plugin.video.youtube which is using an account ?

s0rau avatar May 20 '25 15:05 s0rau

you are confusing me

there should be a setting in the plugin (in Interface iirc) that should allow you to play videos directly from youtube, but you still need a working instance of invidious to generate all the listings (right now as it happens it is also broken because ytdlp).

all that has nothing to do with socks5 proxy, did you really had a use case for those?

anyway, if you explore my repo there is another red addon (also broken right now because ytdlp is broken (should be fixed soon (I hope)))

lekma avatar May 21 '25 08:05 lekma