#music #api #api-bindings #async #apple-music #musickit

macro am-api-proc-macro

A library for interfacing with the Apple Music API

1 stable release

1.0.0 Nov 22, 2023

#309 in #music


Used in am-api

MIT license

21KB
529 lines

am-api

Apple Music API bindings for rust.

Examples

Fetching an album by id

async fn fetch_album() -> Result<(), Error> {
    let developer_token = "DEVELOPER_TOKEN";
    let media_user_token = "MEDIA_USER_TOKEN";
    
    let client = ApiClient::new(
        developer_token, 
        media_user_token, 
        celes::Country::the_united_states_of_america()
    )
    .expect("failed to create api client");
    
    let album = Album::get()
        .one(&client, "1676791755")
        .await?
        .expect("album fetch returned none");

    let attributes = album
        .attributes
        .expect("album fetch returned an album without attributes");

    assert_eq!(attributes.name, "Unrequited Love - EP");

    Ok(())
}

More examples can be found in the examples folder.

Installation

To add this library to your project use

cargo add am-api

Features

  • rustls-tls pure rust tls implementation (enabled by default)
  • native-tls native platform tls implementation

Dependencies

~0.9–1.4MB
~27K SLoC