#song #genius #interact #lyrics #api #search #id

genius-rust

Rust library that allows interact with Genius API

2 releases

0.1.1 Aug 27, 2022
0.1.0 Aug 27, 2022

#8 in #genius

38 downloads per month
Used in genius-cli

MIT license

41KB
674 lines

Crates.io Crates.io (recent) Crates.io

genius_rust

Rust library that allows interact with Genius API.

Searching for a song

use genius_rust::Genius;

#[tokio::main]
async fn main() {
    let genius = Genius::new(dotenv::var("TOKEN").unwrap());
    let response = genius.search("Ariana Grande").await.unwrap();
    println!("{}", response[0].result.full_title);
}

Getting lyrics

use genius_rust::Genius;

#[tokio::main]
async fn main() {
    let genius = Genius::new(dotenv::var("TOKEN").unwrap());
    let response = genius.search("Sia").await.unwrap();
    let lyrics = genius.get_lyrics(&response[0].result.id).await.unwrap();
    for verse in lyrics {
        println!("{}", verse);
    }
}

Getting deeper information for a song by id

use genius_rust::Genius;

#[tokio::main]
async fn main() {
    let genius = Genius::new(dotenv::var("TOKEN").unwrap());
    let response = genius.search("Weeknd").await.unwrap();
    let song = genius.get_song(response[0].result.id, "plain").await.unwrap();
    println!("{}", song.media.unwrap()[0].url)
}

Dependencies

~5–18MB
~264K SLoC