WebService::MusicBrainz(3pm) | User Contributed Perl Documentation | WebService::MusicBrainz(3pm) |
WebService::MusicBrainz
use WebService::MusicBrainz; my $mb = WebService::MusicBrainz->new(); my $result = $mb->search($resource => { $search_key => 'search value' }); my $result = $mb->search($resource => { $search_key => 'search value', fmt => 'json' }); # fmt => 'json' is default my $result_dom = $mb->search($resource => { $search_key => 'search value', fmt => 'xml' });
API to search the musicbrainz.org database
Version 1.0 and future releases are not backward compatible with pre-1.0 releases. This is a complete re-write using version 2.0 of the MusicBrainz API and Mojolicious.
my $mb = WebService::MusicBrainz->new();
my $result_list = $mb->search($resource => { param1 => 'value1' }); my $result = $mb->search($resource => { mbid => 'mbid' }); my $result_more = $mb->search($resource => { mbid => 'mbid', inc => 'extra stuff' }); Valid values for $resource are: area, artist, event, instrument, label, recording, release, release-group, series, work, url The default is to return decoded JSON as a perl data structure. Specify format => 'xml' to return the results as an instance of Mojo::DOM.
Search by MBID
my $result = $mb->search($resource => { mbid => 'xxxxxx' });
The "inc" search parameter is only allowed when searching for any particular "mbid".
Search area
my $area_list_results = $mb_ws->search(area => { iso => 'US-OH' }); my $area_list_results = $mb_ws->search(area => { area => 'cincinnati' }); my $area_list_results = $mb_ws->search(area => { alias => 'new york' }); my $area_list_results = $mb_ws->search(area => { sortname => 'new york' }); my $area_list_results = $mb_ws->search(area => { area => 'new york', type => 'city' }); my $area_result = $mb_ws->search(area => { mbid => '0573177b-9ff9-4643-80bc-ed2513419267' }); my $area_result = $mb_ws->search(area => { mbid => '0573177b-9ff9-4643-80bc-ed2513419267', inc => 'area-rels' });
Search artist
# JSON example my $artists = $mb->search(artist => { artist => 'Ryan Adams' }); my $artists = $mb->search(artist => { artist => 'Ryan Adams', type => 'person' }); my $artist_country = $artists->{artists}->[0]->{country}; # XML example my $artists = $mb->search(artist => { artist => 'Ryan Adams', type => 'person', fmt => 'xml' }); my $artist_country = $artists->at('country')->text; # find this particular artist my $artist = $mb->search(artist => { mbid => '5c2d2520-950b-4c78-84fc-78a9328172a3' }); # find this particular artist and include release and artist relations (members of the band) my $artist = $mb->search(artist => { mbid => '5c2d2520-950b-4c78-84fc-78a9328172a3', inc => ['releases','artist-rels'] }); # artists that started in Cincinnati my $artists = $mb->search(artist => { beginarea => 'Cincinnati' });
Search label
my $labels = $mb->search(label => { label => 'Death' });
Search recording
my $recordings = $mb->search(recording => { artist => 'Taylor Swift' });
Search release
my $releases = $mb->search(release => { release => 'Love Is Hell', status => 'official' }); print "RELEASE COUNT: ", $releases->{count}, "\n";
Set environment variable MUSICBRAINZ_DEBUG=1
Copyright 2006-2017 by Bob Faist
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
http://musicbrainz.org/doc/Development/XML_Web_Service/Version_2
2018-03-09 | perl v5.26.1 |