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
•
The URL that is generated for the search will output to STDOUT.
•
The formatted output (JSON or XML) will be output to STDOUT
Bob Faist <[email protected]>
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.
https://musicbrainz.org/doc/MusicBrainz_API