Crates.io | odesli-rs |
lib.rs | odesli-rs |
version | 5.0.0 |
source | src |
created_at | 2023-10-23 06:21:43.44952 |
updated_at | 2023-11-02 07:53:04.336171 |
description | Unofficial library to communicate with Odesli API in an async manner |
homepage | |
repository | https://github.com/Propheci/odesli-rs |
max_upload_size | |
id | 1010999 |
size | 21,480 |
[UNOFFICIAL] Async Rust library to communicate with Odesli API
Cargo.toml
[package]
name = "odesli-test"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
odesli-rs = "5.0.0"
strum = "0.25.0"
tokio = { version = "1.33.0", features = ["full"] }
src/main.rs
use odesli_rs::{APIProvider, ClientBuilder, EntityType, Platform};
use strum::IntoEnumIterator;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
println!("Supported Platforms:");
for platform in Platform::iter() {
println!(" - {:?}", platform)
}
println!("");
println!("Supported API Providers:");
for provider in APIProvider::iter() {
println!(" - {:?}", provider)
}
println!("");
let client = ClientBuilder::default()
// .with_api_key(String::from("<INSERT_YOUR_API_KEY_HERE>")) // OPTIONAL
// .with_api_version(String::from(odesli_rs::API_VERSION)) // Will be useful if any new API versions are released
// .with_http_client(reqwest::Client::default()) // If you want to change your `reqwest::Client`'s settings
.build();
dbg!(
client
.get_by_url("https://music.youtube.com/watch?v=cnnOwLfAxn0&si=3MtMRBN3Zy4FFNxU")
.await
);
let result = client
.get_by_id(
"7CNUefGBVLn4cLoYv3ej8x",
&Platform::Spotify,
&EntityType::Song,
)
.await?;
dbg!(&result);
dbg!(result.get_platform_url(&Platform::YouTube));
dbg!(result.get_platform_entity(&Platform::YouTube));
Ok(())
}