zotify-dev / zotify

A fast and customizable music and podcast downloader.
zlib License
1.2k stars 91 forks source link

Getting a "TypeError: Descriptors cannot be created directly" error when running zotify on Arch #147

Closed willmaddrey closed 4 months ago

willmaddrey commented 4 months ago

I tried reinstalling both zotify and zotify-git from the AUR, both gave me this issue whenever I run any zotify command.

`Traceback (most recent call last): File "", line 198, in _run_module_as_main File "", line 88, in _run_code File "/usr/lib/python3.12/site-packages/zotify/main.py", line 10, in from zotify.app import client File "/usr/lib/python3.12/site-packages/zotify/app.py", line 1, in from librespot.audio.decoders import AudioQuality File "/usr/lib/python3.12/site-packages/librespot/init.py", line 3, in from librespot.proto.Keyexchange_pb2 import BuildInfo, Platform, Product, ProductFlags File "/usr/lib/python3.12/site-packages/librespot/proto/Keyexchange_pb2.py", line 31, in _descriptor.EnumValueDescriptor( File "/usr/lib/python3.12/site-packages/google/protobuf/descriptor.py", line 920, in new _message.Message._CheckCalledFromGeneratedFile() TypeError: Descriptors cannot be created directly. If this call came from a _pb2.py file, your generated code is out of date and must be regenerated with protoc >= 3.19.0. If you cannot immediately regenerate your protos, some other possible workarounds are:

  1. Downgrade the protobuf package to 3.20.x or lower.
  2. Set PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python (but this will use pure-Python parsing and will be much slower).

More information: https://developers.google.com/protocol-buffers/docs/news/2022-05-06#python-updates `

hunkyburrito commented 4 months ago

This seems to be due to python-librespot using an outdated python-protobuf version (https://github.com/kokarare1212/librespot-python/issues/130).

As the error message states, the easiest workaround for running zotify would be setting the environment variable (i.e. PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python zotify ...).

willmaddrey commented 4 months ago

@hunkyburrito that did the trick, thanks!