Expand description
Immich API library for duplicate management.
This library provides a typed client for interacting with the Immich REST API, with a focus on duplicate detection and metadata-aware duplicate selection.
§Example
use immich_lib::ImmichClient;
let client = ImmichClient::new("https://immich.example.com", "your-api-key")?;
let duplicates = client.get_duplicates().await?;
for group in duplicates {
println!("Duplicate group {} has {} assets", group.duplicate_id, group.assets.len());
}§Command-Line Tool
A companion binary immich-dupes is available for managing duplicates from the command line.
Pre-built binaries and installation instructions are available in the
GitHub repository.
Re-exports§
pub use client::ImmichClient;pub use client::UploadResponse;pub use error::ImmichError;pub use error::Result;pub use executor::Executor;pub use letterbox::detect_aspect_ratio;pub use letterbox::find_letterbox_pairs;pub use letterbox::AspectRatio;pub use letterbox::LetterboxAnalysis;pub use letterbox::LetterboxPair;pub use scoring::detect_conflicts;pub use scoring::DuplicateAnalysis;pub use scoring::MetadataConflict;pub use scoring::MetadataScore;pub use scoring::ScoredAsset;
Modules§
- client
- HTTP client wrapper for the Immich API.
- error
- Error types for the Immich API client.
- executor
- Execution pipeline for duplicate processing.
- letterbox
- Letterbox detection and pairing for iPhone 4:3/16:9 crop duplicates.
- models
- API response model types.
- scoring
- Metadata scoring and duplicate analysis.
- testing
- Test scenario detection for duplicate groups.