librespot icon indicating copy to clipboard operation
librespot copied to clipboard

Unable to load encrypted file: ChannelError

Open rwjack opened this issue 1 year ago • 38 comments

Describe the bug All of a sudden I can't play any song

To reproduce Steps to reproduce the behavior:

  1. Launch librespot with:
stream = spotify:///librespot?name=Spotify&devicename=HA_Snapcast&bitrate=320&volume=100&cache=/data/librespot&cache-size-limit=2G&autoplay=true&params=--disable-discovery
  1. Play any song
  2. Librespot starts skipping songs quickly and crashes within a few seconds.

Log

... SNIP ...
2024-09-02 16-08-33.834 [Info] (librespot_playback::player) Loading <Bliss> with Spotify URI <spotify:track:2wIBOetdiYn4ULg7j4jMg6>
2024-09-02 16-08-33.946 [Error] (librespot_core::channel) channel error: 2 0
2024-09-02 16-08-33.946 [Error] (librespot_playback::player) Unable to load encrypted file: ChannelError
2024-09-02 16-08-33.946 [Warn] (librespot_playback::player) Skipping to next track, unable to load track <SpotifyId { id: 110396896608779253385428011206135924654, audio_type: Track }>: ()
2024-09-02 16-08-33.987 [Info] (librespot_playback::player) Loading <Weightless> with Spotify URI <spotify:track:57bvTWSTYC2HLS3EjmmTgD>
2024-09-02 16-08-34.105 [Error] (librespot_core::channel) channel error: 2 0
2024-09-02 16-08-34.105 [Error] (librespot_playback::player) Unable to load encrypted file: ChannelError
2024-09-02 16-08-34.105 [Warn] (librespot_playback::player) Skipping to next track, unable to load track <SpotifyId { id: 223433050452273652531839940303864379059, audio_type: Track }>: ()
2024-09-02 16-08-34.224 [Info] (librespot_playback::player) Loading <Nara> with Spotify URI <spotify:track:4F8zNOrvP78IJAdrdZCo1z>
2024-09-02 16-08-34.268 [Error] (librespot_core::channel) channel error: 2 0
2024-09-02 16-08-34.268 [Error] (librespot_playback::player) Unable to load encrypted file: ChannelError
2024-09-02 16-08-34.268 [Warn] (librespot_playback::player) Skipping to next track, unable to load track <SpotifyId { id: 203675824406771647439050070553111732737, audio_type: Track }>: ()
2024-09-02 16-08-34.306 [Info] (librespot_playback::player) Loading <Endless Horizon> with Spotify URI <spotify:track:76RFgwdQlwsMi0vfA20gSV>
2024-09-02 16-08-34.432 [Error] (librespot_core::channel) channel error: 2 0
2024-09-02 16-08-34.432 [Error] (librespot_playback::player) Unable to load encrypted file: ChannelError
2024-09-02 16-08-34.432 [Warn] (librespot_playback::player) Skipping to next track, unable to load track <SpotifyId { id: 310556037841223247093127629046494693741, audio_type: Track }>: ()
2024-09-02 16-08-34.432 [Warn] (librespot_connect::spirc) No context to update from!
2024-09-02 16-08-34.544 [Error] (ProcessStream) Error while reading from stderr: End of file
2024-09-02 16-08-34.545 [Error] (AsioStream) Error reading message: End of file, length: 0, ec: asio.misc:2
2024-09-02 16-08-34.646 [Info] (Watchdog) Starting watchdog, timeout: 7800s
2024-09-02 16-08-34.647 [Info] (librespot) librespot 0.4.2 UNKNOWN (Built on 2023-08-01, Build ID: 1690865570, Profile: release)
2024-09-02 16-08-34.691 [Info] (librespot_core::session) Connecting to AP "ap2-gew1.spotify.com:4070"
2024-09-02 16-08-34.767 [Info] (AsioStream) No data since 120 ms, switching to idle
... SNIP ...

Host (what you are running librespot on):

  • OS: Debian container, through Snapcast
  • Platform: HAOS x86

rwjack avatar Sep 02 '24 16:09 rwjack

Exact same issue here, on nixos-23.11. Will update to latest nixos, to see if it will work.

moretea avatar Sep 02 '24 17:09 moretea

I've just got the same today via raspotify. Funnily enough it seems to work at some random songs. I'm very confused, seems to be an issue with their backends?

RSKriegs avatar Sep 02 '24 17:09 RSKriegs

Same here, been working for the past 4 years without a hitch and suddenly all songs are skipped due to a channel error. Setup on rpi4 with raspotify with librespot 0.4.2

guillaume-duroy avatar Sep 02 '24 18:09 guillaume-duroy

Folks I've attempted recompiling and it works when I connected directly to Librespot, do as described here (just compile to release) https://github.com/librespot-org/librespot/blob/dev/COMPILING.md Raspotify still doesn't work, but I can detect Librespot. Don't treat it as a resolution, rather as a workaround.

RSKriegs avatar Sep 02 '24 18:09 RSKriegs

