The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

WWW::TheEchoNest::Playlist - Wrapper for The Echo Nest API of music intelligence playlist calls

VERSION

version 1.1

SYNOPSIS

    my $api_key = 'YOUR API KEY';
    
    my $artist = 'Weezer';
    
    my $playlist = WWW::TheEchoNest::Playlist->new(
                                              api_key => $api_key
                                             );
    
    my $artist_obj = WWW::TheEchoNest::Artist->new(
        api_key => $api_key
    );
    
    my @genres = $artist_obj->list_genres();
    
    $playlist->basic(
                     artist  => $artist,
                     results => 20,
                     type    => 'artist-radio'
                     );
    
    my $first_song_id = $playlist->get( 'songs[0].id' );
    
    $playlist->basic(
      artist => $artist,
      results => 2,
      type => 'artist-radio',
      bucket => [ 'id:7digital-US' , 'tracks' ],
      limit => 'true'  
    );

    # if you are using dynamic playlists you need to keep track of the session
    
    $playlist->dynamic_create(
                 artist  => $artist,
                 results => 20,
                 type    => 'artist-radio'
                 );
    
    my $session_id = $playlist->get( 'session_id' );
    
    # the session_id is a 32 md5 hash
    
    $playlist->dynamic_next( 
        session_id => $session
    );
    
    my $first_song_tile = $playlist->get( 'songs[0].title' );

NAME

WWW::TheEchoNest::Playlist

METHODS

basic

 my $song_id = "SOHTZUF12A8C13582B";
 
 $playlist->basic(
        song_id   => $song_id ,
        results => 20,
        type    => 'song-radio');
        
 my $first_song_tile = $playlist->get( 'songs[0].title' );

static

 $playlist->static(
        genre   => "dance pop",
        results => 20,
        type    => 'genre-radio'
 );
 
 my $first_song_tile = $playlist->get( 'songs[0].title' );

dynamic_create

Create a dynamic playlist, which is similar to playlists with less complexity

    $playlist->dynamic_create(
                 artist  => $artist,
                 results => 20,
                 type    => 'artist-radio'
                 );
    
    # it is important that you keep track of the session id as this is how you will interact with it.
    
    my $session_id = $playlist->get( 'session_id' );

special case, returns the actual session_id if request was successful

dynamic_delete

Delete a previously created dynamic playlist, you need to pass in the session_id

 $playlist->dynamic_delete( session_id => $session );

dynamic_feedback

 $playlist->dynamic_feedback();

dynamic_info

 $playlist->dynamic_info();

dynamic_next

 $playlist->dynamic_next( session_id => $session );

dynamic_restart

Allows you to reset the playlist with a new seed artist

 $playlist->dynamic_restart(
    session_id => $session_id,
    type => 'artist-radio',
    artist => 'Queen'
    );

dynamic_steer

Allows you influence the playlist by asking for "more like this" etc.

 my $playlist_song = 'VALID SONG ID';

 $playlist->dynamic_steer(
        session_id => $session_id,
        more_like_this => $playlist_song
 );

AUTHOR

Aaron Johnson <aaronjjohnson@gmail.com>

COPYRIGHT AND LICENSE

This software is copyright (c) 2014 by Aaron Johnson.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.