#lastfm #scrobble #music-player #http-client #api-bindings

rustfm-scrobble-proxy

rustfm-scrobble的分支,一个Last.fm Scrobble crate,增加了代理支持

3个稳定版本

2.0.0 2023年7月13日
1.1.3 2022年11月16日
1.1.2 2022年7月19日

#88多媒体

Download history 84/week @ 2024-04-20 113/week @ 2024-04-27 105/week @ 2024-05-04 94/week @ 2024-05-11 117/week @ 2024-05-18 113/week @ 2024-05-25 114/week @ 2024-06-01 88/week @ 2024-06-08 111/week @ 2024-06-15 103/week @ 2024-06-22 102/week @ 2024-06-29 113/week @ 2024-07-06 90/week @ 2024-07-13 100/week @ 2024-07-20 135/week @ 2024-07-27 123/week @ 2024-08-03

462 每月下载量
用于 rescrobbled

MIT 许可证

61KB
973

rustfm-scrobble-proxy

Latest Version


rustfm-scrobble-proxyrustfm-scrobble 的分支。它的API(主要)相同,但它用 attohttpc 替换了内部的 ureq HTTP客户端。这使得库可以在代理后面无缝使用,因为attohttpc会自动获取代理设置,而ureq不会。此外,现在允许在没有专辑的情况下进行scrobble。

要查看所有更改,请查看 CHANGELOG.md 文件。分支发生在版本1.1.2。

rustfm-scrobble使用MIT许可证。有关更多信息,请参阅 LICENSE 文件。以下是原始的README。


rustfm-scrobble 是一个用于Rust的 Last.fm Scrobble API 2.0 crate。它允许通过简单的Rust API轻松访问“scrobble”和“now playing”通知端点。它可以用来记录音乐播放器的歌曲播放,构建类似 VinylScrobbler 的模拟scrobble工具或与物联网设备一起工作。它最初是为了实现 Spotify scrobble服务 而构建的,使用 Spotify Connect协议,当时 Alexa Spotify客户端 不支持将播放记录到Last.fm。

功能

  • 将歌曲scrobble到Last.fm('scrobble' API端点)
  • 将正在播放的歌曲发布到Last.fm('now playing' API端点)
  • Scrobbler::scrobble_batchScrobbleBatch 中支持批量scrobble
  • 多种身份验证流程以获得发布到Last.fm用户配置文件的权限
    • 存储预认证会话密钥并在初始认证后丢弃秘密数据
  • 简单的错误处理;每个API操作在失败时都会返回一个包含简单ResultError类型
  • 单元测试

安装

rustfm-scrobble添加到您的Cargo.toml

[dependencies]
rustfm-scrobble="1.1"

用法

  • API文档
  • 代码示例
    • 示例现在播放 & scrobbling客户端
    • 示例批量scrobbling客户端
    • cargo构建 --例子
    • ./target/debug/examples/example
  • 构建: cargo build
  • 运行单元测试: cargo test
extern crate rustfm_scrobble;
use rustfm_scrobble::{Scrobble, Scrobbler};

let username = "last-fm-username";
let password = "last-fm-password";
let api_key = "client-api-key";
let api_secret = "client-api-secret";
 
let mut scrobbler = Scrobbler::new(api_key, api_secret);
scrobbler.authenticate_with_password(username, password);
 
let song = Scrobble::new("Example Artist", "Example Song", "Example Album");
scrobbler.scrobble(song);

使用中

rustfm-scrobble被包括在polarisconnectrrescrobbledrb-scrobbler在内的几个项目中。

状态

API是稳定的,并且将保证所有1.0版本的向后兼容性。

许可

MIT许可证,请参阅./LICENSE

依赖

~2.5–4MB
~99K SLoC