- To provide complete .NET bindings for the Last.fm REST API
- To build useful components for Last.fm applications
- To be the very best, like no-one ever was
Input is always welcome! Raise an issue on GitHub, or send a message to the Gitter chatroom if you need help with the library.
If you're interested in contributing code or documentation, this short introduction to the library will help you get started.
Install Inflatable.Lastfm from NuGet.
- Install the .NET Core SDK
- Clone this repo and checkout to the commit you need
- Run
dotnet pack
- Reference the built NuGet package file in your project
First, sign up for Last.fm API access if you haven't already.
Create a LastfmClient:
var client = new LastfmClient("apikey", "apisecret");
Get information about an album:
var response = await client.Album.GetInfoAsync("Grimes", "Visions");
LastAlbum visions = response.Content;
For methods that return several items, you can iterate over the response:
var pageResponse = await client.Artist.GetTopTracksAsync("Ben Frost", page: 5, itemsPerPage: 100);
var trackNames = pageResponse.Select(track => track.Name);
Several API methods require user authentication. Once you have your user's Last.fm username and password, you can authenticate your instance of LastfmClient:
var response = await client.Auth.GetSessionTokenAsync("username", "pass");
// or load an existing session
UserSession cachedSession;
var succesful = client.Auth.LoadSession(cachedSession);
Authenticated methods then work like any other
if (client.Auth.HasAuthenticated) {
var response = await client.Track.LoveAsync("Ibi Dreams of Pavement (A Better Day)", "Broken Social Scene");
}
The main package targets netstandard1.1
. Development is on the master
branch.
- Newtonsoft.Json 9.0.1 =<
- System.Net.Http 4.3.0 =<
Check this table for supported platforms.
If you need support for a .NET platform that doesn't support .Net Standard 1.1, first see if the feature you need is available in v0.3 or earlier - that version targeted PCL profile 259, and so is compatible with e.g. Windows 8.0 and Windows Phone 7.
If you need a feature for these older platforms, please raise an issue.
Maintained by @rikkilt. Thanks to all contributors!