Open BluDood opened 11 months ago
Same error occurs on macOS using a Mac Mini M1, however this time it always returns one of the errors
Perhaps the audio CDN URL specification has changed. I'll look into this in more detail.
Same problem, it doesn't happen every time. Actually, timestamp is wrong, but who knows why.
https://github.com/kokarare1212/librespot-python/commit/f97b6b2fe1471373dd643f6ecbe6555f002704e1 There seems to be a similar problem with librespot-java. The code was changed based on this pull request. *The behavior has not been verified yet.
My follow up comment in the other project still applies - you may still encounter errors when getting a chunk from a server with “audio4” in the name. It’s probably either got a bad cert/missing SAN or it’s a canary for this new format.
Yeah, the new Expires are working. but we still get missmatch cert.
For people running into this and finding themselves here, as a local and temporary workaround you can turn off SSL verification (e.g., by inserting client.verify = False
here) until the server starts returning the correct certificate. Standard disclaimer that turning off SSL verification is bad etc etc.
Waiting for more information as there is no positive solution at the moment...
Maybe can we just exclude audio4-gm-fb.spotifycdn.com for time being? the url cant be accessed through browser too (404)
@KagChi is correct that the only real solution for the time being is to exclude audio4-gm-fb from the pool.
I made the following temporary change to librespot-java that has been working for several hours today. I'm sure someone can supply an equivalent fix over here.
@NotNull
private static HttpUrl getUrl(@NotNull Session session, @NotNull StorageResolveResponse resp) {
String selectedUrl = resp.getCdnurl(session.random().nextInt(resp.getCdnurlCount()));
while (selectedUrl.contains("audio4-gm-fb")) {
LOGGER.warn("getUrl picked CDN with known issues {} (forcing re-selection)", selectedUrl );
selectedUrl = resp.getCdnurl(session.random().nextInt(resp.getCdnurlCount()));
}
return HttpUrl.get(selectedUrl);
// return HttpUrl.get(resp.getCdnurl(session.random().nextInt(resp.getCdnurlCount())));
}
I'll adopt that idea for now. 2bef6c4a5dc2bee5e4d9dc2a070bd5653409f3b9
@KagChi is correct that the only real solution for the time being is to exclude audio4-gm-fb from the pool.
I made the following temporary change to librespot-java that has been working for several hours today. I'm sure someone can supply an equivalent fix over here.
@NotNull private static HttpUrl getUrl(@NotNull Session session, @NotNull StorageResolveResponse resp) { String selectedUrl = resp.getCdnurl(session.random().nextInt(resp.getCdnurlCount())); while (selectedUrl.contains("audio4-gm-fb")) { LOGGER.warn("getUrl picked CDN with known issues {} (forcing re-selection)", selectedUrl ); selectedUrl = resp.getCdnurl(session.random().nextInt(resp.getCdnurlCount())); } return HttpUrl.get(selectedUrl); // return HttpUrl.get(resp.getCdnurl(session.random().nextInt(resp.getCdnurlCount()))); }
The same issue happens for me as of today, Mon, Nov. 06, 2023 with the host audio-gm-fb.spotifycdn.com
Replacing the line
while "audio4-gm-fb" in selected_url:
with
while "audio4-gm-fb" in selected_url or "audio-gm-fb" in selected_url:
helped fix the issue for me today.
Even simply using
while "audio-gm-fb" in selected_url:
worked today
f97b6b2 There seems to be a similar problem with librespot-java. The code was changed based on this pull request. *The behavior has not been verified yet.
I use Spocon with Owntone and have been have been trying to track down why it's randomly pausing.
Do you think this issue is the same? https://github.com/spocon/spocon/issues/62
I posted a log and there are some failed CDN things in there.
Describe the bug While loading a song to then download it, I seem to randomly get an error saying this:
ValueError: invalid literal for int() with base 10: 'Expires=1697802182~FullPath~hmac=Ne8qK1vrknzKhgnDJvCTLDydUxDCxW9'
I also seem to get this other error, but thats a lot more rare:(Caused by SSLError(CertificateError("hostname 'audio4-gm-fb.spotifycdn.com' doesn't match 'audio-gm-off.spotifycdn.com'")))
To Reproduce Steps to reproduce the behavior:
session.content_feeder()
, for exampleExpected behavior The stream should start, and get the bytes for downloading.
Logs
Client Information (please complete the following information):
Additional context It has worked perfecly before, maybe spotify have made some changes?