in reply to Re: Lyrics Fetcher
in thread Lyrics Fetcher

And voila, here is a winamp version! Simply download the winamp plugin, install Winamp::Control and then here's the script. The controls are pretty easy to figure out. Press 'r' (after exiting the 'notepad' program) to grab the next song's lyrics, 'n' to load a different version of the lyrics, and 'q' to quit.

#!c:/perl/bin/perl -w $| = 1; use strict; use LyricFinder; use Winamp::Control; my $viewer = 'notepad'; my $winamp = Winamp::Control->new( host => '127.0.0.1', port => 8080, passwd => 'our_secret' ); die "Winamp and/or the httpQ plugin do not seem to be running." unless ( $winamp->getversion() ); my $lf = LyricFinder->new(); find_lyrics() while 1; sub find_lyrics { my $artist = $winamp->getid3tag_artist(); my $song = $winamp->getid3tag_songname(); my $search = $lf->search(50, $artist, $song); print "\nFound ", $search->count(), " possible results!\n"; while ( my $page = $search->fetch() ) { if ( $page->error() ) { print "Fetch for ", $page->source(), " failed (", $page->e +rror(), ")\n"; next; } print "Fetch from ", $page->source(), " successfull (200).\n\n +"; sleep 2; open( my $fh, '>', '.lyrics' ) or die "open failed: $!"; print $fh $page->lyrics(); close($fh) or die "close failed: $!"; system "$viewer .lyrics"; unlink '.lyrics'; PROMPT: print "\n\n>> "; chomp( my $cmd = <STDIN> ); if ($cmd =~ /^[qQ]/) { exit(0); } elsif ($cmd =~ /^[rR]/) { print "\n"; last; } elsif ($cmd =~ /^[nN]/) { next; } else { goto PROMPT; } } print "\nNo more lyrics found for given artist and song.\n\n"; }