gst-plugins-rs/audio/spotify
Sebastian Dröge c42040fbb8 spotifyaudiosrc: Fix race condition when unlocking
It would be possible that there is no cancellable yet when unlock() is
called, then the setup task is started and it would simply run and being
waited on instead of not being run at all.

To solve this, remember if unlock() was called and reset this in
unlock_stop().

Also make sure to not keep the abort handle locked while waiting,
otherwise cancellation would never actually work.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1602>
2024-06-10 07:38:29 +00:00
..
src spotifyaudiosrc: Fix race condition when unlocking 2024-06-10 07:38:29 +00:00
build.rs add spotify plugin 2021-12-29 16:48:20 +01:00
Cargo.toml Use workspace features for crates metadata/deps 2024-02-05 15:34:31 +01:00
LICENSE-MPL-2.0 git: replace LICENSE file symlinks with copies 2023-04-04 14:26:37 +01:00
README.md spotify: document how to use with non Facebook accounts 2024-03-11 09:46:40 +01:00

gst-plugins-spotify

This is a GStreamer plugin to read content from Spotify.

Make sure that your application follows Spotify's design guidelines to respect their legal/licensing restrictions.

Spotify Credentials

This plugin requires a Spotify Premium account. If your account is linked with Facebook, you'll need to setup a device username and password.

Those username and password are then set using the username and password properties.

You may also want to cache credentials and downloaded files, see the cache- properties on the element.

spotifyaudiosrc

The spotifyaudiosrc element can be used to play a song from Spotify using its Spotify URI.

gst-launch-1.0 spotifyaudiosrc username=$USERNAME password=$PASSWORD track=spotify:track:3i3P1mGpV9eRlfKccjDjwi ! oggdemux ! vorbisdec ! audioconvert ! autoaudiosink

The element also implements an URI handler which accepts credentials and cache settings as URI parameters:

gst-launch-1.0 playbin3 uri=spotify:track:3i3P1mGpV9eRlfKccjDjwi?username=$USERNAME\&password=$PASSWORD\&cache-credentials=cache\&cache-files=cache