I've got the same issue with librespot 0.4.1 88e64bd

joeadam avatar Sep 02 '24 20:09 joeadam

Same here, with both current and old, unsupported, versions.

b3nis avatar Sep 02 '24 21:09 b3nis

There's a workaround at https://github.com/librespot-org/librespot/issues/972#issuecomment-2320943137

kingosticks avatar Sep 02 '24 21:09 kingosticks

Am I the only one that's seriously mad for being monkeyed around, having to re-configure a working setup for the 100th time when a simple email to the Librespot dev team and 2 weeks notice would have sufficed.

Let me tell you a little secret, Spotify, truly, does not give a fuck, about it's customers, and let alone the artists.

On the other hand look at us, loyal, paying customers, being fucked over for god knows what time in a row, amazing isn't it.

The main question though, how far are going to let them push this stick up our ass?

How come, there still isn't no decentralized solution for streaming audio, where the artists also get their commission in FULL, no bullshit middleman.

Music is, and always should be by the people, for the people!

rwjack avatar Sep 03 '24 09:09 rwjack

Same started a couple of days ago. ERROR librespot_playback::player] Unable to load encrypted file: ChannelError

My solution: /etc/hosts 0.0.0.0 apresolve.spotify.com 104.199.65.124 ap-gew4.spotify.com

After reading up on this thread I think this might just had been blind luck. Spotify obviously reverted some changes they did. After restoring my hosts file and rebooting, it all started working. Not sure if this fix had any impact. Probably not, I might just have been blind luck that this change and Spotifys reverting was done at the same time.

ghost avatar Sep 03 '24 10:09 ghost

@LiD420

My solution: /etc/hosts 0.0.0.0 apresolve.spotify.com 104.199.65.124 ap-gew4.spotify.com

Umm. Any chance of a brief explanation of what this does and why it solves the problem? (BTW, as may be obvious from my request, I know nothing about librespot.)

sowthistle avatar Sep 03 '24 13:09 sowthistle

Hello guys. Suffering from the same issue as y'all do, tried to add the DNS records but to no avail, the error stands solid. Using librespot on libreelec and armbian. :/

OK9UWU avatar Sep 03 '24 15:09 OK9UWU

Having the same issue on raspotify for 2 days already. Yesterday I managed to get it working by setting apresolve.spotify.com to 0.0.0.0, but today nothing seems to be working anymore, not even setting the host for individual APs.

codydubat avatar Sep 03 '24 15:09 codydubat

There's a pre-existing related issue at https://github.com/librespot-org/librespot/issues/972#issuecomment-2320943137. We need to close one of these. But I'll repeat it here, the workaround is dead already, you need to use the latest code from the dev branch where the issue is not present.

kingosticks avatar Sep 03 '24 16:09 kingosticks

use the latest code from the dev branch where the issue is not present

i can confirm:

  • compiled on my desktop following the guide in the documentation.
  • built with cargo build --release --no-default-features --features alsa-backend (i use the pipe-backend to snapcast)
  • tested on desktop - worked immediately
  • copied the binary to another host (soundserver, same architecture) - works as drop-in for the old version (0.4.2 i think)

bitclick avatar Sep 03 '24 18:09 bitclick

Adhering to all of the comments related to compiling the dev branch, I'll add that you can also set up Librespot as a service so it runs on startup: https://github.com/librespot-org/librespot/wiki/Running-as-a-service Works on Raspbian for me. I run it as an user service. If you compile this & point the compiled file in ExecStart parameter in librespot.service (or whatever you name it) file you should succeed. Basically everything is in Librespot's documentation :) Hope I've saved someone's time and that it will work consistently.

RSKriegs avatar Sep 03 '24 19:09 RSKriegs

use the latest code from the dev branch where the issue is not present

i can confirm:

* compiled on my desktop following the guide in the documentation.

* built with `cargo build --release --no-default-features --features alsa-backend`    (i use the pipe-backend to snapcast)

* tested on desktop - worked immediately

* copied the binary to another host (soundserver, same architecture)  - works as drop-in for the old version (`0.4.2` i think)

Hi bitclick, Thank you for the solution, I experienced the same problem. Could you please provide me and other 'mortals' a quick guide how to implement a fix? Where I can find latest dev branch and documentation to follow? Thanks in advance!

MattGesicki avatar Sep 03 '24 19:09 MattGesicki

@MattGesicki follow the steps just like here https://github.com/librespot-org/librespot/blob/dev/COMPILING.md If you want to add it as a service so it boots on a startup do the following: https://github.com/librespot-org/librespot/wiki/Running-as-a-service

Note that compilation may take some time. Also compile a release build instead of debug.

RSKriegs avatar Sep 03 '24 19:09 RSKriegs

@RSKriegs thanks! I learned a few things today which are obvious for you :) I've installed rust and C compiler, added ssh publickey, forked librespot and downloaded it. One last thing before trying to compile - I'm not sure what audio backend I have. Do they mean a hardware device I use in RaspberryPi?

MattGesicki avatar Sep 03 '24 20:09 MattGesicki

