v0.5.0 #1371
Replies: 3 comments
-
|
There were a few oddities with the |
Beta Was this translation helpful? Give feedback.
-
|
Just wanted to say thanks for all the hard work that went into this huge release! Appreciate everyone who helped making this happen! |
Beta Was this translation helpful? Give feedback.
-
|
Thanks |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
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
librespotmore robust. Consequently not only the Spotify API changed but large parts of thelibrespotAPI 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
Resultor removed (breaking)unwrap,expectand returnResult(breaking)chronoreplaced withtime(breaking)timeupdated (CVE-2020-26235)DeviceTypemoved out ofconnectintocore(breaking)spirccontext fields (breaking)Clone,Defaulttraits tospirccontextsspclient(breaking)Session::newand subsequentsession.connect. (breaking)ConnectConfigmoved out ofcoreintoconnect(breaking)client_idforget_tokenmoved toSessionConfig(breaking)FileIdis moved out ofSpotifyId. For now it will be re-exported.Credentials.usernameis now anOption(breaking)Session::connecttries multiple access points, retrying each one.autoplay {on|off}now acts as an override. If unspecified,librespotnow follows the setting in the Connect client that controls it. (breaking)spclient(breaking)playlist4_externalprotobuf (breaking)lewtontoSymphonia. This improves the Vorbis sound quality, adds support for MP3 as well as for FLAC in the future. (breaking)rodio: callplayandpauseAdded
librespotErrortype (breaking)repeat,set_position_msandset_volumetospirc.rsevent_handler_example.pyspclientanddealeraccess points (breaking)spclientis 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.SpotifyIdfor local filesSpotifyIdfor named playlistsplayer_event_handler.rslibrespotas a library without Connect should use the 'filter-explicit-content' user attribute in the session.TrackChangedeventFixed
PlayStatusto the correct value when Player is loading to avoid blanking out the controls whenself.play_statusisLoadingPlayorLoadingPauseinspirc.rshandle_remote_updateinspirc.rsThis discussion was created from the release v0.5.0.
Beta Was this translation helpful? Give feedback.
All reactions