#api #tidal #asynchronous

rstidal

为 Tidal 音乐服务 API 提供的异步客户端

4 个版本

0.1.2 2020 年 9 月 26 日
0.1.1 2020 年 9 月 17 日
0.1.0 2020 年 9 月 17 日
0.0.1 2020 年 9 月 10 日

#121 in #asynchronous

MIT/Apache

54KB
1.5K SLoC

Rust Crates.io Docs

Rstidal

为 TIDAL 音乐流媒体服务提供的不官方 Rust API 封装。受 rspotify 启发

配置

将以下内容添加到您的 Cargo.toml

[dependencies]
rstidal = "0.1.2"

默认情况下,Rstidal 使用异步编程,通过 asycnawait 实现。

入门指南

授权

由于所有方法都需要用户验证,因此您需要使用 Tidal 用户名和密码创建会话。为了验证用户,您的应用程序需要一个应用程序令牌。

如何获取应用程序令牌

使用调试代理(Charles 或 Fiddler)打开您的 Tidal 桌面应用程序,查找对 api.tidal.com 的请求,并复制它使用标题 X-Tidal-Token 的值。

示例

[dependencies]
rstidal = { version = "0.1.0" }
tokio = { version = "0.2", feeatures = ["full"] }
use rstidal::client::Tidal;
use rstidal::auth::TidalCredentials;
use dotenv::dotenv;
use std::env;

#[tokio::main]
async fn main() {
  {
    dotenv().ok();
  }

  // Set the token aquired by inspecting your Tidal Desktop application.
  let token = env::var("RSTIDAL_APP_TOKEN").unwrap();
  let credentials = TidalCredentials::new(&token);

  // Create a session using your user credentials.
  let username = env::var("RSTIDAL_USERNAME").unwrap();
  let password = env::var("RSTIDAL_PASSWORD").unwrap();
  let credentials = credentials.create_session(&username, &password).await;

  // Use the credentials to start the client
  let client = Tidal::new(credentials);
  let artist = client.artists.get("37312").await;
  println!("{:?}", artist.unwrap());
}

贡献

如果您发现任何问题或对此 crate 有建议,请提交一个问题。此外,任何 pull request、代码审查和反馈都受欢迎

依赖关系

~3–8MB
~178K SLoC