Expand description
§cameo
Unified movie/TV show database SDK for Rust.
§Quick Start
use cameo::providers::tmdb::{TmdbClient, TmdbConfig};
use cameo::unified::{CameoClient, SearchProvider};
// Low-level TMDB client
let client = TmdbClient::new(TmdbConfig::new("your-tmdb-token"))?;
let results = client.search_movies("Inception", None).await?;
// High-level unified facade
let cameo = CameoClient::builder()
.with_tmdb(TmdbConfig::new("your-tmdb-token"))
.build()?;
let movies = cameo.search_movies("Dune", None).await?;§AniList (anime/manga)
use cameo::providers::anilist::{AniListClient, AniListConfig};
use cameo::unified::{CameoClient, SearchProvider};
// Low-level AniList client (no auth required)
let client = AniListClient::new(AniListConfig::new())?;
let results = client.search_movies("Your Name", None).await?;
// High-level unified facade (AniList only)
let cameo = CameoClient::builder()
.with_anilist(AniListConfig::new())
.build()?;
let anime = cameo.search_tv_shows("Attack on Titan", None).await?;Re-exports§
pub use core::error::ProviderError;pub use core::config::TimeWindow;pub use core::pagination::Page;pub use core::pagination::PageToken;pub use core::pagination::into_stream;pub use cache::CacheBackend;cachepub use cache::CacheError;cachepub use cache::CacheKey;cachepub use cache::CacheTtlConfig;cachepub use cache::MediaType;cachepub use cache::SqliteCache;cachepub use providers::anilist::error::AniListErrorLocation;anilistpub use providers::anilist::error::AniListGqlError;anilistpub use providers::anilist::AniListClient;anilistpub use providers::anilist::AniListConfig;anilistpub use providers::anilist::AniListError;anilistpub use providers::rate_limit::RateLimit;anilistortmdbpub use providers::retry::RetryPolicy;anilistortmdbpub use providers::tmdb::TmdbAuth;tmdbpub use providers::tmdb::TmdbClient;tmdbpub use providers::tmdb::TmdbConfig;tmdbpub use providers::tmdb::TmdbError;tmdbpub use unified::CameoClient;pub use unified::CameoClientBuilder;pub use unified::CameoClientError;pub use unified::Capability;pub use unified::Collection;pub use unified::Company;pub use unified::Creator;pub use unified::DetailProvider;pub use unified::DiscoveryProvider;pub use unified::Gender;pub use unified::Genre;pub use unified::MediaId;pub use unified::MediaProvider;pub use unified::NativeId;pub use unified::Network;pub use unified::ParseDateError;pub use unified::PartialDate;pub use unified::Provider;pub use unified::RecommendationProvider;pub use unified::SearchProvider;pub use unified::SeasonProvider;pub use unified::UnifiedEpisode;pub use unified::UnifiedMovie;pub use unified::UnifiedMovieDetails;pub use unified::UnifiedPerson;pub use unified::UnifiedPersonDetails;pub use unified::UnifiedSearchResult;pub use unified::UnifiedSeason;pub use unified::UnifiedSeasonDetails;pub use unified::UnifiedStreamingService;pub use unified::UnifiedTvShow;pub use unified::UnifiedTvShowDetails;pub use unified::UnifiedWatchProviderEntry;pub use unified::UnifiedWatchProviders;pub use unified::UnknownGenre;pub use unified::WatchAvailabilityProvider;pub use async_trait;