| Crates.io | librespot-connect |
| lib.rs | librespot-connect |
| version | 0.7.1 |
| created_at | 2018-02-24 17:10:21.547812+00 |
| updated_at | 2025-08-31 19:16:48.130959+00 |
| description | The Spotify Connect logic for librespot |
| homepage | |
| repository | https://github.com/librespot-org/librespot |
| max_upload_size | |
| id | 52665 |
| size | 249,307 |
The connect module of librespot. Provides the option to create your own connect device and stream to it like any other official spotify client.
The [Spirc] is the entrypoint to creating your own connect device. It can be
configured with the given [ConnectConfig] options and requires some additional data
to start up the device.
When creating a new [Spirc] it returns two items. The [Spirc] itself, which is can
be used as to control the local connect device. And a Future,
lets name it SpircTask, that starts and executes the event loop of the connect device
when awaited.
A basic example in which the Spirc and SpircTask is used can be found here:
examples/play_connect.rs.
use std::{future::Future, thread};
use librespot_connect::{ConnectConfig, Spirc};
use librespot_core::{authentication::Credentials, Error, Session, SessionConfig};
use librespot_playback::{
audio_backend, mixer,
config::{AudioFormat, PlayerConfig},
mixer::{MixerConfig, NoOpVolume},
player::Player
};
async fn create_basic_spirc() -> Result<(), Error> {
let credentials = Credentials::with_access_token("access-token-here");
let session = Session::new(SessionConfig::default(), None);
let backend = audio_backend::find(None).expect("will default to rodio");
let player = Player::new(
PlayerConfig::default(),
session.clone(),
Box::new(NoOpVolume),
move || {
let format = AudioFormat::default();
let device = None;
backend(device, format)
},
);
let mixer = mixer::find(None).expect("will default to SoftMixer");
let (spirc, spirc_task): (Spirc, _) = Spirc::new(
ConnectConfig::default(),
session,
credentials,
player,
mixer(MixerConfig::default())?
).await?;
Ok(())
}