11 releases (7 breaking)
0.8.0 | Jul 28, 2024 |
---|---|
0.7.0 | Feb 12, 2023 |
0.6.0 | Jan 26, 2023 |
0.5.0 | Dec 4, 2022 |
0.2.0 | Jan 20, 2021 |
#167 in HTTP client
475 downloads per month
Used in rescrobbled
65KB
1.5K
SLoC
listenbrainz
ListenBrainz API bindings for Rust.
There is also listenbrainz-rust. However, that crate only supports single listens, imports and now playing requests, and is also not maintained anymore. This crate, on the other hand, aims to be a complete API wrapper for the ListenBrainz API, version 1.
lib.rs
:
API bindings for ListenBrainz.
This crate aims to be an idiomatic wrapper of the ListenBrainz HTTP API (version 1).
It contains functionality for direct access to the API in the [raw
] module, as well
as a more convenient ListenBrainz
client which is easier to use.
Generally, using the raw
functionality is more cumbersome, as its types and functions
map one-to-one to the HTTP API's JSON input- and response data. Using the ListenBrainz
type is therefore recommended.
Example
Submit a currently playing song to ListenBrainz.org:
#
let mut client = ListenBrainz::new();
client.authenticate("LISTENBRAINZ TOKEN")
.expect("Could not authenticate with ListenBrainz");
client.playing_now("The Beatles", "Here Comes the Sun", Some("Abbey Road"))
.expect("Could not submit 'playing now' request");
Use a custom API URL, for example to submit songs to Maloja:
#
let mut client = ListenBrainz::new_with_url("http://maloja.example.com/apis/listenbrainz");
client.authenticate("MALOJA API KEY")
.expect("Could not authenticate with Maloja");
client.listen("Lymbyc Systym", "Split Stones", None)
.expect("Could not submit listen");
Dependencies
~2.5–4MB
~87K SLoC