NAME

WWW::EchoNest::Playlist - A Dynamic Playlist Object.

SYNOPSIS

The Playlist module loosely covers L< http://developer.echonest.com/docs/v4/playlist.html >.
Refer to the official api documentation if you are unsure about something.

METHODS

new

Returns a new WWW::EchoNest::Playlist instance.

NOTE:
  WWW::EchoNest also provides a get_playlist() convenience function that also returns a new WWW::EchoNest::Playlist instance.

ARGUMENTS:
  type => a string representing the playlist type -- ('artist', 'artist-radio', 'artist-description', 'song-radio')
  artist_pick => How songs should be chosen for each artist
  variety => A number between 0 and 1 specifying the variety of the playlist
  artist_id => the artist_id
  artist => the name of an artist
  song_id => the song_id
  description => A string describing the artist and song
  style => A string describing the style/genre of the artist and song
  mood => A string describing the mood of the artist and song
  results => An integer number of results to return
  max_tempo => The max tempo of song results
  min_tempo => The min tempo of song results
  max_duration => The max duration of song results
  min_duration => The min duration of song results
  max_loudness => The max loudness of song results
  min_loudness => The min loudness of song results
  artist_max_familiarity => A float specifying the max familiarity of artists to search for
  artist_min_familiarity => A float specifying the min familiarity of artists to search for
  artist_max_hotttnesss => A float specifying the max hotttnesss of artists to search for
  artist_min_hotttnesss => A float specifying the max hotttnesss of artists to search for
  song_max_hotttnesss => A float specifying the max hotttnesss of songs to search for
  song_min_hotttnesss => A float specifying the max hotttnesss of songs to search for
  max_energy => The max energy of song results
  min_energy => The min energy of song results
  max_dancibility => The max dancibility of song results
  min_dancibility => The min dancibility of song results
  mode => 0 or 1 (minor or major)
  key => 0-11 (c, c-sharp, d, e-flat, e, f, f-sharp, g, a-flat, a, b-flat, b)
  max_latitude => A float specifying the max latitude of artists to search for
  min_latitude => A float specifying the min latitude of artists to search for
  max_longitude => A float specifying the max longitude of artists to search for
  min_longitude => A float specifying the min longitude of artists to search for
  sort => A string indicating an attribute and order for sorting the results
  buckets => A list of strings specifying which buckets to retrieve
  limit => A boolean indicating whether or not to limit the results to one of the id spaces specified in buckets
  seed_catalog => A Catalog object or catalog id to use as a seed
  source_catalog => A Catalog object or catalog id
  steer => A steering value to determine the target song attributes
  steer_description => A steering value to determine the target song description term attributes
  rank_type => A string denoting the desired ranking for description searches, either 'relevance' or 'familiarity'



RETURNS:
  A new instance of WWW::EchoNest::Playlist.

EXAMPLE:
  use WWW::EchoNest qw( :all );
  use WWW::EchoNest::Playlist;
  my $playlist = get_playlist( { type => 'artist-radio', artist => [ 'The Beatles', 'The Rolling Stones', ], } );
  

get_next_song

Get the next song in the playlist.

ARGUMENTS:
  none

RETURNS:
  A WWW::EchoNest::Song instance.

EXAMPLE:
  my $next_song = $playlist->get_next_song();

get_current_song

Get the current song in the playlist.

ARGUMENTS:
  none

RETURNS:
  A WWW::EchoNest::Song instance.

EXAMPLE:
  my $curr_song = $playlist->get_current_song();

session_info

Get information about the playlist.

ARGUMENTS:
  none

RETURNS:
  A reference to a hash that contains diagnostic information
  about the currently running playlist.

EXAMPLE:
  my $playlist_info = $playlist->session_info();

FUNCTIONS

static

Get a static playlist.

ARGUMENTS:
  type => a string representing the playlist type ('artist', 'artist-radio', ...)
  artist_pick => How songs should be chosen for each artist
  variety => A number between 0 and 1 specifying the variety of the playlist
  artist_id => the artist_id
  artist => the name of an artist
  song_id => the song_id
  description => A string describing the artist and song
  style => A string describing the style/genre of the artist and song
  mood => A string describing the mood of the artist and song
  results => An integer number of results to return
  max_tempo => The max tempo of song results
  min_tempo => The min tempo of song results
  max_duration => The max duration of song results
  min_duration => The min duration of song results
  max_loudness => The max loudness of song results
  min_loudness => The min loudness of song results
  artist_max_familiarity => A float specifying the max familiarity of artists to search for
  artist_min_familiarity => A float specifying the min familiarity of artists to search for
  artist_max_hotttnesss => A float specifying the max hotttnesss of artists to search for
  artist_min_hotttnesss => A float specifying the max hotttnesss of artists to search for
  song_max_hotttnesss => A float specifying the max hotttnesss of songs to search for
  song_min_hotttnesss => A float specifying the max hotttnesss of songs to search for
  max_energy => The max energy of song results
  min_energy => The min energy of song results
  max_dancibility => The max dancibility of song results
  min_dancibility => The min dancibility of song results
  mode => 0 or 1 (minor or major)
  key => 0-11 (c, c-sharp, d, e-flat, e, f, f-sharp, g, a-flat, a, b-flat, b)
  max_latitude => A float specifying the max latitude of artists to search for
  min_latitude => A float specifying the min latitude of artists to search for
  max_longitude => A float specifying the max longitude of artists to search for
  min_longitude => A float specifying the min longitude of artists to search for                        
  sort => A string indicating an attribute and order for sorting the results
  buckets => A list of strings specifying which buckets to retrieve
  limit => A boolean indicating whether or not to limit the results to one of the id spaces specified in buckets
  seed_catalog => A Catalog object or catalog id to use as a seed
  source_catalog => A Catalog object or catalog id
  rank_type => A string denoting the desired ranking for description searches, either 'relevance' or 'familiarity'



RETURNS:
  A reference to a hash that contains diagnostic information about the currently running playlist.

EXAMPLE:
  use WWW::EchoNest::Playlist qw( static );
  my $static_playlist = static( { type => 'artist-radio', artist => [ 'The Beatles', 'The Rolling Stones', ], } );

AUTHOR

Brian Sorahan, <bsorahan@gmail.com>

SUPPORT

Join the Google group: <http://groups.google.com/group/www-echonest>

ACKNOWLEDGEMENTS

Thanks to all the folks at The Echo Nest for providing access to their powerful API.

LICENSE

Copyright 2011 Brian Sorahan.

This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.

See http://dev.perl.org/licenses/ for more information.