Files
AyeZeeBB 83f148390a Spotify device and streams: secure connections of their own, not Windows'
nder Wine and Proton the Spotify device signed in but was never taken up
by Spotify as a device to play on: librespot never logged "active device
is ...", nothing could be started on it, and after a minute and a half its
control connection failed ("Websocket connection failed: Remote sent after
having closed"). Its HTTPS and websocket went through Windows' security
layer, which there is Wine's own.
librespot and reqwest are now built with rustls and its built-in
certificate authorities (rustls-tls-webpki-roots, ring) in place of
native-tls, so the same code makes the connections on Windows and under
Proton. This covers the Spotify device, online radio and anything else
fetched through the helper. Not yet confirmed on Proton.
Cargo.lock changes with it. ReSkate.dll is about 2.5 MB larger.
2026-10-13 18:05:06 -05:00

36 lines
1.8 KiB
TOML

[package]
name = "reskate-spotify"
version = "0.1.0"
edition = "2021"
description = "ReSkate's Spotify Connect device, linked into ReSkate.dll: receives what Spotify plays and hands it to the game"
license = "MIT"
[lib]
name = "reskate_spotify"
path = "src/lib.rs"
crate-type = ["staticlib", "rlib"]
[dependencies]
# Secure connections are made by code of their own (rustls, with the certificate authorities
# built in), not by Windows': under Wine and Proton, Windows' is Wine's own and the device signed
# in but was never taken up by Spotify as one to play on (seen 2026-10-14). It is the same code
# on Windows and there.
librespot-core = { version = "0.8.0", default-features = false, features = ["rustls-tls-webpki-roots"] }
librespot-playback = { version = "0.8.0", default-features = false, features = ["rustls-tls-webpki-roots"] }
librespot-connect = { version = "0.8.0", default-features = false, features = ["rustls-tls-webpki-roots"] }
librespot-discovery = { version = "0.8.0", default-features = false, features = ["with-libmdns", "rustls-tls-webpki-roots"] }
librespot-metadata = { version = "0.8.0", default-features = false, features = ["rustls-tls-webpki-roots"] }
tokio = { version = "1", features = ["rt-multi-thread", "macros", "sync", "time"] }
futures-util = "0.3"
log = "0.4"
sha1 = "0.10"
hex = "0.4"
# (For sound that is not Spotify's: a program's output, decoded. The version librespot uses.)
symphonia = { version = "0.5.5", default-features = false, features = ["aac", "isomp4", "mp3", "ogg", "vorbis", "flac", "wav", "pcm"] }
# (For an internet radio station: what is at an address, as it comes. The one already in the tree.)
reqwest = { version = "0.12", default-features = false, features = ["blocking", "rustls-tls-webpki-roots"] }
[profile.release]
opt-level = 2
strip = true