Skip to content

Weird fail for specific directory (Invalid bytes in character encoding) #23

Description

@3guboff

Hello @chachmu,
I have weird issue when trying open specific directory (I'm running minidlna on server, directory Films) in MPV menu:

[mpvDLNA] Starting subprocess: [python3, /home/sasha/.config/mpv/scripts/mpvDLNA/mpvDLNA.py, -b, http://192.168.0.2:8200/rootDesc.xml, 0, 5000]
[mpvDLNA] Starting subprocess: [python3, /home/sasha/.config/mpv/scripts/mpvDLNA/mpvDLNA.py, -b, http://192.168.0.2:8200/rootDesc.xml, 64, 5000]
[mpvDLNA] Starting subprocess: [python3, /home/sasha/.config/mpv/scripts/mpvDLNA/mpvDLNA.py, -b, http://192.168.0.2:8200/rootDesc.xml, 64$0, 5000]
[mpvDLNA] TypeError: cannot convert undefined to object
[mpvDLNA]       at /home/sasha/.config/mpv/scripts/mpvDLNA/main.js:1152
[mpvDLNA]       at /home/sasha/.config/mpv/scripts/mpvDLNA/main.js:1216
[mpvDLNA]       at /home/sasha/.config/mpv/scripts/mpvDLNA/main.js:1322
[mpvDLNA]       at /home/sasha/.config/mpv/scripts/mpvDLNA/modules.js/SelectionMenu.js:310
[mpvDLNA]       at /home/sasha/.config/mpv/scripts/mpvDLNA/modules.js/SelectionMenu.js:243
[mpvDLNA]       at key_cb (@/defaults.js:332)
[mpvDLNA]       at dispatch_key_binding (@/defaults.js:252)
[mpvDLNA]       at Function.prototype.apply (native)
[mpvDLNA]       at dispatch_message (@/defaults.js:122)
[mpvDLNA]       at dispatch_event (@/defaults.js:52)
[mpvDLNA]       at mp_event_loop (@/defaults.js:798)
[mpvDLNA]       at run_script (native)
[mpvDLNA] Could not load js script /home/sasha/.config/mpv/scripts/mpvDLNA/main.js

OS: Linux

I guess it's because this directory contain files (names or whatever) what can't be readed properly from MPV (plugin) side.
Any ideas?

python mpvDLNA.py -b http://192.168.0.2:8200/rootDesc.xml 64:

items:

containers:

Films
64$0

Kid
64$3

Music
64$5
...

python mpvDLNA.py -b http://192.168.0.2:8200/rootDesc.xml '64$0':

Traceback (most recent call last):
  File "/home/sasha/.local/share/mise/installs/python/3.14.4/lib/python3.14/site-packages/upnpclient/soap.py", line 122, in call
    xml = etree.fromstring(xml_str)
  File "src/lxml/etree.pyx", line 3433, in lxml.etree.fromstring
  File "src/lxml/parser.pxi", line 2079, in lxml.etree._parseMemoryDocument
  File "src/lxml/parser.pxi", line 1922, in lxml.etree._parseDoc
  File "src/lxml/parser.pxi", line 1947, in lxml.etree._parseDoc_bytes
  File "src/lxml/parser.pxi", line 1194, in lxml.etree._BaseParser._parseDoc
  File "src/lxml/parser.pxi", line 647, in lxml.etree._ParserContext._handleParseResultDoc
  File "src/lxml/parser.pxi", line 765, in lxml.etree._handleParseResult
  File "src/lxml/parser.pxi", line 689, in lxml.etree._raiseParseError
  File "<string>", line 3
lxml.etree.XMLSyntaxError: Invalid bytes in character encoding, line 3, column 1239

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/sasha/.config/mpv/scripts/mpvDLNA/mpvDLNA.py", line 130, in <module>
    browse(sys.argv[2], sys.argv[3], count)
    ~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/sasha/.config/mpv/scripts/mpvDLNA/mpvDLNA.py", line 57, in browse
    result = device.ContentDirectory.Browse(ObjectID=id, BrowseFlag="BrowseDirectChildren", Filter="*", StartingIndex=0, RequestedCount=count, SortCriteria="")
  File "/home/sasha/.local/share/mise/installs/python/3.14.4/lib/python3.14/site-packages/upnpclient/upnp.py", line 475, in __call__
    soap_response = soap_client.call(
        self.name,
    ...<2 lines>...
        http_headers or self.service.device.http_headers,
    )
  File "/home/sasha/.local/share/mise/installs/python/3.14.4/lib/python3.14/site-packages/upnpclient/soap.py", line 126, in call
    xml = etree.fromstring(self._remove_extraneous_xml_declarations(xml_str))
                           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
  File "/home/sasha/.local/share/mise/installs/python/3.14.4/lib/python3.14/site-packages/upnpclient/soap.py", line 75, in _remove_extraneous_xml_declarations
    if xml_str.startswith("<?xml"):
       ~~~~~~~~~~~~~~~~~~^^^^^^^^^
TypeError: startswith first arg must be bytes or a tuple of bytes, not str

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions