Implementation MuzicBrainze API 2.0 (C#). Current version: 1.0.1
##Examples:
######Get Artist by Id.
static void Main(string[] args)
{
var artist = Hqub.MusicBrainze.API.Entities.Artist.Get("c3cceeed-3332-4cf0-8c4c-bbde425147b6");
Console.WriteLine(artist.Name);
}
######Search artist by query.
static void Main(string[] args)
{
var artists = Hqub.MusicBrainze.API.Entities.Artist.Search("scorpions");
foreach(var artist in artists)
{
Console.WriteLine(artist.Name);
}
Console.ReadKey();
}
using Hqub.MusicBrainze.API.Entities;
static void Main(string[] args)
{
var artist = Artist.Get("c3cceeed-3332-4cf0-8c4c-bbde425147b6", API.Entities.Include.ArtistIncludeEntityHelper.Tags);
Console.WriteLine(artist.Name);
foreach (var tag in artist.Tags)
{
Console.WriteLine("\t{0}", tag.Name);
}
Console.ReadKey();
}
private static void Main(string[] args)
{
try
{
var task = ShowAlbumTracks("The Rolling Stones", "Beggars Banquet");
// The synchronous Wait() will wrap any exception in an AggregateException,
// so be sure to catch it properly.
task.Wait();
}
catch (AggregateException e)
{
Console.WriteLine(e.InnerException.Message);
}
Console.ReadKey();
}
private static async Task ShowAlbumTracks(string artistName, string albumName)
{
var artist = (await Artist.SearchAsync(artistName)).First();
Console.WriteLine(artist.Name);
var query = string.Format("aid=({0}) release=({1})", artist.Id, albumName);
var album = (await Release.SearchAsync(Uri.EscapeUriString(query), 10)).First();
Console.WriteLine("\t{0}", album.Title);
var release = await Release.GetAsync(album.Id, "recordings");
int i = 1;
foreach (var medium in release.MediumList)
{
foreach (var track in medium.Tracks)
{
var recording = track.Recordring;
var length = TimeSpan.FromMilliseconds(recording.Length).ToString("m\\:ss");
Console.WriteLine("\t\t{0,3:##} {1,6} {2}", i++, length, recording.Title);
}
}
}
Also support next entities:
- Release (Get, Search, Subqueries)
- Recording (Get, Search, Subqueries)
More information about MuzicBrainz Service I here.