-
-
Notifications
You must be signed in to change notification settings - Fork 59
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
⬆️ Update librespot to 0.6.0 #273
base: main
Are you sure you want to change the base?
Conversation
b551dac
to
691f9ca
Compare
Important Review skippedBot user detected. To trigger a single review, invoke the You can disable this status message by setting the 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
This PR contains the following updates:
0.4.2
->0.6.0
Release Notes
librespot-org/librespot (librespot)
v0.6.0
Compare Source
This version takes another step into the direction of the HTTP API, fixes a
couple of bugs, and makes it easier for developers to mock a certain platform.
Also it adds the option to choose avahi, dnssd or libmdns as your zeroconf
backend for Spotify Connect discovery.
Changed
access_token
for http requests is now acquired bylogin5
(avahi, dns_sd, libmdns) which can be selected using a CLI flag. The defaults
are unchanged (breaking).
Added
get_token_with_client_id()
to get a token for a specific client IDlogin
(mobile) andauth_token
retrieval via login5OS
andos_version
toconfig.rs
Fixed
(20)" panic on some tracks
v0.5.0
Compare Source
This version is be a major departure from the architecture up until now. It
focuses on implementing the "new Spotify API". This means moving large parts
of the Spotify protocol from Mercury to HTTP. A lot of this was reverse
engineered before by @devgianlu of librespot-java. It was long overdue that we
started implementing it too, not in the least because new features like the
hopefully upcoming Spotify HiFi depend on it.
Splitting up the work on the new Spotify API, v0.5.0 brings HTTP-based file
downloads and metadata access. Implementing the "dealer" (replacing the current
Mercury-based SPIRC message bus with WebSockets, also required for social plays)
is a large and separate effort, slated for some later release.
While at it, we are taking the liberty to do some major refactoring to make
librespot more robust. Consequently not only the Spotify API changed but large
parts of the librespot API too. For downstream maintainers, we realise that it
can be a lot to move from the current codebase to this one, but believe us it
will be well worth it.
All these changes are likely to introduce new bugs as well as some regressions.
We appreciate all your testing and contributions to the repository:
https://github.com/librespot-org/librespot
Changed
Result
or removed (breaking)unwrap
,expect
and returnResult
(breaking)chrono
replaced withtime
(breaking)time
updated (CVE-2020-26235)player
instance. Eliminates occasionalplayer
andaudio backend
restarts, which can cause issues with some playbackconfigurations.
DeviceType
moved out ofconnect
intocore
(breaking)spirc
context fields (breaking)Clone, Defaut
traits tospirc
contextsspclient
(breaking)there now is a separate
Session::new
and subsequentsession.connect
.(breaking)
ConnectConfig
moved out ofcore
intoconnect
(breaking)client_id
forget_token
moved toSessionConfig
(breaking)FileId
is moved out ofSpotifyId
. For now it will be re-exported.Session
authentication with a Spotify access tokenCredentials.username
is now anOption
(breaking)Session::connect
tries multiple access points, retrying each one.autoplay {on|off}
now acts as an override. If unspecified,librespot
now follows the setting in the Connect client that controls it. (breaking)
spclient
(breaking)playlist4_external
protobuf (breaking)lewton
toSymphonia
.This improves the Vorbis sound quality, adds support for MP3 as well as for
FLAC in the future. (breaking)
rodio
: call play and pauseAdded
Error
type (breaking)repeat
,set_position_ms
andset_volume
tospirc.rs
event_handler_example.py
Session
upon login, accessible with agetter and setter, and automatically updated as changes are pushed by the
Spotify infrastructure (breaking)
spclient
anddealer
access points (breaking)spclient
is the API for HTTP-based calls to the Spotify servers.It supports a lot of functionality, including audio previews and image
downloads even if librespot doesn't use that for playback itself.
SpotifyId
for local filesSpotifyId
for named playlistsplayer_event_handler.rs
sync to itself to prevent potential data races for event consumers
disabled such content. Applications that use librespot as a library without
Connect should use the 'filter-explicit-content' user attribute in the session.
TrackChanged
eventactivate
andload
functions toSpirc
, allowing control over local connect sessionsLyrics
Fixed
PlayStatus
to the correct value when Player is loading toavoid blanking out the controls when
self.play_status
isLoadingPlay
orLoadingPause
inspirc.rs
attempts to load them in
handle_remote_update
inspirc.rs
only start playback when we were already playing
from the beginning
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.