Skip to main content

Crate cider_api

Crate cider_api 

Source
Expand description

§Cider API

Async Rust client for the Cider music player REST API.

Cider exposes a local HTTP API (default port 10767) for controlling playback, managing the queue, and querying track information. This crate provides a fully typed, async client built on reqwest.

§Quick start

use cider_api::CiderClient;

let client = CiderClient::new();

// Check if Cider is running
client.is_active().await?;

// Get the currently playing track
if let Some(track) = client.now_playing().await? {
    println!("{} — {}", track.name, track.artist_name);
    println!("Album: {}", track.album_name);
    println!("Artwork: {}", track.artwork_url(600));
    println!(
        "Position: {:.1}s / {:.1}s",
        track.current_playback_time,
        track.duration_in_millis as f64 / 1000.0,
    );
}

// Control playback
client.pause().await?;
client.seek_ms(30_000).await?;
client.play().await?;

§Authentication

If Cider has API authentication enabled (Settings > Connectivity > Manage External Application Access), pass the token via CiderClient::with_token:

let client = CiderClient::new().with_token("your-api-token");

The token is sent in the apitoken header — no Bearer prefix.

§API coverage

Structs§

AmApiRequest
Request body for POST /api/v1/amapi/run-v3.
ApiResponse
Generic wrapper for Cider API JSON responses.
Artwork
Artwork metadata for a track, album, or station.
AutoplayResponse
Payload for GET /autoplay.
CiderClient
Async client for the Cider music player REST API.
IsPlayingResponse
Payload for GET /is-playing.
KeyUrls
DRM / streaming key URLs for HLS playback.
NowPlaying
Currently playing track information returned by GET /now-playing.
NowPlayingResponse
Payload for GET /now-playing.
PlayItemHrefRequest
Request body for POST /play-item-href.
PlayItemRequest
Request body for POST /play-item / POST /play-next / POST /play-later.
PlayParams
Play parameters identifying a playable item.
PlayUrlRequest
Request body for POST /play-url.
Preview
A track audio preview.
QueueContainer
The container (playlist, station, album) a queue item was sourced from.
QueueContext
Context metadata for a QueueItem.
QueueItem
A single item in the Cider playback queue.
QueueItemAttributes
Track attributes within a QueueItem.
QueueItemState
Playback state of a QueueItem.
QueueMoveRequest
Request body for POST /queue/move-to-position.
QueueRemoveRequest
Request body for POST /queue/remove-by-index.
RatingRequest
Request body for POST /set-rating.
RepeatModeResponse
Payload for GET /repeat-mode.
SeekRequest
Request body for POST /seek.
ShuffleModeResponse
Payload for GET /shuffle-mode.
VolumeRequest
Request body for POST /volume.
VolumeResponse
Payload for GET /volume.

Enums§

CiderError
Errors returned by CiderClient methods.

Constants§

DEFAULT_PORT
Default Cider RPC port.