#!/usr/local/bin/perl -w
###########################################
# songs-in-playlist
# Mike Schilli, 2014 (m@perlmeister.com)
###########################################
use strict;
use warnings;
use OAuth::Cmdline;
use LWP::UserAgent;
use JSON qw( from_json );
use YAML qw( Dump );

my( $user ) = @ARGV;
die "usage: $0 user" if !defined $user;

my $oauth = OAuth::Cmdline->new(
    site => "spotify"
);

my $ua = LWP::UserAgent->new();
$ua->default_header( 
    $oauth->authorization_headers );

my $resp = $ua->get( 
    "https://api.spotify.com/v1" .
    "/users/$user/playlists/" .
    "022PMTci8phXA4CTJjwWEF" );

if( $resp->is_error ) {
    die "Error: ", $resp->message();
}

my $result = from_json( $resp->content() );

my @playlists = ();

for my $item ( 
    @{ $result->{ tracks }->{ items } } ) {
    my $track = $item->{ track };

    push @playlists, {
      track  => $track->{ name },
      artist => 
        $track->{ artists }->[0]->{ name },
      album  => $track->{ album }->{ name }
    };
}

print Dump( \@playlists );
