rattboi / mopidy-subsonic

Mopidy backend extension for playing music from Subsonic Music Streamer
MIT License
17 stars 14 forks source link

mopidy_subsonic.client: Subsonic Authentication error: Required parameter is missing #22

Closed mrpurplenz closed 8 years ago

mrpurplenz commented 8 years ago

I have an ampache based subsonic server which responds correctly to the android subsonic client at http://sub.mydomain.com port: 80 username = myusername password = mypassword context = / however as with the title the log gives an error and kills mopidy any ideas?

hhm0 commented 8 years ago

It seems that this may be because Ampache only supports "old"-style auth, while libsonic (which mopidy-subsonic uses) only supports the "new"-style auth.

See crustymonkey/py-sonic/issues/17 for more details.

hhm0 commented 8 years ago

Does pull #24 fix this? Be sure to upgrade py-sonic too before testing :-).

mrpurplenz commented 8 years ago

Its a partial solution at this stage.

Upgraded with:

pip install --upgrade setuptools pip
sudo pip install --upgrade py-sonic

Tested connection the following line in a testing.py file:

conn = libsonic.Connection('http://sub.mydomain.com' , 'user' ,
    'pass' , port=80,  legacyAuth=True)

With the following error:

libsonic.errors.VersionError: Incompatible Subsonic REST protocol version. Server must upgrade.

Actually the last error resulted from ampache detecting a higher api version than reported by pysonic, having set legacyAuth. This can be worked around by manually setting the version in libsonic/connection.py to "1.11.0"

Time to go begging, cap-in-hand, to the ampache team. i have opend an issue ther at: https://github.com/ampache/ampache/issues/1389

mrpurplenz commented 8 years ago

Yes. I manually made the changes in pull #24 to my mopidy-subsonic plugin and authentication works provided that the version is manually set to 1.11.0 in libsonic/connection.py. So I'll close this issue. However now mopidy reports SubsonicBackend does not implement playlists.as_list(). So I'll open a new issue for that.