NAME
WebService::MusicBrainz
SYNOPSIS
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'
});
DESCRIPTION
API to search the musicbrainz.org database
VERSION
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.
METHODS
new
my
$mb
= WebService::MusicBrainz->new();
search
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'
});
"RELEASE COUNT: "
,
$releases
->{count},
"\n"
;
DEBUG
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
AUTHOR
COPYRIGHT AND LICENSE
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.
SEE ALSO
https://musicbrainz.org/doc/MusicBrainz_API