Expand description
Headless streaming player for the Deezer Connect protocol.
pleezer is a library and application that implements the Deezer Connect protocol, enabling remote-controlled audio playback of Deezer content. It provides:
§Core Features
- Remote Control: Acts as a receiver for Deezer Connect, allowing control from official Deezer apps
- Audio Playback: High-quality audio streaming with gapless playback support
- Format Support: Handles MP3 and FLAC formats based on subscription level
- Volume Normalization: Optional audio leveling with configurable target gain
§Architecture
The library is organized into several key modules:
-
Connection Management
-
Audio Processing
-
Authentication
-
Configuration
-
Protocol
-
System Integration
§Example
use pleezer::{config::Config, player::Player, remote::Client};
async fn example() -> pleezer::error::Result<()> {
// Create player with configuration
let config = Config::new()?;
let player = Player::new(&config, "").await?;
// Create and start client
let mut client = Client::new(&config, player)?;
client.start().await?;
Ok(())
}
§Protocol Documentation
For details on the Deezer Connect protocol implementation, see the
protocol
and remote
modules.
§Error Handling
Errors are handled through the types in the error
module, with
most functions returning Result
.
§Signal Handling
The application responds to system signals:
- SIGTERM/Ctrl-C: Graceful shutdown
- SIGHUP: Configuration reload
See the signal
module for details.
§Concurrency
The library uses async/await for concurrency and is designed to work with the Tokio async runtime. Most operations are asynchronous and can run concurrently.
Re-exports§
pub use uuid::Uuid;
Modules§
- arl
- ARL validation and handling.
- audio_
file - Provides the
AudioFile
abstraction for handling audio stream playback. - config
- Configuration and authentication for pleezer.
- decoder
- Audio decoder implementation using Symphonia.
- decrypt
- Track decryption for Deezer’s protected media content.
- error
- Error handling for pleezer.
- events
- Events emitted during Deezer Connect playback and remote control.
- gateway
- Gateway API client for Deezer services.
- http
- HTTP client with rate limiting and session management for Deezer APIs.
- normalize
- Audio normalization through feedforward limiting.
- player
- Audio playback and track management.
- protocol
- Protocol types and structures for Deezer services.
- proxy
- HTTP proxy support for HTTPS connections.
- remote
- Remote control protocol implementation for Deezer Connect.
- signal
- System signal handling for graceful shutdown and reload.
- tokens
- Authentication token management for Deezer users.
- track
- Track management and playback preparation.
- util
- Utility traits and functions.
- uuid
- UUID functionality with fast random generation.