@MattGesicki I didn't dive into that, I used the default one and it's ok. No it's not a hardware device.

However, raw Librespot doesn't work 100% as well as Raspotify for me yet and there are minor issues, but at least it runs. (Most likely some additional setup considerations)

RSKriegs avatar Sep 03 '24 20:09 RSKriegs

Compiling from dev does seem to have fixed the issue for me :)

fnndyl avatar Sep 03 '24 20:09 fnndyl

Compiled from the dev branch on a raspberry pi, worked for me. Use it with Snapcast, no issues so far :)

kosmo2k avatar Sep 03 '24 21:09 kosmo2k

Having the same issue on moode. I will compile the dev branch and test with it.

[2024-09-03T22:13:50Z WARN  librespot_core::apresolve] Using fallback "ap.spotify.com:443"
[2024-09-03T22:13:50Z INFO  librespot_core::session] Connecting to AP "ap.spotify.com:443"
...
[2024-09-03T22:24:11Z ERROR librespot_core::channel] channel error: 2 0
[2024-09-03T22:24:11Z ERROR librespot_playback::player] Unable to load encrypted file: ChannelError
[2024-09-03T22:24:11Z WARN  librespot_playback::player] Skipping to next track, unable to load track <SpotifyId { id: 3014....., audio_type: Track }>: ()
[2024-09-03T22:24:11Z DEBUG librespot_connect::spirc] At track 10 of 11 <"spotify:playlist:37i9...."> update [true]
[2024-09-03T22:24:11Z TRACE librespot_connect::spirc] Sending status to server: [kPlayStatusPlay]

Edit: It is working now after applying these changes: https://github.com/librespot-org/librespot/issues/1322#issuecomment-2328404268

lpicanco avatar Sep 03 '24 22:09 lpicanco

im running spotifyd 0.3.5 and this issue started happening today for me too, basically my spotify client is completely broken now.

(gotta love it when spotify breaks our clients on their end...)

Semmu avatar Sep 03 '24 23:09 Semmu

Can confirm,

  1. dev branch is working (for Spotify connect) cargo install --git https://github.com/librespot-org/librespot.git --branch dev --no-default-features --features alsa-backend.
  2. /etc/hosts changes dont help
  3. login gives bad credentials. There is another Issue for it

User65k avatar Sep 04 '24 07:09 User65k

login is still not working here...

thomasbuesser avatar Sep 04 '24 07:09 thomasbuesser

Got it working again in moode player.

  1. Create a release build from the dev branch following this, and to build, use this command: cargo build --release --no-default-features --features alsa-backend
  2. Backup old & copy new built librespot to the /usr/bin/: sudo mv /usr/bin/librespot /usr/bin/librespot.old && sudo cp target/release/librespot /usr/bin/librespot
  3. Go to the moode renderers -> Spotify connect settings and make sure the Autoplay is set to No, otherwise librespot will just error and stop.
  4. Disable the ap-port parameter, otherwise it won't be able to resolve all access points: sudo nano /var/www/inc/renderer.php - line 110 Change ' --ap-port 13561 ' to empty '', or comment it out like this: ''; //' --ap-port 13561 ' so you can restore it once there is a proper fix. image Save the changes (CTRL+O and then CTRL+X)
  5. Reboot the device: sudo reboot

If you made any changes to the /etc/hosts file like recommended above, please remove those entries before rebooting.

LosTigeros avatar Sep 04 '24 09:09 LosTigeros

Can anyone identify which commit from the dev branch fixes this? It might be possible to backport it to other versions. It's not possible for me to just start using dev now because I have a customized fork for an old MIPS router and the newer versions won't work there.

arthurus avatar Sep 04 '24 09:09 arthurus

Can anyone identify which commit from the dev branch fixes this? It might be possible to backport it to other versions. It's not possible for me to just start using dev now because I have a customized fork for an old MIPS router and the newer versions won't work there.

I hit the issue too and confirm that it is fixed at the tip. I'll try and do a git bisect when I have some time (probably sometime in the next few days) to try and identify the change, since I could not see anything obvious in the commit logs or pull requests that is related. Or maybe one of the devs can chime in if they already know specifically.

Might be worth someone tagging a new release given the latest tag doesn't work for a lot of people.

dspearson avatar Sep 04 '24 18:09 dspearson

0.4 (master) and 0.5 (dev) use entirely different methods to retrive the audio data. Spotify probably just disabled the old method used in 0.4, just as they disabled user+password auth. It's very different, it's not going to be a simple change to backport. Everyone will need to move to 0.5 (dev) and there will hopefully be a release of that soon, but a lack of release shouldn't be stopping anyone.

kingosticks avatar Sep 04 '24 18:09 kingosticks

Can confirm the steps outlined in:

https://github.com/librespot-org/librespot/issues/1322#issuecomment-2328160807

cargo install --git https://github.com/librespot-org/librespot.git --branch dev --no-default-features --features alsa-backend

Works for me. - 5th Sept 2024

whisperzer0 avatar Sep 04 '24 23:09 whisperzer0