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

genius-rs

Rust 库,允许与 Genius API 交互

4 个版本 (破坏性更新)

0.5.0 2022 年 5 月 28 日
0.4.0 2021 年 9 月 19 日
0.3.0 2021 年 8 月 6 日
0.2.1 2021 年 8 月 1 日

#7 in #genius

每月下载 27

MIT 许可协议

36KB
588 代码行

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

genius_rs

允许与 Genius API 交互的 Rust 库。

搜索歌曲

use genius_rs::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);
}

获取歌词

use genius_rs::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);
    }
}

通过 ID 获取歌曲的详细信息

use genius_rs::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)
}

依赖关系

~5–17MB
~260K SLoC